Announcement

Collapse
No announcement yet.

DBase Tabelle zur Laufzeit generieren (unter Verwendung von ADOConnection und ADOCommand)

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

  • DBase Tabelle zur Laufzeit generieren (unter Verwendung von ADOConnection und ADOCommand)

    Hallo,

    ich möchte zur Laufzeit Dbase - Dateien generieren. Ich habe da einige Probleme. Mir sind leider nicht alle notwendigen Properties von TAdoConnection bekannt. Im aktuellen SDK (MDAC) konnte ich nichts finden.

    Die folgende Prozedur läuft zwar ohne Fehler durch, aber ich finde die erzeugte Tabelle nicht !

    <pre>
    procedure TForm1.TabelleErstellenClick(Sender: TObject);
    var myconn : TAdoConnection;
    mycommand : TAdoCommand;

    begin
    myconn := TADOConnection.Create(Self);
    mycommand := TADOCommand.Create(Self);

    try
    with myconn do
    begin
    Connected := False;
    Provider := 'Microsoft.Jet.OLEDB.4.0';
    Properties['Extended Properties'].Value := 'dBASE 5.0';
    Properties['Data Source'].Value := ExtractFilePath
    (Application.EXEName);
    //Properties['DefaultDir'].Value := ExtractFilePath
    (Application.EXEName); funktioniert nicht
    Connected := True;
    // Disable Login Prompt ???
    // weitere wichtige einstellungen ???
    end; // of myconn

    with mycommand do
    begin
    Connection := myconn;
    CommandText := 'create table test.dbf(name1 TEXT (30),name2 TEXT
    (30),Datum DateTime)';
    Execute;
    end;
    finally
    myconn.free;
    mycommand.Free;
    end;
    </pre>

    Hat jemand Erfahrungen damit ? Oder vieleicht ein Hinweis auf die möglichen Properties (TAdoConnection) die man zur Laufzeit verwenden
    kann.

    Bis dann

  • #2
    Hallo,

    das kann so nicht funktionieren, da die neue Tabelle als neue DBF-Datei angelegt werden muss. Statt dessen kann man über den Export von Daten eine neue DBF anlegen:
    <pre>
    procedure TForm1.ButtondBASEClick(Sender: TObject);
    begin
    FExportSQL := 'SELECT * INTO [Export.dbf] IN "C:\Temp" "dBASE 5.0;" FROM Customer';
    DoExport;
    end;

    procedure TForm1.DoExport;
    var
    iRows : Integer;
    begin
    MemoSQL.Lines.Clear;
    MemoSQL.Lines.Add(FExportSQL);
    ADOConnection1.Connected := True;
    ADOConnection1.Execute(FExportSQL, iRows);
    ADOConnection1.Connected := False;
    ShowMessage(Format('Es wurden %d Datensätze exportiert.', [iRows]));
    end;
    </pre>
    Die TADOConnection-Instanz zeigt dabei auf die Quelldatenbank, die die über SELECT abgefragte Tabelle enthält. Den Rest macht die JET ENGINE selbst

    Comment


    • #3
      Hallo Andreas,

      oops, ich habe nach dem falschen Tabellennamen gesucht :-), im Hinterkopf hatte ich matze.dbf. Im CommandText steht aber test.dbf,

      Sorry!!!

      Diese Funktion funktioniert. Aber ich würde gerne noch mehr über die Properties von AdoConnection erfahren, weist Du, nach was ich im MDAC SKD suchen muss, um mehr Informationen bezüglich der Properties zu finden???

      Danke, bis dan

      Comment


      • #4
        Hallo,

        ich würde im Kapitel 20 (<i>MDAC 2.5 SDK - OLE DB Programmer's Reference; Chapter 20: OLE DB Core Components</i>) mit der Seite
        <b>Connection String Syntax</b> beginnen. Am Ende sind 3 Links auf die wichtigen Teile (wie zum Beispiel <i>OLE DB Initialization Properties: Quick Reference</i>)

        Comment

        Working...
        X