كيفية الوصول إلى قواعد بيانات متعددة في استعلام SQL في VB 3.0

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية113701
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
الموجز
عند الوصول إلى البيانات من مصدر بيانات واحد أو أكثر في نفس الوقت في استعلام واحد, سوف قد ترغب في استخدام الأسلوب الأسرع و العامة الأكثر--إرفاق الجداول من مصادر بيانات مختلفة إلى قاعدة بيانات Microsoft Access مفرد. عند هذه النقطة يمكن يمكن إنشاء الاستعلامات التي تمتد على قاعدتي بيانات مختلفتين كما لو كانت كافة الجداول, المرفقة أو محلية ، المحلي إلى قاعدة بيانات Microsoft Access.
إرفاق الجداول لديه مزايا إدارية--وأداء فعالة خاصةً إذا تم تنفيذ الاستعلامات بشكل متكرر. ومع ذلك، في بعض الأحيان قد تحتاج إلى اتخاذ توجيه أبطأ الموضحة في هذه المقالة عندما تحتاج إلى استخدام استعلامات ad hoc يشمل قواعد بيانات أو أكثر. يشرح هذا المقال كيفية إنشاء هذه الاستعلامات قاعدة البيانات المشتركة أبطأ.
معلومات أخرى
توجد طريقتان يمكنك استخدام تحديد قاعدة بيانات خارج واحد مفتوح حالياً.

أسلوب واحد

يوفر Microsoft Access SQL جملة IN يسمح لك بالاتصال بقاعدة بيانات خارجية (قاعدة بيانات غير قاعدة البيانات الحالية). هذا الأسلوب ذلك، ومع ذلك، تحديد قمت إلى قاعدة البيانات الخارجية واحد فقط في نفس وقت.

جملة IN جزأين ، واسم قاعدة البيانات و سلسلة الاتصال. اسم قاعدة البيانات مسار مؤهل بشكل كامل إلى الملف أو الدليل الذي يحتوي على ملف قاعدة البيانات وتحتوي على سلسلة الاتصال نوع قاعدة البيانات ومعلمات الأخرى حسب الحاجة.

لتعيين قاعدة بيانات خارجية بإلحاق فاصلة منقوطة (;) إلى الاتصال جزء و بإحاطتها بعلامات اقتباس مفرد أو مزدوج. يستخدم المثال التالي جملة IN لتحديد جدول (العملاء) في قاعدة بيانات dBASE IV (SALES):
SELECT Customers.CustomerIDFROM CustomersIN "C:\DBASE\DATA\SALES" "dBASE IV;"WHERE Customers.CustomerID Like "A*"				
"في Visual Basic،" يمكنك إنشاء المجموعة الحيوية من المثال أعلاه باستخدام التعليمات البرمجية لـ Visual التالية:
Dim db As DatabaseDim ds As DynasetDim sql As String' Open a database:Set db = OpenDatabase("C:\VB\BIBLIO.MDB")' Build the select statement, referencing the external dBASE IV file:sql = "SELECT Customers.CustomerID, FROM Customers"sql = sql & " IN 'C:\DBASE\DATA\SALES' 'dBASE IV;'"sql = sql & " WHERE Customers.CustomerID Like 'A*'"' Create the recordset:Set ds = db.CreateDynaset(sql)' Loop through and display the records:While Not ds.EOF   For i = 0 To ds.Fields.Count - 1      Print ds(i); "  ";   Next i   Print   ds.MoveNextWend				

أسلوب انتشار

يمكن تحليل مشغّل Microsoft Access دمجها مع Visual Basic الإصدار 3.0 استعلامات SQL لتضمين سلسلة الاتصال المستخدمة في فتح كائن قاعدة بيانات. عبارات من عبارة SQL يقبل اسم جدول مؤهل بشكل كامل والتي تسمح موضع سلسلة الاتصال في أقواس مربعة قبل اسم الجدول. يتم فصل سلسلة الاتصال من اسم الجدول حسب فترة. يسمح هذا الأسلوب الاتصال قواعد بيانات خارجية متعددة في نفس الوقت.

يمكنك الوصول إلى أي جدول في أي من قاعدتي بيانات داخل عبارة حدد باستخدام بناء الجملة التالي:
SELECT tbl1.fld1,tbl2.fld1FROM [odbc;dsn=datasource;database=pubs;Username= <username>;PWD=<strong password>].tbl1,[dbase iii;database=C:\DBASE3].tbl2WHERE tbl1.fld1 = tbl2.fld1				
انضمام هذا المثال جدولين من قاعدتي بيانات مختلفتين ، أحد مصدر بيانات ODBC والآخر dBASE III جدول في دليل C:\DBASE3.

بشكل عام، يماثل سلسلة الاتصال المستخدمة هنا في أقواس مربعة خاصية الاتصال TableDef عند إرفاق أو المعلمة الرابع من العبارة OpenDatabase. سيتم في أحد النماذج الثلاثة استناداً إلى قاعدة البيانات (ODBC أو ISAM أو Microsoft Access).

للحصول على قواعد بيانات ODBC:
   [odbc;dsn=datasource;database=thedatabasename;Username=<username>;PWD=<strong password>]				
قواعد بيانات ISAM لـ:
   [paradox 3.X;database=C:\DATABASE\PARADOX3]   [foxpro 2.5;database=C:\DATABASE\FOX25]   [dbase iv;database=C:\DATABASE\DBASEIV]   [btrieve;database=C:\DATABASE\BTRIEVE\FILE.DDF]				
