AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme bei Feldnamen auslesen mit GetFieldNames()
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme bei Feldnamen auslesen mit GetFieldNames()

Ein Thema von raena · begonnen am 18. Apr 2008 · letzter Beitrag vom 21. Apr 2008
Antwort Antwort
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#1

Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 18. Apr 2008, 12:55
Datenbank: SAP DB • Version: 7.4 • Zugriff über: ODBC ADO
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);
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 18. Apr 2008, 13:07
Hallo,

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

Grüße vom marabu
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 18. Apr 2008, 13:23
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.
Andreas
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#4

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 18. Apr 2008, 14:23
vielen Dank schonmal für die Antwort ...


Montag gehts weiter ....


Schoenes Wochenende
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#5

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 21. Apr 2008, 09:49
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?
  Mit Zitat antworten Zitat
raena

Registriert seit: 30. Dez 2007
124 Beiträge
 
#6

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 21. Apr 2008, 10:06
ich öffnen einen neuen threat. Die letzte Frage hat dann nix mehr mit dem Thema zu tun.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Probleme bei Feldnamen auslesen mit GetFieldNames()

  Alt 21. Apr 2008, 10:07
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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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