Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank Feld als Variable deklarieren (https://www.delphipraxis.net/125633-datenbank-feld-als-variable-deklarieren.html)

thiagojonas 9. Dez 2008 11:25

Datenbank: Access • Version: 2000 • Zugriff über: ADO

Datenbank Feld als Variable deklarieren
 
Hallo Leute,
ich habe ein problem, mit einer Datenbankabfrage.

Also hier meine Abfrage:

Delphi-Quellcode:
ADOQuery2.SQL.Text := 'select `fach` from `lehrer` where `lehrer` = '''+Combobox1.Text+''';';
Wie kann ich den jetzt `fach` einer variablen zuweisen? Z.B. um den Wert über ShowMessage anzuzeigen?
Danke schonmal :-D

phil_ro 9. Dez 2008 12:06

Re: Datenbank Feld als Variable deklarieren
 
Delphi-Quellcode:
ADOQuery2.Open;
sVariable := ADOQuery2.FieldByName('fach').AsString
Alternativ auch

Delphi-Quellcode:
ADOQuery2.Open;
sVariable := ADOQuery1.Fields[0].AsString

thiagojonas 10. Dez 2008 11:20

Re: Datenbank Feld als Variable deklarieren
 
Hmm... Irgendwie klappt das nicht ganz. (es werden willkürlich die werte ausgewählt) :gruebel:

Oder mache ich was falsch?

Delphi-Quellcode:
  ...if dauer_cb.ItemIndex = 0 then
begin
 ADOQuery2.Open;
 fach := ADOQuery2.FieldByName('fach').AsString ;
 ADOQuery2.SQL.Text := 'select `fach` from `lehrer` where `lehrer` = '''+Combobox1.Text+''';';
 listbox1.AddItem(inttostr(i) + '. ' + time + ' ' + Combobox1.Text + ' ' + fach + ', ' + dauer_cb.Text + ' ' + ' Stunde',listbox1);
  i:= i+1;
  end
else...

Bbommel 10. Dez 2008 11:34

Re: Datenbank Feld als Variable deklarieren
 
Du solltest mal über die Reihenfolge deiner Befehle nachdenken: :)

Du öffnest die SQL-Abfrage (= führst sie aus), bevor du überhaupt den SQL-Befehl festgelegt hast. Und der Variable "fach" weist du einen Wert zu, den sie ebenfalls erst haben kann, nachdem du die SQL-Abfrage ausgeführt hast.

Um ggf. ein Missverständnis zu vermeiden: Die Variable "fach" ist kein Zeiger oder sowas auf dein Ergebnis aus der Datenbank, sondern es wird der Wert aus der Datenbank dahin kopiert.

Bis denn
Bommel

thiagojonas 10. Dez 2008 11:59

Re: Datenbank Feld als Variable deklarieren
 
Dank kumpel :-D :thumb: :thumb:

so ist es richtig:

Delphi-Quellcode:
...if dauer_cb.ItemIndex = 0 then
begin
ADOQuery2.SQL.Text := 'select `fach` from `lehrer` where `lehrer` = '''+Combobox1.Text+''';';
ADOQuery2.Open;
fach := ADOQuery2.FieldByName('fach').AsString ;
listbox1.AddItem(inttostr(i) + '. ' + time + ' ' + Combobox1.Text + ' ' + fach + ', ' + dauer_cb.Text + ' ' + ' Stunde',listbox1);
  i:= i+1;
  end
else...


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