![]() |
Datenbank: MsSQL • Version: 2005 • Zugriff über: ADO
Einträge aus Datenbank an Variable übergeben
Hallo!
Ich habe folgendes Problem und zwar trage ich Werte von 4 Editfeldern mittels Button der folgenden Code enthält:
Delphi-Quellcode:
Jetzt habe ich einen Lesen Button und er soll dann nach dem was in edit_anumber.Text drinnen steht filtern und mir dann edit_setpfad.Text befüllen.
ADOConnection1.ConnectionString:=
xxxx ADOConnection1.Open; Try //ADOQuery1.Active := True; ADOQuery1.SQL.Text := 'INSERT INTO IDAUFTRAG (Pfad, Auftragsnummer) VALUES ('#39''+edit_setpfad.Text+''#39','#39''+edit_anumber.Text+''#39')'; ADOQuery1.Open; except on E : Exception do begin MessageDlg('Eingetragen!', mtInformation, [mbOK], 0); end; end; ADOQuery1.Close; ADOConnection1.Close; edit_setpfad.Text := ''; edit_anumber.Text := ''; |
AW: Einträge aus Datenbank an Variable übergeben
Zunächst einmal solltest Du Deine Statements parametrisieren und beim Eintragen/Ändern von Daten ExecSQL statt Open verwenden. Und was ist das Problem? Eine weitere Query mit einer entsprechend parametrisierten SQL-Abfrage, Parameter setzen, öffnen (diesmal mit Open *g*), auslesen und ermittelten Wert dem Edit.Text zuweisen.
|
AW: Einträge aus Datenbank an Variable übergeben
Das parametrisieren ist wichtig, sonst ist eine Anwendung anfällig für SQL-Injections!
Sicherheitslücke! |
AW: Einträge aus Datenbank an Variable übergeben
Das Problem is, das ich nicht weiss was ich ADOQuery1.SQL.Text übergeben muss damit ich das filtern kann was ich suche.. und dann die übergabe mache.
Sry.. ich bin ein Anfänger in diese Gebiet.. was meint ihr mit parametrisieren.. mfg |
AW: Einträge aus Datenbank an Variable übergeben
so kannst du deine Query parametrisieren...
Code:
und so bekommst du deine Daten wieder raus:
ADOQuery1.SQL.Text := 'INSERT INTO IDAUFTRAG (Pfad, Auftragsnummer) VALUES (:pfad, :nummer)';
ADOQuery1.ParamByName('pfad').AsString := deinpfad ADOQuery1.ParamByName('nummer').AsInteger := 1 ADOQuery1.Execute // oder .ExecSQL;
Code:
ADOQuery1.SQL.Text := 'select * from IDAUFTRAG where PFAD = :PFAD'; // oder Suche mit PFAD like :PFAD
ADOquery1.ParamByName('PFAD').AsString := DeinSuchPfad; ADOQuery1.Open; if ADOQuery1.Eof then begin // nichts gefunden end else begin // wir haben's end; |
AW: Einträge aus Datenbank an Variable übergeben
Bei den ADO-Komponenten sieht das Befüllen der Parameter geringfügig anderst aus:
Delphi-Quellcode:
Im Gegensatz zu TQuery besitzt TAdoQuery ein eingebettetes Unterobjekt namens "Parameters".
ADOQuery1.SQL.Text := 'select * from IDAUFTRAG where PFAD = :PFAD'; // oder Suche mit PFAD like :PFAD
ADOquery1.Parameters.ParamValues['PFAD'] := DeinSuchPfad; ADOQuery1.Open; Das Prinzip der Parameter bleibt aber gleich. |
AW: Einträge aus Datenbank an Variable übergeben
Versteh ich nicht...
Delphi-Quellcode:
Es wird nichts übergeben --> Fehler bei Open
ADOQuery1.SQL.Text := 'select Pfad from AFSSAuftraege where Würthnummer like = '+edit_wnumber.Text+')';
ADOQuery1.Open; DeinSuchPfad := ADOQuery1.ParamByName('#39'+edit_wnumber.Text+'#39').AsString; Was ich will is das beider Spalte Pfad von der Tabelle AFSSAuftraege die Würthnummer die in der selben Zeile steht als string in ein Edit feld schreiben |
AW: Einträge aus Datenbank an Variable übergeben
Entweder like oder =, aber nicht beides gleichzeitig.
Delphi-Quellcode:
ADOQuery1.SQL.Text := 'select Pfad from AFSSAuftraege where Würthnummer like :param)';
ADOQuery1.Parameters.ParamByName('param').Value := edit_wnumber.Text; ADOQuery1.Open; if not ADOQuery1.EOF then DeinSuchPfad := ADOQuery1.FieldByName('Pfad').AsString; |
AW: Einträge aus Datenbank an Variable übergeben
Okay habs jetzt mittlerweile verstanden, aber wenn ich jetzt meine Einträge parametrisiere bekomme ich beim ausführen meines Programmes einen Error bei folgender Programmzeile:
Delphi-Quellcode:
Error:
ADOQuery1.ParamByName('pfad').AsString := edit_setpfad.Text;
Undeclearded identifier: 'ParamByName' Missing operator or semicolon Auch wenn ich schreibe:
Delphi-Quellcode:
kommt dann wieder ein Error: Undeclearded identifier: 'AsString'
ADOQuery1.Parameters.ParamByName('pfad').AsString := edit_setpfad.Text;
|
AW: Einträge aus Datenbank an Variable übergeben
So wie in #8 von DeddyH schon gezeigt:
Parameter:
Delphi-Quellcode:
ADOQuery1.Parameters.ParamByName('pfad').Value:=edit_setpfad.Text;
Inhalt:
Delphi-Quellcode:
edit_setpfad.Text:=ADOQuery1.FieldByName('pfad').AsString;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 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 by Thomas Breitkreuz