Entwickler-Ecke

Datenbanken - sql syntax


day - Di 30.09.03 10:36
Titel: sql syntax
hallo

ich möchte werte in meiner datenbank mittels parameter ändern. wie kann ich das in meinen select befehl einbauen.


Quelltext
1:
2:
           Select  WS :=WS
           DATUM := DATUM


From INFO

der update befehl sieht dan folgendermassen aus


Quelltext
1:
update INFO set WS=:WS where DATUM := DATUM                    


Moderiert von user profile iconKlabautermann: Code-Tags hinzugefügt.


UGrohne - Di 30.09.03 11:06

Öhm, ich frag mich gerade, was die ganzen komisch gesetzten Doppelpunkte da sollen. Gib mal etwas mehr Code und überhaupt: Was ist das Problem? So funktioniert das auf jeden Fall nicht.


Klabautermann - Di 30.09.03 11:14

Hallo,

machn wir es mal am Beispiel des Update Schnipzels:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
MyQuery.Close;
MyQuery.SQL.Clear;
MyQuery.SQL.ADD('update INFO set WS=:WS where DATUM=:DATUM');
MyQuery.ParamByName('WS').AsString := 'Was weiß ich';
MyQuery.ParamByName('Datum').AsDateTime := now;
MyQuery.Execute;

vom Prinzieb müsste das so laufen.

Gruß
Klabautermann


ShadowThief - Di 30.09.03 11:17

ich versteh das jetzt auch nicht so ganz,
aber ich versuch mal dir ein bisschen beispielcode zu geben:

per BDE:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  qry: TQuery;

begin

  qry := TQuery.Create(nil)
  qry.DatabaseName := YourBDEDatabase.DatabaseName;

  qry.SQL.Text := 'UPDATE info SET ws = :WS WHERE datum = :DATUM ';
  qry.ParamByName('WS').AsInteger := 4;  // .AsInteger ist eine Vermutung;
  qry.ParamByName('DATUM').AsDate := Now;
  qry.ExecSQL;

  qry.Free;



per ADO:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  qry: TADOQuery;

begin

  qry := TADOQuery.Create(nil)
  qry.Connection := YourADOConnection;

  qry.SQL.Text := 'UPDATE info SET ws = :WS WHERE datum = :DATUM ';
  qry.Parameters.ParamByName('WS').DataType := ftInteger;
  qry.Parameters.ParamByName('WS').Value := 4;
  qry.Parameters.ParamByName('WS').DataType := ftDate;
  qry.Parameters.ParamByName('WS').Value := Now;
  qry.ExecSQL;

  qry.Free;


shadow.


day - Di 30.09.03 11:38

danke für eure hilfe
es hat geklappt


day - Di 30.09.03 11:46

noch ne andere frage
was versteht man unter fetchtype?
bekomme irgend so eine fehlermeldung
(fetchttype liegt ausserhalb des bereichs ODBC State=S1106