منتديات رحيل لكل العرب

منتديات رحيل لكل العرب (https://r7il.com/vb/)
-   قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress (https://r7il.com/vb/f20/)
-   -   تحويل قاعدة بيانات من اكسس الى sql (https://r7il.com/vb/t1857/)

مهرة النجدية 04-03-2019 05:00 PM

تحويل قاعدة بيانات من اكسس الى sql
 
الاصدقاء الاكارم السلام عليكم و رحمة الله و بركاته تحية طيبة

في هذا التطبيق سنتحدث عن تحويل قاعدة بيانات اكسس الى sql برمجيا

حيث سنقوم بانشاء قاعدة البيانات على السيرفر و تصدير الجداول لها باستخدام SQL scripts



ملاحظة هامة : العمل سيتم على SQL 2005 وما فوق

بعد البحث و التجريب وصلت الى كود يقوم بانشاء قاعدة بيانات SQL وتصدير كافة الجداول لها

Dim ConData As New ADODB.Connection
Dim Str_Data As String
Dim Str_Use As String
Dim TableName As String
Dim Tdf As TableDef


ConData.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=master;Data Source=HP-PC\SQLEXPRESS"

Str_Data = "Create database DB1"
Str_Use = "Use DB1"

ConData.Execute (Str_Data)
ConData.Execute (Str_Use)

For Each Tdf In CurrentDb.TableDefs
If Left(Tdf.Name, 4) <> "MSys" Then
If Len(Tdf.Connect) = 0 Then
DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;Driver={SQL Server};Server=HP-PC\SQLEXPRESS" & _
";Database=DB1" & ";Trusted_Connection=Yes", acTable, Tdf.Name, Tdf.Name
End If
End If
Next


الكود السابق يقوم بانشاء قاعدة بيانات باسم DB1 ويصدر كافة الجداول لها

عظيم جدا و تمام التمام لكن هناك مشكلة صغيرة جدا

المفاتيح الاساسية و الفهارس و العلاقات لم يتم تصديرها !!!!!! وبالتالي لن تعمل قاعدة البيانات ابدا

بحثت كثيرا و حاولت تعديل الكود السابق و لكن دون جدوى

لذلك كان لا بد من البحث عن طريقة اخرى لنصل للمطلوب و الطريقة هي انشاء الجداول و المفاتيح و الفهارس و العلاقات عن طريق اكواد SQL او ما يسمى SQL scripts , سيتسائل البعض كيف ذلك ؟؟

البداية :

عند الانتهاء من تصميم قاعدة البيانات سنستخدم معالج التكبير لمرة واحدة فقط من اجل الحصول على الكود او ملف SQL scripts وبعد ذلك سنضيف الكود الى ملف ونستخدم ذلك الملف متى اردنا

نفتح قاعدة البيانات التي نرغب بتحويلها و نضغط على ادوات قاعدة البيانات ثم نختار (خادم SQL)

1- انشاء قاعدة بيانات جديدة ( في هذا المثال اسم قاعدة البيانات test SQL 1 )

2- نحدد اسم السيرفر و اسم قاعدة البيانات المطلوبة ( الاتصال موثوق ) ( التالي )

3- نحدد كافة الجداول ( التالي )

4- نحدد ( فهارس - قواعد التحقق من الصحة - افتراضيات - علاقات الجداول ) و نستخدم (مشغلات عوضا عن DRI) ( التالي )

5- نحدد (عدم اجراء اية تغييرات للتطبيق) (انهاء)



سيبدا المعالج بترحيل كافة الجداول الى السيرفر

بعد الانتهاء نغلق برنامج الاكسس و نذهب الى برنامج SQL Server Management Studio (ملاحظة هذا البرنامج لادارة قواعد البيانات و يختلف عن برنامج SQL server )

نحدد السيرفر ونختار نوع المصادقة (حسابات ويندوز) ثم اتصال سيفتح البرنامج

نختار Databases ثم نحدد قاعدة البيانات المطلوبة

نضغط بالزر الايمن للفارة و نختار من القائمة Tasks ثم Generate Scripts

تظهر نافذة جديدة نختار منها التالي ونحدد قاعدة البيانات Test SQL 1 ثم التالي

تعدل الخيارات التالية:

include if not exists = false

script defaults = false

scripts extended properties = false

scripts owner = false

scripts full-text indexes = true

scripts indexes = true

ثم التالي

نحدد (tables) ثم التالي

نحدد كافة الجداول ثم انهاء و نضغط انهاء مرة اخرى

سيظهر لنا السكريبت الخاص بانشاء الجداول و المفاتيح و الفهارس و العلاقات

ننسخ الكود بشكل كامل و نحفظه ضمن ملف نصي نسميه مثلا (Test1)



نعود الى صديقنا الاكسس

ننشئ نموذجا جديدا ونضع فيه حقلي نص باسم (tservername - tdatabasename) وزر امر

نكتب الكود التالي في زر الامر

Dim ConData As New ADODB.Connection
Dim Str_Data As String
Dim Str_Use As String

' فتح الاتصال مع السيرفر
ConData.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=master;Data Source=" & Me.tservername

' انشاء قاعدة البيانات
Str_Data = "Create database " & Me.TDataBaseName
Str_Use = "Use " & Me.TDataBaseName

ConData.Execute (Str_Data)
ConData.Execute (Str_Use)

MsgBox "تم انشاء قاعدة البيانات بنجاح" & vbCrLf & "جاري تصدير الجداول", vbInformation + vbMsgBoxRight

' تنفيذ السكريبت ضمن قاعدة البيانات لانشاء الجداول و الفهارس و العلاقات
Shell "sqlcmd.exe -S " & Me.tservername & " -d " & Me.TDataBaseName & " -i " & CurrentProject.Path & "\test1.txt", 0

MsgBox "تم انشاء الجداول بنجاح", vbInformation

' اغلاق الاتصال
ConData.Close


طبعا الملف test1.txt يجب ان يكون في نفس مسار قاعدة البيانات

المرفق يختلف قليلا عن الشرح فهو يساعدك في اختيار السيرفر تلقائيا

اعتذر على الاطالة في الشرح

رابط البرنامج مع فيديو للشرح

http://www.mediafire.com/file/x14w1p4qbqewd4k/SQL1.rar


الساعة الآن 09:13 AM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2010, Crawlability, Inc. TranZ By Almuhajir

Security team