Avatar billede Kim Neesgaard Seniormester
22. marts 2003 - 18:55 Der er 3 kommentarer og
1 løsning

Bedste tilslutning Visual Basic 6.0 -> Access database

Nu har jeg kigget meget i gamle spørgsmål og andre relaterede steder og der er mange bud på tilslutning til databaser.

Jeg vil til en VB 6.0 applikation gerne bruge en Access database til opbevaring af data og skal i VB bruge et recordset med disse data.

Mit spørgsmål er nu: hvad er den bedste måde at forbinde sig med Access data fra VB? DAO eller ADO? Og helt konkret hvilken kode?

Nedenstående virker fint, men det er så vidt jeg kan se DAO:

Dim db1 As Database
Dim rs1 As Recordset
Set db1 = OpenDatabase("C:\x.mdb", True)
Set rs1 = db1.OpenRecordset("SELECT * FROM table1", dbOpenDynaset, adLockOptimistic)

Er ADO ikke den 'nye og bedre måde'?
Avatar billede tjacob Juniormester
23. marts 2003 - 08:15 #1
Jeg mener afgjort ADO har flere strenge at spille på. Og inkluderer du så også ADOX, kan du stort set gøre hvad som helst med en Access database.

Med ADOX' Catalog Object er det rimelig simpelt at gøre alt det 'udenoms':
-arbejde med schemaer
-oprette en database
-oprette tabeller
-oprette nøgler i/mellem tabeller
-oprette relationer mellem tabeller
-oprette passwords osv

Med ADO laver du selve recordset operationerne:

Dim sCon as String
Dim oCon as New ADODB.Connection
Dim rs1 as New ADODB.Recordset

sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\x.mdb"
oCon.Open sCon
rs1.Open "SELECT * FROM table1", oCon, adOpenKeyset, adLockOptimistic, adCmdText

Når du har åbnet på denne måde (openkeyset og optimistic), kan du uden videre manipulere med recordsettets Fields:

strVar = rs1.Fields("Navn")    'navn taget direkte fra tabel
strVar = rs1.Fields(1)        'index angiver hvilken column/field

du kan også skrive til tabellen:
rs1.Fields("Navn") = "kurt"    'men så skal du huske at afslutte med:
rs1.Update

Du flytter i recordsettet med:

rs1.MoveNext
rs1.MovePrevious
rs1.MoveFirst
rs1.MoveLast
rs1.Move (antal poster)

Her kan du studere ADO nærmere:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/pg_ado_fundamentals.asp

MVH tjacob
Avatar billede Kim Neesgaard Seniormester
23. marts 2003 - 10:41 #2
Mange tak for det særdeles gode og detaljerede svar!! For at bruge ovennævnte skal man inkludere referencen Microsoft ActiveX Data Objects 2.6 Library?
Avatar billede tjacob Juniormester
23. marts 2003 - 12:13 #3
Ja du har ret, -i min udgave (Visual Studio 6.0) er der dog en 2.7 udgave

og ADOX hedder:

Microsoft ADO Ext. 2.7 for DDL and Security    (2.6?)


/tjacob
Avatar billede Kim Neesgaard Seniormester
23. marts 2003 - 13:10 #4
Af sidstnævnte har jeg kun en version 2.1 og VB 6.0 er lige købt? Men man kan måske få opdateret hos Microsoft?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester