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>
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>
Comment