21-10-12, 04:53 PM
فى الرد السابق تحدثنا عن كيفية حفظ البيانات فى جدول يتم انشاءه عن طريق الجملة Into
لكن هناك شئ هام وهو أن البيانات تخزن فى حقول من نوع على مزاج المحرك OLED أو بصورة علمية حسب البيانات المستوردة
لكن كيف نرسل البيانات ونجعل الحقول بهيئة على طريقتنا
الفكرة أننا نقوم بعمل تحويل لنوع الحقل وبالتالى سيكون نوع الحقل بالنوع المحول له
حتي الآن الأمر جيد
لكن هناك مشكلة أن الأمر Into يقوم بانشاء الجدول المرسل له البيانات
لو استخدمت الجملة مرة اخرى سيقول لك أن الجدول موجود بالفعل
ماذا لو أردت أن تنشأ أنت الجدول وترسل له البيانات بصورة طبيعية
إذن صمم جدول كما أنت معتاد
واستخدم جملة
المعروفة
نتمنى نكون افدناكم وأوصلنا لكم فائدة ربما كانت غائبة عن الكثير
والله ولي التوفيق
لكن هناك شئ هام وهو أن البيانات تخزن فى حقول من نوع على مزاج المحرك OLED أو بصورة علمية حسب البيانات المستوردة
لكن كيف نرسل البيانات ونجعل الحقول بهيئة على طريقتنا
الفكرة أننا نقوم بعمل تحويل لنوع الحقل وبالتالى سيكون نوع الحقل بالنوع المحول له
كود :
[color=#000000][COLOR=#0000bb]SELECT CAST[/color][color=#007700]([[/color][color=#0000bb]FirstName[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]20[/color][color=#007700])) AS [[/color][color=#0000bb]FirstName[/color][COLOR=#007700]],
[/COLOR][color=#0000bb]CAST[/color][color=#007700]([[/color][color=#0000bb]LastName[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]20[/color][color=#007700])) AS [[/color][color=#0000bb]LastName[/color][COLOR=#007700]],
[/COLOR][color=#0000bb]CAST[/color][color=#007700]([[/color][color=#0000bb]Address[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]50[/color][color=#007700])) AS [[/color][color=#0000bb]Address[/color][COLOR=#007700]],
[/COLOR][color=#0000bb]CAST[/color][color=#007700]([[/color][color=#0000bb]City[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]30[/color][color=#007700])) AS [[/color][color=#0000bb]City[/color][COLOR=#007700]],
[/COLOR][color=#0000bb]CAST[/color][color=#007700]([[/color][color=#0000bb]State[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]2[/color][color=#007700])) AS [[/color][color=#0000bb]State[/color][COLOR=#007700]],
[/COLOR][color=#0000bb]CAST[/color][color=#007700]([[/color][color=#0000bb]ZIP[/color][color=#007700]] AS [/color][color=#0000bb]VARCHAR[/color][color=#007700]([/color][color=#0000bb]10[/color][color=#007700])) AS [[/color][color=#0000bb]ZIP[/color][COLOR=#007700]]
[/COLOR][color=#0000bb]INTO [/color][color=#007700][[/color][color=#0000bb]dbo[/color][color=#007700]].[[/color][color=#0000bb]Table_Excel[/color][COLOR=#007700]]
[/COLOR][color=#0000bb]FROM OPENROWSET[/color][color=#007700]([/color][color=#dd0000]'Microsoft.Jet.OLEDB.4.0'[/color][COLOR=#007700],
[/COLOR][color=#dd0000]'Excel 8.0;Database=C:\1.xls;HDR=NO;IMEX=1'[/color][COLOR=#007700],
[/COLOR][color=#dd0000]'SELECT * FROM [Sheet1$]'[/color][COLOR=#007700])
[/COLOR][/COLOR]حتي الآن الأمر جيد
لكن هناك مشكلة أن الأمر Into يقوم بانشاء الجدول المرسل له البيانات
لو استخدمت الجملة مرة اخرى سيقول لك أن الجدول موجود بالفعل
ماذا لو أردت أن تنشأ أنت الجدول وترسل له البيانات بصورة طبيعية
إذن صمم جدول كما أنت معتاد
واستخدم جملة
كود :
[COLOR=#000000][COLOR=#0000bb]Insert Into
Select
[/COLOR][/COLOR]المعروفة
كود :
[COLOR=#000000][COLOR=#0000bb]insert into Table_Excel
SELECT [/COLOR][COLOR=#007700]*
[/COLOR][color=#0000bb]FROM OPENROWSET[/color][color=#007700]([/color][color=#dd0000]'Microsoft.Jet.OLEDB.4.0'[/color][COLOR=#007700],
[/COLOR][color=#dd0000]'Excel 8.0;Database=C:\1.xls;IMEX=1'[/color][COLOR=#007700],
[/COLOR][color=#dd0000]'SELECT * FROM [Sheet1$]'[/color][COLOR=#007700])
[/COLOR][/COLOR]نتمنى نكون افدناكم وأوصلنا لكم فائدة ربما كانت غائبة عن الكثير
والله ولي التوفيق
