Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

Ako pristupovať k viacero databáz v dotaze SQL vo VB 3.0

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:113701
Upozornenie na neaktuálny obsah článku databázy KB
Tento článok obsahuje informácie o produktoch, pre ktoré spoločnosť Microsoft už neposkytuje technickú podporu. Z tohto dôvodu je tento článok publikovaný ako nezmenený a už nebude aktualizovaný.
SUHRN
Pri prístupe k údaje z viac ako jedného zdroja údajov súčasne vjediného dotazu, bude pravdepodobne chcete používať najrýchlejších a najčastejšie všeobecnémetóda--prikladaná tabuliek z rozličných zdrojov údajov do jedinejDatabáza programu Microsoft Access. V tomto bode dotazy, ktoré zahŕňajú dve rôznedatabáz môže byť konštruované ako keby boli všetky tabuľky, pripojenej, alebo miestne,miestne do databázy programu Microsoft Access.
Pripojením tabuľky má silný výkon a administratívne výhody--najmä ak sú vykonávajúci dotazy opakovane. Avšak, niekedy vámchcieť vziať trase pomalšie, popísaný v tomto článku, keď potrebujeteAk chcete použiť ad hoc dotazy, ktoré zahŕňajú dve alebo viacero databáz. Tento článokvysvetľuje spôsob vytvorenia týchto pomalší kríž-databázových dotazoch.
DALSIE INFORMACIE
Existujú dva spôsoby, ktoré môžete zadať databázu mimo jedento je práve otvorené.

Metóda One

Microsoft Access SQL poskytuje v klauzule, ktorá umožňuje pripojenie kexternej databázy (databázy iné ako Aktuálna databáza). Táto metódavšak vás obmedzujú na iba k jednej externej databáze naraz.

V klauzule má dva diely, názov databázy a pripojte reťazec. Databázanázov je plne kvalifikovaní cestu k súbor alebo adresár, ktorý obsahujesúbor databázy a pripojiť reťazec obsahuje typ databázy a inéparametre podľa potreby.

Špecifikovať externej databázy, pripojte bodkočiarku (;) na pripojeniečasť, uzavrite ho do jednoduchých alebo dvojitých úvodzoviek. Nasledujúcepríklad používa v klauzule určiť tabuľku (zákazníci) v programe dBASE IVDatabáza (predaj):
SELECT Customers.CustomerIDFROM CustomersIN "C:\DBASE\DATA\SALES" "dBASE IV;"WHERE Customers.CustomerID Like "A*"				
V jazyku Visual Basic, môžete vytvoriť množiny z vyššie uvedený príklad prostredníctvompomocou nasledujúci kód jazyka Visual Basic:
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				

Dve metódy

Nástroj programu Microsoft Access začlenené do jazyka Visual Basic verzia 3.0 možnoanalyzovať SQL dotazov zahrnúť pripojiť reťazec slúžiaci na otvorenie databázyobjekt. V klauzule From príkazu SQL akceptuje plne kvalifikovanínázov tabuľky, ktorý umožňuje umiestnenie reťazca pripojiť na námestízátvorkách pred názov tabuľky. Pripojiť reťazec je oddelená odnázov tabuľky bodkou. Táto metóda umožňuje pripojiť na násobokexterných databáz v rovnakom čase.

Máte prístup ľubovoľnej tabuľky v jednej z dvoch databáz vo vnútri jednotného vybertevyhlásenie pomocou nasledovnej syntaxe:
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				
V tomto príklade sa pripojí dvoch tabuliek z dvoch odlišných databázach, jeden ODBCZdroj údajov a iné dBASE III tabuľky v adresári C:\DBASE3.

Vo všeobecnosti, pripojenie reťazec tu použité v hranatých zátvorkách je identické sVlastnosť pripojiť TableDef keď pripojením alebo štvrtého parametraOpenDatabase výkazu. To bude v jednej z troch foriem, v závislosti odv databáze (ODBC, Knižnica ISAM alebo Microsoft Access).

Pre databázy ODBC:
   [odbc;dsn=datasource;database=thedatabasename;Username=<username>;PWD=<strong password>]				
Knižnica ISAM databáz:
   [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]				
Pre databázy programu Microsoft Access:
   [;database=C:\VB\BIBLIO.MDB]				
Poznámka: dôležité je popredným bodkočiarka pre databázy programu Microsoft Access.To je presne rovnaký reťazec potrební na vyplnenie vlastnosť pripojiťTableDef objekt pred pripojením tabuľky na formát programu Microsoft Accessdatabáza. Vedúci bodkočiarka je majiteľom miesto pre nepotrebné databázyformátovať špecifikácie a umožňuje "databázy =" klauzula sledovať.

Kód príkladom viacerých databázový dotaz

Tento príklad vytvára množiny spájanie dvoch tabuliek z dve údaje zdrojov,jeden SQL Server a iné databázy programu Microsoft Access. TestTabtabuľka je na serveri SQL Server a tabuľke T1 je v programe Microsoft Accessdatabáza.

Poznámka: Musíte zmeniť <username>a <strong password="">na správne hodnoty pred spustením tohto kódexu. Uistite sa, že užívateľské meno má príslušné povolenia na vykonanie tejto operácie v databáze.</strong></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				

Osobitná poznámka týkajúca sa zabezpečené databázy programu Microsoft Access

Ak je zabezpečená databáza programu Microsoft Access, aplikácia Visual Basicmusí vykonať príkazy SetDataAccessOption a SetDefaultWorkspacepred vykonaním akýchkoľvek údajov prístup súvisiacich kód. To vyžadujeúspešné prihlásenie, pretože Microsoft Access nepoužíva "Username =" a"PWD =" oddiely reťazca pripojiť. Napríklad:
   ' 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>"				
Keď sa to deje, dotazy na zabezpečené databázy programu Microsoft Access budúuspieť. Všimnite si však, že z dôvodu tohto procesu je vstavanýobmedzenie pre túto ad hoc techniku; iba jeden zabezpečené programu Microsoft Accessdatabázy sú prístupné pomocou ad hoc dotazu. To je, pretože akonáhleNástroj programu Microsoft Access je inicializovaný v relácii s konkrétneho používateľameno a heslo kombinácii, tieto hodnoty sa zachovajú až do zasadnutia(Spustiteľný program Visual Basic alebo relácie životného prostredia, VB.EXE)končí.

Avšak, ak viac ako dvoch zabezpečených databázy programu Microsoft Access musia byťprístupné pre dotaz, najlepší prístup je presunúť skutočné tabuliek zzabezpečené databázy do jednej zabezpečených databázy. Chcete urobiť, musíte zmeniťheslo pre konto admin "" dočasne počas prenosuoperácie. Potom môžete použiť kód pre Visual Basic, ako napríklad v údajeprístup vzorka Visdata skopírovať tabuliek.
ODKAZY
Ďalšie informácie o zabezpečení Microsoft Access po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
105990INFO: Ako jazyka Visual Basic 3.0 popisovače zabezpečenia stanovených programu Microsoft Access

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 113701 – Posledná kontrola: 10/10/2011 11:37:00 – Revízia: 2.0

  • kbhowto kbsqlprog kbmt KB113701 KbMtsk
Pripomienky
html>">