problema com erro de sintaxe do insert
Galera, eu to tentando usar o comando insert para inserir uma nova linha no bd, o codigo está da seguinte forma:
with DMUzina.SDSEvento do
begin
DataSet.CommandText:=('insert into evento(codop,desc,data) values(:cod,"Login de operador",:data)');
DataSet.ParamByName('cod').AsString:=EditCod.Text;
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
Execute;
end;
o problema é que está dando erro falando que a sintaxe está errada, mas, eu usei a sintaxe que aprende em minhas aulas de bd.
se alguem souber o porque disso.
obs: o campo data esta como datetime, o campo desc como text e o campo codop como integer.
estou usando dbexpress.
brigado pela atenção.
with DMUzina.SDSEvento do
begin
DataSet.CommandText:=('insert into evento(codop,desc,data) values(:cod,"Login de operador",:data)');
DataSet.ParamByName('cod').AsString:=EditCod.Text;
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
Execute;
end;
o problema é que está dando erro falando que a sintaxe está errada, mas, eu usei a sintaxe que aprende em minhas aulas de bd.
se alguem souber o porque disso.
obs: o campo data esta como datetime, o campo desc como text e o campo codop como integer.
estou usando dbexpress.
brigado pela atenção.
Júnior
Curtidas 0
Respostas
Wilson Junior
03/12/2010
Altere esta linha de comando
Espero ter colaborado.
DataSet.CommandText := 'insert into evento(codop,desc,data) values(:cod,' + QuotedStr('Login de operador') + ',:data)';
Espero ter colaborado.
GOSTEI 0
Júnior
03/12/2010
Wilson eu fiz a modificação como você disse, mas ainda está dando o mesmo erro.
a mensagem de erro é a seguinte caso ela ajude a descobrir o que está errado:
Project Project1.exe raised exception class EDatabaseError with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'desc,data) values ('9090','Login de operador','3/12/2010 12:06>26')' at line 1'. Process stopped. Use step or run to continue.
Obrigado pela atenção.
a mensagem de erro é a seguinte caso ela ajude a descobrir o que está errado:
Project Project1.exe raised exception class EDatabaseError with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'desc,data) values ('9090','Login de operador','3/12/2010 12:06>26')' at line 1'. Process stopped. Use step or run to continue.
Obrigado pela atenção.
GOSTEI 0
Emerson Nascimento
03/12/2010
tente trocar
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
por
DataSet.ParamByName('data').AsSQLTimeStamp := DateTimeToSQLTimeStamp(now);
adicione a unit SQLTimSt à clausula uses.
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
por
DataSet.ParamByName('data').AsSQLTimeStamp := DateTimeToSQLTimeStamp(now);
adicione a unit SQLTimSt à clausula uses.
GOSTEI 0
Júnior
03/12/2010
infelizmente tambem não deu certo Emerson. =/
Você sabe outro jeito de eu estar adicionando estes dados no bd sem ser pelo insert?
Você sabe outro jeito de eu estar adicionando estes dados no bd sem ser pelo insert?
GOSTEI 0
Ricardo Araujo
03/12/2010
já tentou assim :
with DMUzina.SDSEvento do
begin
DataSet.CommandText:=('insert into evento(codop, data) values(:cod, :data)');
DataSet.ParamByName('cod').AsString:=EditCod.Text;
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
Execute;
end;
with DMUzina.SDSEvento do
begin
DataSet.CommandText:=('insert into evento(codop, data) values(:cod, :data)');
DataSet.ParamByName('cod').AsString:=EditCod.Text;
DataSet.ParamByName('data').AsString:=DateTimeToStr(now);
Execute;
end;
GOSTEI 0