![]() |
speicherung in der datenbank funktioniert immer noch nicht..
Wer kann mir helfen und mir sagen warum das programm die anweisung nicht in die datenbank schreibt...
er soll aus einem textfeld mit dem namen tb_versuch_id eine nummer in das entsprechende feld der tabelle in der datenbank schreiben.... das feld in der tabelle heißt versuchs_id hier ist der auszug aus meinem quellcode
Delphi-Quellcode:
bin langsam aber sicher am verzweifeln... :wall:
procedure Tversuch.CB_TakeClick(Sender: TObject);
var versflid :string; begin versflid:=adoquery1.fieldbyname('versuchs_id').AsString; begin if adoquery1.Locate('versuchs_id',tb_versuch_id.Text,[]) then begin with adoquery1 do begin sql.Clear; close; sql.Add('SELECT dbo_Versuchsflaechen_ST.Versuchsfl_ID,'); sql.Add('dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung, dbo_Versuchsflaechen_ST.Versuchs_ID,'); sql.Add('FROM dbo_Versuchsflaechen_ST'); sql.add('WHERE dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung ='+quotedstr(versflid)); open; end; while not adoquery1.Eof do begin adoquery1.Edit; adoquery1.FieldByName('versuchs_id').asstring; adoquery1.Post; adoquery1.Next; end; end; end; end; end. |
Re: benötige hilfe...
Hallo ;-)
Bitte ändere den Titel Deines Beitrages, da sich unter "Benötige Hilfe" keiner etwas Rechtes vorstellen kann. |
Re: benötige hilfe...
Hallo,
falls Dein Query eine lebende (=editierbare) Datenmenge zurückliefert, würde ich darauf Tippen, dass die Zuweisung fehlt.
Code:
adoquery1.Edit;
adoquery1.FieldByName('versuchs_id').asstring[color=red] := 'Ich bin ein neuer Text für dieses Feld'[/color]; adoquery1.Post; adoquery1.Next; |
Re: speicherung in der datenbank funktioniert nicht...
er soll diesen wert den ich in die box schreibe in das entsprechende feld in der datenbank schreiben...
z.b. die spalte in der tabelle heißt versuch_id...in ihr sind nur nummern gespeichert... wenn ich diese nummer nun ändern will und sie mit hilfe dieser textbox eintragen will sieht es erstmal so aus als wenn alles geklappt hat. nur wenn ich dann nachsehe dann hat sich nichts geändert !!! |
Re: speicherung in der datenbank funktioniert nicht...
Ich sehe keine einzige Zuweisung in deinem Code...
Die hätte dann wohl...
Delphi-Quellcode:
p.s.: Dieses "Edit","Post",... -Zeugs macht in meinen Augen nur Sinn um auf Usereingaben zu reagieren.
While Not adoquery1.Eof Do
Begin adoquery1.Edit; // ... hier stehen sollen adoquery1.FieldByName('versuchs_id').asString {=>>} := IrgendWas {<<=}; adoquery1.Post; adoquery1.Next; End; Wenn du nur Code hast, sollte dort nicht Zeilenweise durch ein DataSet gesprungen werden. Ein simples ...
Delphi-Quellcode:
... reicht doch vollkommen aus.
With Query Do
Begin Active := False; SQL.Text := 'UPDATE dbo_Versuchsflaechen_ST t' + #10 + ' SET t.Versuchs_ID = :i_NewID' + #10 + 'WHERE t.Versuchsfl_Bezeichnung = :i_VersFlID'; prepared := True; Parameters.ParamByName('i_NewID').Value := IrgendWas; Parameters.ParamByName('i_VersFlID').Value := VersFlID; ExecSQL; End; Und wenn du jetzt noch ein Commit auf deine Session/Connection anwendest sind die Änderungen auch in der DB. |
Re: speicherung in der datenbank funktioniert nicht...
Also um ehrlich zu sein, das Programm soll ja auch auf Usereingaben reagieren...
Es soll erst alle Eingaben abwarten und dann mit einem klick auf den Button cb_take alles in die Datenbank schreiben... |
Re: speicherung in der datenbank funktioniert nicht...
Edit,Post,... sind von Vorteil bei Verwendung eines DBNavigators oder einem Grid.
Bei dir soll doch einmalig, durch Knopfdruck, eine Aktualisierung durchgeführt werden. Wenn ein SQL-Statement den Job erledigen kann, ist es immer DBKompo-Basteleien vorzuziehen. Jeder deiner Post-Aufrufe ist ein UPDATE! |
Re: speicherung in der datenbank funktioniert nicht...
Achso...
da soll mal einer sagen ich kann nichts mehr lernen !! :-) |
Re: speicherung in der datenbank funktioniert nicht...
Also irgendwie kann ich machen was ich will...diese verdammt speicherung in der datenbank klappt einfach nicht...
ich kann auf den button klicken und nichts tut sich... jetzt habe ich schon den quellcode aus einen anderen programm von mir genommen wo er funktioniert hat und das resultat war gleich null :wall: ich weiß nicht mehr was ich machen soll...
Delphi-Quellcode:
es hat leider auch nicht mit euren vorschlägen weiter oben in der anfrage geklappt...
var versflid :string;
begin versflid:=adoquery1.fieldbyname('versuchs_id').AsString; if (tb_versuch_id.Text ='') then showmessage ('Bitte was eintragen.'); if adoquery1.Locate('Versuchs_ID',tb_versuch_id.Text,[])then adoquery1.FieldByName('Versuchs_ID').AsInteger; with adoquery1 do begin close; sql.Clear; sql.Add('SELECT dbo_Versuchsflaechen_ST.Versuchs_ID,'); sql.Add('dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung, dbo_Versuchsflaechen_ST.Versuchs_ID'); sql.Add('FROM dbo_Versuchsflaechen_ST'); sql.Add('WHERE dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung ='+ quotedstr(versflid)); open; end; while not adoquery1.Eof do begin adoquery1.Edit; adoquery1.FieldByName('Versuchs_ID').Asstring:=tb_versuch_id.Text; adoquery1.Post; tb_versuch_id.Clear; adoquery1.Next; end; end; ich bin echt am verzweifeln... |
Re: speicherung in der datenbank funktioniert immer noch nic
Versuche es doch mal mit mit einem UPDATE-Statement (ungetestet!):
Delphi-Quellcode:
var versflid :string;
begin versflid:=adoquery1.fieldbyname('versuchs_id').AsString; if (tb_versuch_id.Text ='') then showmessage ('Bitte was eintragen.'); with adoquery1 do begin close; sql.Clear; sql.Add('UPDATE dbo_Versuchsflaechen_ST'); sql.Add('SET Versuchs_ID=' + QuotedStr (tb_versuch_id.Text)); sql.Add('WHERE Versuchsfl_Bezeichnung =' + quotedstr(versflid)); ExecSQL; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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