Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldinformationen aus DB auslesen (https://www.delphipraxis.net/46508-feldinformationen-aus-db-auslesen.html)

Albi 26. Mai 2005 07:30

Datenbank: Interbase 7.0 • Version: 7.1 • Zugriff über: IBX

Feldinformationen aus DB auslesen
 
Hallo,

ich bin gerade dabei mir ein kleines Prog zu schreiben, was mir Feldinformation aus 2 Interbase DB's ausliest, so dass ich diese dann vergleichen kann.

Das auslesen der Tabellen, Felder usw. stellt sich ja nicht als ein solches Problem dar. Nur woran ich scheitere ist, dass ich die Feldinfos nicht ausgelesen bekomme. Also den Character Set, die Länge usw..

Ich habe das zwar hinbekommen mit IBExtract aber dann müsste ich ja noch den String auswerten.

Hat jemand von euch schon Erfahrungen damit gemacht?

alzaimar 26. Mai 2005 18:40

Re: Feldinformationen aus DB auslesen
 
Nee, aber mit ADO gehts relativ einfach.
Du holst Dir die Liste aller Tabellen in eine Stringlist. Da gibts von der ADOConnection eine Methode 'GetTables' oder so.
Dann öffnest Du jede Tabelle mit einer TADODataset-Komponente über 'select * from <TableName> where 1=0'. Das liefert Dir eine leere Tabelle, wobei in den TADODataset.Fields[*] alles drin steht, was Du benötigst.

Das dürfte auch mit der BDE, dbExpress etc. gehen, ich benutze aber nur ADO...

marabu 26. Mai 2005 22:31

Re: Feldinformationen aus DB auslesen
 
Hallo Albi,

BDE und ADO bieten nur Zugriff auf Basiseigenschaften, die das entsprechende Framework benötigt. Alles andere musst du bei BDE über DBI, bei ADO über ADOX und bei IBX halt über IBExtract besorgen. Wenn der Zugriff auf den System-Katalog dich nicht abschreckt, dann probiere doch einmal diese Query aus:

SQL-Code:
SELECT
  REF.RDB$FIELD_SOURCE AS FldName,
  CHR.RDB$CHARACTER_SET_NAME AS ChrName
FROM RDB$FIELDS FLD, RDB$RELATION_FIELDS REF, RDB$CHARACTER_SETS CHR
WHERE FLD.RDB$FIELD_NAME = REF.RDB$FIELD_SOURCE
AND FLD.RDB$CHARACTER_SET_ID = CHR.RDB$CHARACTER_SET_ID
AND REF.RDB$RELATION_NAME = 'MYTABLE'
Grüße vom marabu

Albi 27. Mai 2005 06:11

Re: Feldinformationen aus DB auslesen
 
Vielen Dank Marabu,

genau das habe ich gesucht. Ich will ja nicht verändern, sondern erstmal nur auslesen und mir nen Update-Script generieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 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