Einzelnen Beitrag anzeigen

raiguen
(Gast)

n/a Beiträge
 
#10

Re: Wert von Lookupcombobox in DB schreiben

  Alt 27. Nov 2007, 11:08
Zitat von Stern:
...Ich möchte nun gerne den Primärschlüssel des ausgewählten Kunden in die entsprechende Spalte (Foreign key) des Artikels schreiben. Kann mir da jemand nen Tipp geben???
Jo -> DBLookupComboBox1.KeyValue ist das 'Geheimnis'
Damit erhälst du (in deinem Fall die ID=Primärschlüssel des Kunden) den entsprechenden Wert des KeyField vom ausgewählten Eintrag(ListField) der Box.
Noch ein Tipp: um die Hochkommaorgie oder QuotedString-Geschichte zu umgehen, bietet sich die sog. Parametrisierung an:
Delphi-Quellcode:
   //rMain.SQL.Clear; <--- nicht notwendig, wenn SQL.Text:= verwendet wird
   qrMain.SQL.Text:='INSERT INTO artikel '+
                    '(text, jahr, land, kunde) '+
                    ' VALUES (:TEXT, :JAHR, :LAND, :KUNDE)';

   qrMain.SQL.Params[0].Value := Edit1.Text;
   qrMain.SQL.Params[1].Value := Edit2.Text;
   qrMain.SQL.Params[2].Value := Edit3.Text;
   qrMain.SQL.Params[3].Value := DBLookupComboBox1.KeyValue;
{Parameter über Namen ansprechen
  qrMain.SQL.ParamByName('TEXT').Value := Edit1.Text;
  qrMain.SQL.ParamByName('JAHR').Value := Edit2.Text;   
  qrMain.SQL.ParamByName('LAND').Value := Edit3.Text;   
  qrMain.SQL.ParamByName('KUNDE').Value := DBLookupComboBox1.KeyValue;
}

   qrMain.ExecSQL;
Die Syntax bzgl der Parameter ist teilweise von der verwendeten QueryKomponente abhängig/unterschiedlich; hier mal die entsprechende Referenz/Dokumentation befragen...
andere Möglichkeit
Delphi-Quellcode:
   qrMain.SQL.Text:= Format('INSERT INTO artikel '+
                            '(text, jahr, land, kunde) '+
                            ' VALUES (%s, %s, %s, %s) ',
                            [Edit1.Text, Edit2.Text, Edit3.Text, DBLookupComboBox1.KeyValue]);
  Mit Zitat antworten Zitat