Announcement

Collapse
No announcement yet.

ADO und Access-Tabellennamen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ADO und Access-Tabellennamen

    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

  • #2
    ADO und Access-Tabellennamen

    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

    Comment

    Working...
    X