PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADO und Access-Tabellennamen


Andreas Kosch
23.06.2000, 22:30
Hallo,

wenn man einen Interface-Zeiger für ein <b>Connection</b>-Objekt angefordert hat und die Verbindung zur Datenbank offen ist, kann man über die Connection-Methode <b>OpenSchema</b> die Details zur Datenbank abrufen.

Mit ADO-Express ist diese Aufgabe ganz einfach:
<pre>
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialogMDB.Execute then
with ADOConnection1 do
begin
Properties['Data Source'].Value := OpenDialogMDB.FileName;
Connected := True;
GetTableNames(ListBox1.Items, False);
end;
end;
</pre>
Falls ADO Express nicht zur Verfügung steht, muss man direkt mit den nativen COM-Objekten von ADO hantieren. Hier ist in der Hilfedatei zum <b>MDAC SDK</b> das folgende VB-Beispiel zu finden, dass so auch in Delphi nachgebaut werden kann:
<pre>
Public Sub OpenSchemaX()

Dim Cnxn As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnxn As String

Set Cnxn = New ADODB.Connection
strCnxn = "Provider=sqloledb;Data Source=MyServer;Initial Catalog=Pubs;User Id=sa;Password=; "
Cnxn.Open strCnxn

Set rstSchema = Cnxn.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop

' clean up
rstSchema.Close
Cnxn.Close
Set rstSchema = Nothing
Set Cnxn = Nothing

End Sub
</pre&gt

Jens Schumann
01.03.2001, 19:18
Hallo,<br>wie kann ich mir ohne ADO-Express, also nur mit der TLB, die in einer mdb-Datei enthaltenen Tabellennamen auflisten lassen.<br>Ich verwende ADO 2.5, Access 2000, D5 Pro und Win2k SP1.<br>:-) Jens Schumann