Jump to content
Fórum Script Brasil
  • 0

Insert No Interbase


Guest --Guilherme --
 Share

Question

Guest --Guilherme --

EXCEÇÃO

EIBInterBaseError with message 'Dynamic SQL Error SQL error cod = -104 Token unknown -line 4, char -1 '3000''.

Executo o código assim:

...
  DM.IBTransaction1.CommitRetaining;
  with DM.qryManutencao do
  begin
    Close;
    SQL.Clear;
    SQL.Add('insert into LIVROS');
    SQL.Add(' (LIVCODIGO, LIVTITULO, LIVEDITORA, LIVAUTOR, LIVEDICAO, LIVDTCADASTRO, LIVFORNEC, LIVTELFORNEC, LIVDISPONIVEL, LIVATUALIZA)');
    SQL.Add(' values ');
    SQL.Add(QuotedStr(vgsLivCodigo) + ',' + QuotedStr(vgsLivTitulo) + ', ' + QuotedStr(vgsLivEditora) + ', '  + QuotedStr(vgsLivAutor) + ', ' + QuotedStr(vgsLivEdicao) + ', '  + QuotedStr(vgsLivDtCadastro) + ', ' + QuotedStr(vgsLivEditora) + ', '  + QuotedStr(vgsLivFornec) + ', ' + QuotedStr(vgsLivTelFornec) + ', '  + QuotedStr(vgsLivDtCadastro) + ', ' + QuotedStr(vgsDataHora) + ' ');
    SQL.Add('COMMIT WORK');
    ExecSQL;
  end;

O que estaria errado ?

Agradeço a ajuda.

Edited by Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
EXCEÇÃO

EIBInterBaseError with message 'Dynamic SQL Error SQL error cod = -104 Token unknown -line 4, char -1 '3000''.

Executo o código assim:

...
  DM.IBTransaction1.CommitRetaining;
  with DM.qryManutencao do
  begin
    Close;
    SQL.Clear;
    SQL.Add('insert into LIVROS');
    SQL.Add(' (LIVCODIGO, LIVTITULO, LIVEDITORA, LIVAUTOR, LIVEDICAO, LIVDTCADASTRO, LIVFORNEC, LIVTELFORNEC, LIVDISPONIVEL, LIVATUALIZA)');
    SQL.Add(' values ');
    SQL.Add(QuotedStr(vgsLivCodigo) + ',' + QuotedStr(vgsLivTitulo) + ', ' + QuotedStr(vgsLivEditora) + ', '  + QuotedStr(vgsLivAutor) + ', ' + QuotedStr(vgsLivEdicao) + ', '  + QuotedStr(vgsLivDtCadastro) + ', ' + QuotedStr(vgsLivEditora) + ', '  + QuotedStr(vgsLivFornec) + ', ' + QuotedStr(vgsLivTelFornec) + ', '  + QuotedStr(vgsLivDtCadastro) + ', ' + QuotedStr(vgsDataHora) + ' ');
    SQL.Add('COMMIT WORK');
    ExecSQL;
  end;

O que estaria errado ?

Guilherme, o que pode estar errado é este "COMMIT WORK". A "comitação" é feita através da sua transação (componente IBTransaction).

Observe, inclusive, que você já está fazendo isto antes de passar o novo insert, quando utiliza a linha:

DM.IBTransaction1.CommitRetaining;

Esta transação, muito provavelmente, deve estar associada ao seu componente "qryManutencao" (propriedade Transaction), e é justamente este comando que você deverá executar, caso sua inserção não falhe.

Mas também, parece-me estar faltando os parênteses da cláusula VALUES -> values ( valor_1, valor_2, ..., valor_n)

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...