Thema: Delphi ADO: ein simples INSERT

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: ADO: ein simples INSERT

  Alt 7. Dez 2006, 12:38
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:
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;
4.) Finger weg von "try...except", wenn man das Prinzip nicht verstanden hat!
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;
Andreas
  Mit Zitat antworten Zitat