قواعد بيانات لـ Microsoft Access:
   [;database=C:\VB\BIBLIO.MDB]				
المهم ملاحظة منقوطة بادئة للحصول على قواعد بيانات Microsoft Access. هذا هو تماماً عند نفس السلسلة يتم الحاجة إلى كتابة الخاصية الاتصال للكائن TableDef قبل إرفاق الجدول إلى تنسيق قاعدة بيانات Microsoft Access. هو عنصر نائب لـ مواصفات تنسيق قاعدة البيانات غير الضرورية منقوطة بادئة ويسمح "قاعدة بيانات =" جملة اتبع.

مثال التعليمة البرمجية من استعلام قاعدة بيانات متعددة

ينشئ هذا المثال المجموعة الحيوية ربط جدولين من مصدري البيانات أحدهما SQL Server والآخر قاعدة بيانات Microsoft Access. يعتبر جدول TestTab على ملقم SQL ويتم الجدول T1 في قاعدة بيانات Microsoft Access.

ملاحظةيجب تغيير <username>و < كلمة المرور القوية > إلى القيم الصحيحة قبل تشغيل هذه التعليمات البرمجية. تأكد من أن اسم المستخدم لديه الأذونات المناسبة لإنجاز هذه العملية على قاعدة البيانات.
Dim db As databaseDim ds As dynasetDim sql As String, Uid$, Pwd$Set db = OpenDatabase("C:\VB\BIBLIO.MDB")' This obtains a valid database object. It does not have to be a Microsoft' Access database; the following works equally as well:' Set db = OpenDatabase("C:\FOXPRO25\", 0, 0, "foxpro 2.5")' The values here are hard-coded, but you could prompt the user for their' user id and password.Uid$ = <username>Pwd$ = <strong password>' Build the select statement, concatenating the user's id and password:sql = "SELECT T1.F2, TestTab.F2, TestTab.F3"sql = sql & " FROM [;database=C:\ACCESS\DB1.MDB].T1 , "sql = sql & " [odbc;dsn=texas;database=playpen;Username=" & Uid$sql = sql & ";PWD=" & Pwd$ & "].TestTab"sql = sql & " WHERE T1.F1 = TestTab.F1"' Execute the select query:Set ds = db.CreateDynaset(sql)' Loop through and display the records:While Not ds.EOF   For i = 0 To ds.Fields.Count - 1      Print ds(i); "  ";   Next i   Print   ds.MoveNextWend				

ملاحظة خاصة تتعلق المؤمنة بواسطة قواعد بيانات Microsoft Access

إذا كان يتم تأمين قاعدة بيانات Microsoft Access يجب تنفيذ تطبيق Visual Basic SetDataAccessOption والوصول أوامر SetDefaultWorkspace قبل تنفيذ أية بيانات التعليمات البرمجية ذات الصلة. هذا مطلوب من أجل تسجيل دخول ناجحة لأن Microsoft Access لا يستخدم "اسم المستخدم ="و"PWD =" مقاطع من سلسلة الاتصال. على سبيل المثال:
   ' Establish the location of the SYSTEM.MDA files if in another   ' directory other than the \WINDOWS directory:   SetDataAccessOption 1, "C:\MYDIR\MYAPP.INI"   ' Log on to a valid account:   SetDefaultWorkspace "admin", "<password>"				
عندما يتم ذلك استعلامات قاعدة بيانات Microsoft Access الآمنة سينجح. مع ذلك، لاحظ أن نتيجة هذه العملية وجود قيود مضمنة عن هذه التقنية مؤقتة; واحد فقط تأمين قاعدة بيانات Microsoft Access يمكن الوصول إلى في استعلام مؤقتة. وهذا لأن بمجرد تمت تهيئة محرك Microsoft Access في جلسة عمل لمستخدم معيّن اسم وكلمة مرور تركيبة ، يتم الاحتفاظ هذه القيم حتى الجلسة (برنامج قابل للتنفيذ Visual Basic أو جلسة العمل من بيئة VB.EXE) ينتهي.

ومع ذلك، إذا أكثر من قواعد بيانات Microsoft Access الآمنة تحتاج إلى الوصول إلى لاستعلام, الأسلوب الأفضل نقل الجداول الفعلية من قواعد بيانات آمنة إلى قاعدة البيانات المؤمنة واحد. للقيام بذلك، تحتاج إلى تغيير كلمة المرور الخاصة بحساب "المسؤول" إلى "" بشكل مؤقت أثناء عمليات النقل. ثم يمكنك استخدام التعليمات البرمجية لـ Visual Basic مثل تلك الموجودة في النموذج الوصول إلى البيانات Visdata ، نسخ الجداول.
مراجع
للحصول على معلومات إضافية حول أمان Microsoft Access "، انقر فوق رقم المقالة التالي لعرضها في" قاعدة المعارف لـ Microsoft:
105990INFO: كيف الأمان مقابض Visual Basic 3.0 تعيين بواسطة Microsoft Access

تحذير: تمت ترجمة هذه المقالة تلقائيًا

คุณสมบัติ

รหัสบทความ: 113701 - การตรวจสอบครั้งสุดท้าย: 09/01/2006 03:47:52 - ฉบับแก้ไข: 3.1

Microsoft Visual Basic 3.0 Professional Edition

  • kbmt kbhowto kbsqlprog KB113701 KbMtar
คำติชม