zapytanie w paradoxie z datą

0

proszę pomóżcie mi bo już nie mam siły kręcić przy tym
Piszę pierwszy raz programik oparty na paradoxie 7
mam taki problemik

zwykły insert SQL:

DMMain.QueryRoboczy.SQL.Text:='Insert into Uslugi(idklient,data) values('+DMMain.CDSUslKlienci.FieldByName('id').AsString+','+
QuotedStr(FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date))+')';
    DMMain.QueryRoboczy.ExecSQL;

kurde co tu jest źle? - podejrzewam że cos z formatowaniem daty - ale powiedzcie mi co bo ja nie mam zielonego pojęcia, moze czegos nie widzę w zapytaniu co jest źle
w kółko "Type mismatch in expression"

0

parametry

0

Witaj.
Przekazuj do query wartości poprzez parametry np tak:

query.close;
query.sql.clear;
query.sal.add('insert into uslugi (idklient,data)values(:IDKLIENT,:DATA)');
query.unprepare;
query.parambyname('IDKLIENT').asinteger:=Twoja_zmienna_integer;
query.parambyname('DATA').asdate:=DateTimePicker1.Date;
query.prepare;
query.execsql;

Idklienta napisalem jako integer bo wydaje się że id jest rozsądnie dawać int a nie string..
pozdrawiam

0

no cóz - właśnie z parametrem też nie idzie
tak to wygląda:

DMMain.QueryRoboczy.Close;
    DMMain.QueryRoboczy.SQL.Clear;
    DMMain.QueryRoboczy.SQL.Add('Insert into uslugi(idklienta,data) values(:idklienta,:data)');
    DMMain.QueryRoboczy.UnPrepare;
    DMMain.QueryRoboczy.ParamByName('idklienta').asinteger:= DMMain.CDSUslKlienci.FieldByName('id').AsInteger;
    DMMain.QueryRoboczy.ParamByName('data').AsDate:=DateTimePicker1.Date;
    DMMain.QueryRoboczy.Prepare;
    DMMain.QueryRoboczy.ExecSQL;

i ciągle "Type mismatch in expression"
help !

0

Myślę, że powinieneś zrobiś to sobie z użyciem np.
... CAST(R.Date1 As Date)>=:OdDnia ...
Query1.ParamByName('OdDnia').AsDate:=StrToDate(FormatDateTime('yyyy-mm-dd',DateTimePickerOdDnia.Date));

1 użytkowników online, w tym zalogowanych: 0, gości: 1