Page 1 of 1

Delphi 2006 [MyDac] usign paramer in sql statement.

Posted: Fri 09 Jun 2006 14:35
by kelinda72
Hi every body

How is best way to use parameter in statement sql?

My example doesn work i dont understand How or where have i set the parameter...

QryStorico.Prepare;
QryStorico.SQLInsert.Add('INSERT INTO storico(COD_STOR, DESC_STATO, MOTIVO_STATO) VALUES (:COD_STOR, DESC_STATO, :MOTIVO_STATO) WHERE(COD_STOR= :OLD_COD_STOR');

QryStorico.parambyname('COD_STOR').AsInteger :=1;
QryStorico.parambyname('DESC_STATO').AsString := 'wwwwwww';
QryStorico.parambyname('MOTIVO_STATO').AsString :='dddddddd';
QryStorico.execute;


thanks a lot

Posted: Sun 11 Jun 2006 22:42
by GEswin

Code: Select all

QryStorico.SQLInsert.Add('INSERT INTO storico(COD_STOR, DESC_STATO, MOTIVO_STATO) VALUES (:COD_STOR, DESC_STATO, :MOTIVO_STATO)');
The WHERE part of the INSERT isn't valid. You can't use a WHERE in an INSERT statment. The rest looks well.

Regards

Posted: Mon 12 Jun 2006 08:13
by kelinda72
I already tried without WHERE.....
i have this errore "column count doesn't match value count at row 1"
what does it mean?


dmSajob.QryStorico.Active := false;
dmSajob.QryStorico.SQL.Text := 'insert into storico (COD_STOR, DATA_ASSEGN_STOR, ASSEGN_DA_STOR) values(:COD_STOR, :DESC_STATO_STOR)' ;

dmSajob.QryStorico.Params.ParamByName('COD_STOR').Value := '1';

dmSajob.QryStorico.Params.ParamByName
('DESC_STATO_STOR').Value := 'ddddddd';
dmSajob.QryStorico.Execute;

Posted: Mon 12 Jun 2006 10:24
by Zagawa

Code: Select all

insert into storico (COD_STOR,DATA_ASSEGN_STOR,ASSEGN_DA_STOR)...

>>> 3 fields

Code: Select all

...values(:COD_STOR, :DESC_STATO_STOR)' ;
>>> 2 values

Each fields must match to a value.