Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

VB 3. 0'da bir SQL sorguda birden çok veritabanları Access nasıl kullanılır

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:113701
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.
Özet
Aynı anda tek bir sorguda birden fazla veri kaynağından veri erişirken, tabloları, farklı veri kaynaklarından tek bir Microsoft Access veritabanına eklenmesi hızlı ve en genel yöntemi--kullanmak istersiniz. Tüm tablolar, eklenmiş veya yerel Microsoft Access veritabanı için yerel gibi iki farklı veritabanı sorgularını o noktada oluşturulması.
Özellikle, sorguları art arda yürütme tablolar ekleme güçlü performans ve yönetim avantajları--sahipse. Ancak, bazen, iki ya da daha fazla veritabanı kapsayacak geçici bir sorgu kullanmak istediğinizde, bu makalede açıklanan yavaş yol almak isteyebilirsiniz. Bu makalede, bu yavaş geçici veritabanı sorguları oluşturma açıklanmaktadır.
Daha fazla bilgi
Şu anda açık olan bir dışında bir veritabanı belirtmek için kullanabileceğiniz iki yöntem vardır.

Yöntem Bir

Microsoft Access SQL (geçerli veritabanı dışında bir veritabanı) bir dış veritabanına bağlanmasına olanak tanıyan bir IN yan tümcesi sağlar. Bu yöntemi ancak, yalnızca bir dış veritabanına bir anda sınırlamak.

IN yan tümcesi, veritabanı adı ve bağlantı dizesi iki bölüm vardır. Veritabanı adı dosya veya dizin veritabanı dosyasını da içeren tam olarak nitelenmiş bir yol ve veritabanı türü ve diğer parametreleri gerektiği gibi bağlantı dizesini içerir.

Bir dış veritabanı belirlemek için <a0></a0>, bir noktalı virgül (;) append bağlantı için kısım ve onu tek veya çift tırnak işaretleri içine alın. Aşağıdaki örnek IN yan tümcesi dBASE IV (SATıŞ) veritabanında bir tablonun (Müşteriler) belirtmek için kullanır:
SELECT Customers.CustomerIDFROM CustomersIN "C:\DBASE\DATA\SALES" "dBASE IV;"WHERE Customers.CustomerID Like "A*"				
Visual Basic, dinamik küme Yukarıdaki örnekte aşağıdaki Visual Basic kodu kullanarak oluşturabileceğiniz:
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				

Yöntem İki

Microsoft Access altyapısı sürüm 3.0 Visual Basic içinde dahil, bir veritabanı nesnesi açmak için kullanılan bağlantı dizesini dahil etmek için SQL sorguları ayrıştırabilir. SQL deyiminin FROM yan tümcesinde, önce bir tablo adı köşeli ayraçlar içinde bağlantı dizesini yerleşimini izin veren bir tam olarak nitelenmiş bir tablo adı kabul eder. Bağlantı dizesini tablo adı noktayla ayrılmış. Bu yöntem, aynı anda birden çok dış veritabanlarına bağlanmanıza olanak tanır.

Bu sözdizimini kullanarak, tek bir select deyimi içinde iki veritabanlarının ya da herhangi bir tabloda erişebilirsiniz:
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				
Bu örnek iki tablo iki farklı veritabanlarından katılırsa, bir ODBC veri kaynağı diğer bir dBASE ııı dizinde C:\DBASE3 tablo ve.

Genel olarak, burada köşeli ayraç içinde kullanılan bağlantı dizesini eklenirken bir TableDef <a1>Bağlan</a1> özelliğini veya OpenDatabase deyiminin dördüncü parametre için aynıdır. Veritabanı (ODBC, ISAM veya Microsoft Access) bağlı olarak üç formlarından birinde olacaktır.

ODBC veritabanları:
   [odbc;dsn=datasource;database=thedatabasename;Username=<username>;PWD=<strong password>]				
için ISAM veritabanları:
   [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]				
için Microsoft Access veritabanları:
   [;database=C:\VB\BIBLIO.MDB]				
Not başta noktalı virgül Microsoft Access veritabanları için önemlidir. Bu tablo biçimi Microsoft Access veritabanına eklemeden önce TableDef nesnesinin Connect özelliğine doldurmak için gereken tam olarak aynı dizedir. Başta noktalı virgül gerekli olmayan veritabanı biçim belirtimi için bir yer tutucu ve sağlar "veritabanı =" izlemek için yan tümcesi.

Kod örneği, birden çok veritabanı sorgu

Bu örnek, iki veri kaynaklarından, tek bir SQL Server ve diğer Microsoft Access veritabanındaki iki tablo birleştirme dinamik küme oluşturur. TestTab tablosu SQL Server'da ve T1 tablo Microsoft Access veritabanında.

Not<username>Değiştirmelisiniz < güçlü parola > ve bu kodu çalıştırmadan önce doğru değerler için. Kullanıcı adı, veritabanında bu işlemi gerçekleştirmek için uygun izinlere sahip olduğundan emin olun.
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				

Özel not ilgili Microsoft Access veritabanları güvenli...

Microsoft Access veritabanı güvenli ise, Visual Basic uygulamasını SetDataAccessOption yürütmelisiniz ve ilgili kodu SetDefaultWorkspace komutları, önce veri yürütme erişimi. Microsoft Access'i kullanın başarılı bir oturum açma için gerekli olmasıdır "kullanıcıadı ="ve"PWD =" bölümleri bağlanma dizesi. Örneğin:
   ' 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>"				
Bu olduğunda, güvenli bir Microsoft Access veritabanına sorgular başarısız olur. Ancak, Not nedeniyle, bu işlem, bu ad hoc teknik için yerleşik bir sınırlama yoktur; yalnızca bir Microsoft Access veritabanının güvenli, ad hoc sorgusu ile erişilebilir. Bunun nedeni, bu değerler, Microsoft Access Altyapısı başlatıldı olan bir kullanıcı adı ve parola bileşimini, bir oturumda bir kez (Visual Basic yürütülebilir bir program veya ortamının VB.EXE oturum) oturumu kadar korunur sona erdirir.

Ikiden daha güvenli bir Microsoft Access veritabanları için sorgu erişilmesi gerekiyorsa, ancak en iyi yaklaşım gerçek tablo güvenli veritabanlarından güvenli bir veritabanına taşımaktır. Bunu yapmak için <a0></a0>, yönetici hesabına ait parolayı değiştirmeniz gerekir "" geçici olarak aktarım işlemleri sırasında. Sonra Visual Basic kodu, veri erişim örneğinde, Visdata gibi tabloları kopyalamak için kullanabilirsiniz.
Referanslar
Güvenlik hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
105990BILGI: Microsoft Access tarafından nasıl Visual Basic 3.0 tanıtıcıları güvenlik ayarla

Warning: This article has been translated automatically

Özellikler

Makale No: 113701 - Son İnceleme: 09/01/2006 03:47:52 - Düzeltme: 3.1

Microsoft Visual Basic 3.0 Professional Edition

  • kbmt kbhowto kbsqlprog KB113701 KbMttr
Geri bildirim
ld(m);