Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: FibPlus SQL-Befels Reinfolge / abarbeitung

  Alt 28. Dez 2006, 20:40
Mit haarsträubend meine ich so etwas unübersichtliches :
Zitat von manfred_h:
Delphi-Quellcode:
Close;
    SQL.Clear;
    SQL.Add ( 'insert into SCHOOL ( ID, C_NR, U_NR, NAME, KIND, TITLE, STR, PLZ, CITY, TEL, FAX, EMAIL, HOMEPAGE, SCHOOLJ, NUMBER, WORKER, ACCEPTANCE, STATUS, NOTE, NC, CS, L_UPDATE, STAT_UPDATE, STAT_DEL, OPT )' +
              'values ( :ID, :C_NR, :U_NR, :NAME, :KIND, :TITLE, :STR, :PLZ, :CITY, :TEL, :FAX, :EMAIL, :HOMEPAGE, :SCHOOLJ, :NUMBER, :WORKER, :ACCEPTANCE, :STATUS, :NOTE, :NC, :CS, :L_UPDATE, :STAT_UPDATE, :STAT_DEL, :OPT )');
Ein falscher Buchstabe irgendwo in dem SQL-String und es kracht. Wo sind hier z.B. 2 Fehler enthalten ?
Delphi-Quellcode:
Close;
    SQL.Clear;
    SQL.Add ( 'insert into SCHOOL ( ID, C_NR, U_NR, NAME, KIND, TITLE, STR, PLZ, CITY, TEL, FAX, EMAIL, HOMEPAGE, SCHOOLJ, NUMBER, WORKER, ACEPTANCE, STATUS, NOTE, NC, CS, L_UPDATE, STAT_UPDATE, STAT_DEL, OPT )' +
              'values ( :ID, :C_NR, :U_NR, :NAME, :KIND, :TITLE, :STR, :PLZ, :CITY, :TEL, :FAX, :EMAIL, :HOMEPAGE, :SCHOOLJ, :NUMBER, :WORKER, :ACCEPTANCE, :STATUS, :NOTE, :NC, :CS, :L_UPDATE, :STAT_UPDATE, :STAT_DEL, :OT )');
Wie wäre es, das ganze so zu machen :

Code:
    DS.insert;
    DS.FindField ('ID').AsInteger := ID;
    DS.FindField ('C_NR').AsInteger := // wo der Wert herkommt ist im Prinzip egal
    DS.FindField ('U_NR').AsInteger := // wo der Wert herkommt ist im Prinzip egal
// weitere Tabellen-Felder bestücken
    DS.Post;
Delphi wird dann bei einem Schreibfehler genau in der Zeile stehen, wo ein Schreibfehler drin ist. "Unknown Tablefield" oder so. Bei dem Klartext-SQL zwar auch, aber dann wäre lediglich die Zeile gefunden und nicht der Fehler. Der ist dann aber auch in einer ellenlangen Zeile kurzfristig zu finden. Als Hellseher zumindest.

OT : wie habe ich das PRE fabriziert ?
Gruß
Hansa
  Mit Zitat antworten Zitat