Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme bei Feldnamen auslesen mit GetFieldNames() (https://www.delphipraxis.net/112309-probleme-bei-feldnamen-auslesen-mit-getfieldnames.html)

raena 18. Apr 2008 12:55

Datenbank: SAP DB • Version: 7.4 • Zugriff über: ODBC ADO

Probleme bei Feldnamen auslesen mit GetFieldNames()
 
Hallo,

ich versuche grade die Feldnamen aus einer Tabelle, die ich mit einer
List Box ausgewählt habe, zu extrahieren.
Mit ADO GetFieldNames(); geht das auch recht gut, wobei ich
vorher mit select * from ' +tbl+' where 1=0 mir einen 'leeren'
Datensatz ins DataSet schreibe. Wie gesagt, das funktiniert prinzipiell,
es gibt aber DB Konstellationen bei der es nicht geht.
Der Tabellenname heisst z.B. XYZ. Das Select statement muss aber bei
dieser IDM DB2 (ich denke es hängt nicht mit der DB zusammen, sondern mit
den Ideen unseres DB Administrator)
dann select * from pp.XYZ where 1=0' heissen. Dieser Prefix "pp"
ist mir aber nicht immer bekannt.
Gibt es eine andere Möglichkeit die Feldnamen auszulesen, ohne
dieses Select abzusetzen?




Delphi-Quellcode:
procedure TForm2.ListFieldNames(tbl:string);
begin
ADODataSetGetFieldnames.active:=false;
ADODataSetGetFieldnames.CommandText:='select * from ' +tbl+' where 1=0';
WriteToMem(ADODataSetGetFieldnames.CommandText,Mem_Info);
ADODataSetGetFieldnames.active:=true;
ADODataSetGetFieldnames.GetFieldNames(Lst_Fieldnames.Items);
SetHorizontalScrollBar(lst_Fieldnames);

marabu 18. Apr 2008 13:07

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
Hallo,

warum verwendest du nicht die entsprechenden Methoden der ADOConnection und verzichtest ganz auf eine Selektion?

Grüße vom marabu

shmia 18. Apr 2008 13:23

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
Zitat:

Zitat von raena
Gibt es eine andere Möglichkeit die Feldnamen auszulesen, ohne
dieses Select abzusetzen?

Man kann die Feldnamen auch über ADOX (ADO Extention ...) auslesen.
Um zu testen, ob das überhaupt zum Erfolg führen kann, kannst du mein Programm ADOdesk verwenden.
In diesem Programm verwende ich ADOX zum Auslesen der Feldnamen.

raena 18. Apr 2008 14:23

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
vielen Dank schonmal für die Antwort ...


Montag gehts weiter ....


Schoenes Wochenende :o

raena 21. Apr 2008 09:49

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
Hallo Marabu,

ja, du hast Recht. Vielen Dank. Mit ADOConnection getfieldnames gehts besser.
Jetzt möchte ich noch beim Doppelclick auf den Tabellenname
ein select * from ... absetzen. Hier laufe ich wieder in das selbe Prblem.

Der Tabellenname heisst z.B. XYZ. Das Select statement muss aber bei
dieser IDM DB2 (ich denke es hängt nicht mit der DB zusammen, sondern mit
den Ideen unseres DB Administrator) dann select * from pp.XY
Dieser Prefix "pp" ist mir aber nicht zwangsläufig bekannt.

Weiss jemand wie man diesen Prefix pp auslesen kann? :P

raena 21. Apr 2008 10:06

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
ich öffnen einen neuen threat. Die letzte Frage hat dann nix mehr mit dem Thema zu tun.

shmia 21. Apr 2008 10:07

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()
 
Zitat:

Zitat von raena
... aber bei dieser IDM DB2 (ich denke es hängt nicht mit der DB zusammen, sondern mit
den Ideen unseres DB Administrator) dann select * from pp.XY
Dieser Prefix "pp" ist mir aber nicht zwangsläufig bekannt.

IBM DB2 ist eine etwas seltsame Datenbank, bei dem man mehrere "Libraries" verwenden kann.
Code:
IBM Sprache  | "normale" Sprache
==============================
Library      | Datenbank
Datei        | Tabelle
logische Datei| View
Im Beispiel oben wäre "pp" die Library und "XY" die Tabelle.
Wenn es keine gleichnamigen Tabellennamen in den Datenbanken gibt, kann man die Libraries im Datenbanktreiber eintragen und dafür in den Abfragen weglassen.
Allerdings ist der (ODBC-)Treiber für DB2 sehr zickig und macht nicht immer das, was man erwartet.


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

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