Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi activeconnection im tcatalog-object(ADOX) nicht vorhanden (https://www.delphipraxis.net/46132-activeconnection-im-tcatalog-object-adox-nicht-vorhanden.html)

Bigeddie 19. Mai 2005 10:06

Datenbank: mdb • Zugriff über: adox/ado

activeconnection im tcatalog-object(ADOX) nicht vorhanden
 
hi,

ich versuche verzweifelt in eine Access-Datenbank eine Tabelle einzufügen und gehe dabei wie folgt vor:
0 ADOX-Komponenten sind installiert
1 herstellen einer adoconnection (das klappt soweit auch)
2 erstellen eines ADOXCatalog-Objekt
3 versuch der Übergabe der adoconnection an ADOXCatalog.activeconnection

und hier ist leider auch schon schluß.

Was mache ich falsch?
habe ich einen Fehler beim Import der tbl gemacht?
Weis jemand warum activeconnection nicht als property angezeigt wird?

Grüße Bigeddie

nieurig 19. Mai 2005 10:33

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
Hi,
also ich würde ja ein normales SQL-Statement absetzen.
Dies scheint mir der direktere Weg zu sein. :wink:

SQL-Code:
CREATE TABLE TabName (
  IDTab counter,
  Datum datatime,
  Text varchar(255),
  Zahl integer,
  Komma float,
  primary key (IDTab)
)
Frohes Schaffen.
Niels

Bigeddie 19. Mai 2005 10:45

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
würde ich ja auch gerne, aber ich erhalte die Definitionen als Textfile und die Auswertung
sollte ohne große Stringbastellei ablaufen, weshalb ich die Methode über TadoTable vorziehen muß.
trotzden Danke

Grüße Bigeddie

shmia 19. Mai 2005 12:53

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
Zitat:

Zitat von Bigeddie
ich versuche verzweifelt in eine Access-Datenbank eine Tabelle einzufügen und gehe dabei wie folgt vor:
0 ADOX-Komponenten sind installiert
1 herstellen einer adoconnection (das klappt soweit auch)
2 erstellen eines ADOXCatalog-Objekt
3 versuch der Übergabe der adoconnection an ADOXCatalog.activeconnection
Weis jemand warum activeconnection nicht als property angezeigt wird?

Ein Blick in die importierte TLB in Unit ADOX_TLB.pas zeigt:
Delphi-Quellcode:
  _Catalog = interface(IDispatch)
    ['{00000603-0000-0010-8000-00AA006D2EA4}']
    function Get_ActiveConnection: OleVariant; safecall;
    procedure _Set_ActiveConnection(pVal: OleVariant); safecall;
    procedure Set_ActiveConnection(const pVal: IDispatch); safecall;
    ... // unwesentliches gestrippet
    property Tables: Tables read Get_Tables;
  end;
Es gibt kein Property ActiveConnection, sondern nur Set- und Get-Methoden.
Könnte ein Fehler von Delphi sein; macht aber nix.
Rufe einfach Set_ActiveConnection auf:
Delphi-Quellcode:
  adocobj.Set_ActiveConnection(ADOConnection1.ConnectionObject as IDispatch);

Bigeddie 20. Mai 2005 09:26

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
vielen Dank für den Tip, ich habe dabei nur ein Problem :wall:

wenn ich beispielsweise

adoxcatalog.set_ActiveConnection(irgendwas) setze und das ganze compilieren lassen will, erhalte ich nur die Fehlermeldung
"unbekannter Bezeichner 'Set_ActiveConnection'

was habe ich falsch gemacht?

UweR 20. Mai 2005 13:25

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
Das muß gehen, ich habe das auch schon gemacht. Poste mal etwas mehr Code damit man auch sehen kann was genau adoxcatalog ist und vor allem wie du es erzeugst.

Bei mir sieht das so aus:

Delphi-Quellcode:
var
   aCatalog : Catalog;


begin
   if dlgOpenDatabase.Execute then begin
      sDatabaseFile := dlgOpenDatabase.FileName;
      if dbCompare.Connected then dbCompare.Close;
      dbCompare.ConnectionObject.ConnectionString := 'FILE NAME='+dlgOpenDatabase.FileName;
      dbCompare.Open;
      aCatalog := CoCatalog.Create;
      aCatalog.Set_ActiveConnection(dbCompare.ConnectionObject);

marabu 21. Mai 2005 19:02

Re: activeconnection im tcatalog-object(ADOX) nicht vorhande
 
Zitat:

Zitat von Bigeddie
wenn ich beispielsweise adoxcatalog.set_ActiveConnection(irgendwas) setze und das ganze compilieren lassen will, erhalte ich nur die Fehlermeldung "unbekannter Bezeichner 'Set_ActiveConnection'"
was habe ich falsch gemacht?

Nimm adoxcatalog.DefaultInterface.Set_ActiveConnection( ) - dann geht das besser.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz