Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Von ADOQuery to EditFeld (https://www.delphipraxis.net/165777-von-adoquery-editfeld.html)

t0mmy 16. Jan 2012 08:58

Datenbank: MSSQL • Version: 2008 • Zugriff über: ADO

Von ADOQuery to EditFeld
 
Hallo

Mit welchem befehl bekomme ich von einer Abfrage den Wert in ein Editfeld?

DeddyH 16. Jan 2012 08:59

AW: Von ADOQuery to EditFeld
 
Mit einer einfachen Zuweisung.
Delphi-Quellcode:
edtName.Text := Query.FieldByName('Name').AsString;

t0mmy 16. Jan 2012 10:17

AW: Von ADOQuery to EditFeld
 
Kann ich auch die Werte aus der DataSource entnehmen?

DeddyH 16. Jan 2012 10:19

AW: Von ADOQuery to EditFeld
 
Die Werte stehen im Dataset, also in diesem Fall in Deiner Query.

t0mmy 16. Jan 2012 10:30

AW: Von ADOQuery to EditFeld
 
Okay danke.

Aber eine andere Frage, Ich möchte in einer Tabelle zwei Werte gleichzeitig setzten sprich ein SQL Update durchführen

Code:
UPDATE Tabelle
SET Spalte2 = 'aWert' AND Spalte2 = 'bWert'
WHERE (Spalte1 = 'Zahl')
Fehler: Falsche Syntax in der nähe des AND-Schlüsselwortes -.-

DeddyH 16. Jan 2012 10:32

AW: Von ADOQuery to EditFeld
 
Ersetze das AND mal durch ein Komma.

haentschman 16. Jan 2012 10:49

AW: Von ADOQuery to EditFeld
 
...und benutze bitte Parameter. :zwinker:

t0mmy 16. Jan 2012 10:54

AW: Von ADOQuery to EditFeld
 
Wieder mal was gelernt..

Jetzt hab ich noch ne letzte frage:

Und zwar Ich habe eine Tabelle

Wo in der Spalte 2 Nummern drinnen stehn

Zu diesen Nummern stehen die Bezeichnungen in einer anderen Tabelle.

Jetzt möchte ich anhand einer Combobox die auswahl mit Bezeichnungen machen, aber ich kann nur in der Tabelle die ich ändern will nur die Spalte2 mit Nummern ändern keine Strings wie stell ich das am besten an.

DeddyH 16. Jan 2012 10:55

AW: Von ADOQuery to EditFeld
 
Ich habe das jetzt 4 mal gelesen, aber immer noch nicht verstanden. Brauchst Du einen Lookup oder wie? :gruebel:

Mavarik 16. Jan 2012 11:02

AW: Von ADOQuery to EditFeld
 
Fülle Deine Combobox mit den Daten aus der anderen Tabelle gemäß ID
- wenn Du es "per Hand" machen willst -

Mavarik

[Edit]Ja klingt nach Lookup[/Edit]

t0mmy 16. Jan 2012 11:07

AW: Von ADOQuery to EditFeld
 
Okay ich erklärs mal ganz einfach

Ich hab eine DBGrid in der liste ich aus Tabelle1 bestimmte zeilen auf
Diese Zeilen haben 3 spalten.

Die 2. und 3. Spalte möchte ich pro Zeile variabel machen Sprich diese mit 2 Comboboxen und einem Button wo das Update drinnen steht variabel machen (änderbar)

Die Tabelle is folgendermaßen aufgebaut.
Spalte1 = nvarchar
Spalte2 = smallint
Spalte3 = bit

Ich möchte die letzten zwei Spalten mit Comboboxn ändern können jedoch stehen in meinen Comboboxn Strings und da ist schon das Problem. da ich einmal smallint habe und bit
Jetzt bekomm ich natürlich einen Datentyp problem denn ich kann kein Wort in ein smallint reinschreiben... da dort die Nummern drinnen stehen. Diese nummern stehen mit der Bezeichnung in einer anderen Tabelle.

DeddyH 16. Jan 2012 12:17

AW: Von ADOQuery to EditFeld
 
Du könntest die Objects-Eigenschaft von TStrings (also auch TComboBox.Items) missbrauchen, um dort den Primärschlüssel der Lookup-Tabelle abzulegen. Das müsste etwa so funktionieren:
Delphi-Quellcode:
DeineComboBox.Items.BeginUpdate;
try
  DeineComboBox.Items.Clear;
  Query.SQL.Text := 'SELECT ID, Bezeichnung FROM Tabelle2 ORDER By Bezeichnung';
  Query.Open;
  while not Query.EOF do
    begin
      DeineComboBox.Items.AddObject(Query.FieldByName('Bezeichnung').AsString, TObject(Query.FieldByName('ID').AsInteger));
      Query.Next;
    end;
finally
  DeineComboBox.Items.EndUpdate;
end;
Um nun and die hinterlegte ID zu gelangen, castest Du eben wieder zurück.
Delphi-Quellcode:
ID := integer(DeineComboBox.Items.Objects[DeineComboBox.ItemIndex]);

mkinzler 16. Jan 2012 12:36

AW: Von ADOQuery to EditFeld
 
Zitat:

Zitat von DeddyH (Beitrag 1146154)
Ich habe das jetzt 4 mal gelesen, aber immer noch nicht verstanden. Brauchst Du einen Lookup oder wie? :gruebel:

Oder einen Join


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