Ir para conteúdo
Fórum Script Brasil
  • 0

Insert No Interbase


Guest --Guilherme --

Pergunta

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.

Editado por Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...