![]() |
Re: ADO: ein simples INSERT
Um es ganz deutlich zu sagen:
1.) Stringliterale werden unter SQL/92 in einfache Hochkommas (nicht doppelte Anführungszeichen) gesetzt. 2.) Man sollte keinesfalls die Hochkommas selbst hinschreiben, sondern immer die Funktion QuotedStr oder noch besser Parameter benützen Angenommen die Variable wert1 aus dem Beispiel enthielte den Text Wayne's World; die Folge wäre bei Nichtbeachtung dieser Regel eine Syntaxfehler 3.) Niemals in einer Klasse (z.B. von TForm abgeleitet) auf die Instananzvariable zugreifen!!!
Delphi-Quellcode:
4.) Finger weg von "try...except", wenn man das Prinzip nicht verstanden hat!
procedure TFmain.Button1Click(Sender: TObject);
begin // ganz böser Fehler: es wird die Variable FMain angesprochen Fmain.ado_query.Active:= FALSE; // richtig: ado_query.Active:= FALSE;
Delphi-Quellcode:
try
ado_query.ExecSQL; except // Ganz schlecht: es wird nur eine Meldung mit dem völlig aussagelosen Text "Duplikat?" ausgegeben // der Fehler könnte aber völlig andere Ursachen haben // der Programmfaden wird fortgefüht, obwohl ein Fehler vorliegt Messagebox(handle,'Duplikat?','',0); end;
Delphi-Quellcode:
try
ado_query.ExecSQL; except // Richtig: vernünftige Fehlermeldung on E:Exception do begin E.Message := 'Fehler bein Einfügen in Tabelle <test>'#13#10+ '(evtl. Duplikat)'#13#10+ E.Message; // orginale Fehlermeldung anhängen raise; // Exception erneut auslösen end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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