Fórum problema com erro de sintaxe do insert #391760

03/12/2010

0

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.
Júnior

Júnior

Responder

Posts

03/12/2010

Wilson Junior

Altere esta linha de comando
DataSet.CommandText := 'insert into evento(codop,desc,data) values(:cod,' + QuotedStr('Login de operador') + ',:data)';


Espero ter colaborado.
Responder

Gostei + 0

03/12/2010

Júnior

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.
Responder

Gostei + 0

03/12/2010

Emerson Nascimento

tente trocar

DataSet.ParamByName('data').AsString:=DateTimeToStr(now);

por

DataSet.ParamByName('data').AsSQLTimeStamp := DateTimeToSQLTimeStamp(now);


adicione a unit SQLTimSt à clausula uses.

Responder

Gostei + 0

03/12/2010

Júnior

infelizmente tambem não deu certo Emerson. =/

Você sabe outro jeito de eu estar adicionando estes dados no bd sem ser pelo insert?
Responder

Gostei + 0

29/12/2010

Ricardo Araujo

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;

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar