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

[resolvido] Não Consiguo Achar Esse Erro...!


Guest robinhotbo

Pergunta

Guest robinhotbo
Project sistemacfc.exe raised exception class EIBInterBaseError with messade 'Dynamic SQL Error

SQL error code = -104

Token unknow - line 1, char 442

,'. Process stopped. Use Step or Run to continue.

Alguém pode me ajudar, não consiguo descubrir onde esta este erro.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Opa

Você tem alguma instrução SQL onde há algum tipo de erro de sintaxe...

Segundo a mensagem o erro está na linha 1 dessa instrução...

Após dar OK no erro o Delphi normalmente aponta onde deu o erro, da

uma olhada nas suas instruções SQL...

Provavelmente é isto...

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --
Project sistemacfc.exe raised exception class EIBInterBaseError with messade 'Dynamic SQL Error

SQL error code = -104

Token unknow - line 1, char 442

,'. Process stopped. Use Step or Run to continue.

Alguém pode me ajudar, não consiguo descubrir onde esta este erro.

Veja se no comando da SQL , no final da linha 1 não tem uma virgula, se tiver tire-a e deixe um espaço em branco

esse erro siginifica que existe um caracter desconhecido no final da linha.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest robinhotbo

Mais uma vez obrigado pela dica, mas ainda não consiguo achar esse erro.

olhe o arquivo todo.> Se alguém achar me fala, por favor:

:unsure:

unit falunos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, fpadrao, StdCtrls, psvBasiclbl, psvBorderLabel, Buttons,
  ExtCtrls, Mask, ComCtrls, TabNotBk, Grids, DBGrids, WinSkinData,
  psvLinkedLabel;

type
  Tfrmalunos = class(Tfrmpadrao)
    Panel3: TPanel;
    txtdtca: TEdit;
    PageControl2: TPageControl;
    TabSheet3: TTabSheet;
    psvBorderLabel13: TpsvBorderLabel;
    psvBorderLabel30: TpsvBorderLabel;
    psvBorderLabel31: TpsvBorderLabel;
    psvBorderLabel29: TpsvBorderLabel;
    psvBorderLabel28: TpsvBorderLabel;
    psvBorderLabel12: TpsvBorderLabel;
    psvBorderLabel11: TpsvBorderLabel;
    psvBorderLabel27: TpsvBorderLabel;
    psvBorderLabel26: TpsvBorderLabel;
    psvBorderLabel10: TpsvBorderLabel;
    psvBorderLabel9: TpsvBorderLabel;
    psvBorderLabel8: TpsvBorderLabel;
    psvBorderLabel7: TpsvBorderLabel;
    psvBorderLabel24: TpsvBorderLabel;
    psvBorderLabel25: TpsvBorderLabel;
    psvBorderLabel23: TpsvBorderLabel;
    psvBorderLabel22: TpsvBorderLabel;
    psvBorderLabel6: TpsvBorderLabel;
    psvBorderLabel5: TpsvBorderLabel;
    psvBorderLabel20: TpsvBorderLabel;
    psvBorderLabel21: TpsvBorderLabel;
    psvBorderLabel4: TpsvBorderLabel;
    cbocid: TComboBox;
    txtuf: TEdit;
    txtcep: TMaskEdit;
    txtcom: TEdit;
    txtbai: TEdit;
    txtnum: TEdit;
    txtend: TEdit;
    txtcon: TEdit;
    txtcel: TMaskEdit;
    txtres: TMaskEdit;
    txtmae: TEdit;
    txtpai: TEdit;
    txtnat: TEdit;
    txtuf1: TEdit;
    txtcat: TEdit;
    txtcnh: TEdit;
    txtcpf: TMaskEdit;
    txtrg: TEdit;
    txtuf2: TEdit;
    cboorg: TComboBox;
    txtnom: TEdit;
    TabSheet4: TTabSheet;
    psvBorderLabel42: TpsvBorderLabel;
    psvBorderLabel48: TpsvBorderLabel;
    psvBorderLabel45: TpsvBorderLabel;
    psvBorderLabel46: TpsvBorderLabel;
    psvBorderLabel44: TpsvBorderLabel;
    psvBorderLabel41: TpsvBorderLabel;
    psvBorderLabel40: TpsvBorderLabel;
    psvBorderLabel39: TpsvBorderLabel;
    psvBorderLabel38: TpsvBorderLabel;
    psvBorderLabel43: TpsvBorderLabel;
    psvBorderLabel47: TpsvBorderLabel;
    txttele: TMaskEdit;
    txtramal: TEdit;
    txtcep1: TMaskEdit;
    txtuf3: TEdit;
    txtbairro: TEdit;
    txtnume: TEdit;
    txtpro: TEdit;
    txtende: TEdit;
    txtemp: TEdit;
    txtcompl: TEdit;
    cbocida: TComboBox;
    TabSheet5: TTabSheet;
    TabSheet6: TTabSheet;
    DBGrid1: TDBGrid;
    TabSheet7: TTabSheet;
    DBGrid2: TDBGrid;
    TabSheet8: TTabSheet;
    memobs: TMemo;
    TabSheet9: TTabSheet;
    DBGrid5: TDBGrid;
    TabSheet10: TTabSheet;
    DBGrid4: TDBGrid;
    psvBorderLabel1: TpsvBorderLabel;
    psvBorderLabel2: TpsvBorderLabel;
    psvBorderLabel3: TpsvBorderLabel;
    txtcth: TEdit;
    rdbhab: TRadioButton;
    txtmat: TEdit;
    rdbalt: TRadioButton;
    psvBorderLabel19: TpsvBorderLabel;
    txtdat: TEdit;
    txtctr: TEdit;
    rdbren: TRadioButton;
    txtcta: TEdit;
    psvLinkedLabel1: TpsvLinkedLabel;
    psvLinkedLabel2: TpsvLinkedLabel;
    psvBorderLabel14: TpsvBorderLabel;
    psvBorderLabel15: TpsvBorderLabel;
    psvBorderLabel16: TpsvBorderLabel;
    psvBorderLabel17: TpsvBorderLabel;
    psvBorderLabel18: TpsvBorderLabel;
    txtcodi: TEdit;
    spdloc: TSpeedButton;
    txtproc: TEdit;
    SpeedButton1: TSpeedButton;
    BitBtn1: TBitBtn;
    txtusu: TEdit;
    psvBorderLabel32: TpsvBorderLabel;
    txtemi: TMaskEdit;
    txtla: TEdit;
    txtabe: TMaskEdit;
    txtvenc: TMaskEdit;
    txtnas: TMaskEdit;
    procedure spbnovClick(Sender: TObject);
    procedure spbsalClick(Sender: TObject);
    procedure spbexcClick(Sender: TObject);
    procedure spbpesClick(Sender: TObject);
    procedure leregistro();
    procedure cbocidExit(Sender: TObject);
    Procedure FormShow(Sender: TObject);
    procedure cbocidaChange(Sender: TObject);
    procedure spdlocClick(Sender: TObject);
    procedure txtnasExit(Sender: TObject);
    procedure txtabeExit(Sender: TObject);
    procedure txtvencExit(Sender: TObject);
    procedure txtemiExit(Sender: TObject);



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmalunos: Tfrmalunos;

implementation

{$R *.dfm}

uses funcoes, fprincipal, fdtmiza, fpesquisa;



procedure Tfrmalunos.spbnovClick(Sender: TObject);
begin
  inherited;
  Txtmat.Text := ProximoCodigo ('alunos', 'Codigo');
  TxtDat.Text := FormatDateTime ('dd/mm/yyyy', Date ());
  TxtCPF.Text := '0';
  TxtCEP.Text := '0';
  TxtRes.Text := '0';
  TxtCel.Text := '0';
  rdbhab.SetFocus;
end;


procedure Tfrmalunos.spbsalClick(Sender: TObject);
begin
   with vcpo do
      begin
         clear;
         add ('dtcadastro');
         add ('servicos');
         add ('categoria');
         add ('nome');
         add ('rg');
         add ('uf_rg');
         add ('emissor');
         add ('cpf');
         add ('dtnascimento');
         add ('naturalidade');
         add ('mae');
         add ('pai');
         add ('residencial');
         add ('celular');
         add ('contato');
         add ('cidade');
         add ('uf_cid');
         add ('cep');
         add ('endereco');
         add ('numero');
         add ('bairro');
         add ('complemento');
         add ('profissao');
         add ('empresa');
         add ('cidadess');
         add ('uf_pro');
         add ('ceps');
         add ('enderecos');
         add ('numeros');
         add ('bairros');
         add ('complementos');
         add ('telefone');
         add ('ramal');
         add ('atendente');
         add ('processos');
         if edata (txtabe.Text)then
         add ('dt_abe');
         add ('lic_aprendizagem');
         add ('observacoes');
         if edata (txtvenc.Text)then
         add ('dt_venc');
         if edata (txtemi.Text)then
         add ('dt_emi');


      end;
   with vvlr do
      begin
     clear;
         Add ('Current_Date');
         if (rdbhab.checked) then
         add ('1')
         else if (rdbalt.checked) then
         add('2')
         else if (rdbren.checked) then
         add('3');
         add (#39 + txtnom.Text + #39);
         add (#39 + txtrg.Text + #39);
         add (#39 + txtuf2.Text + #39);
         add (#39 + cboorg.Text + #39);
         Add (TiraMascara (TxtCPF.Text));
         add (tiramascara (txtcnh.Text));
         add (#39 +  txtcat.Text + #39);
         Add (#39 + FormatDateTime ('mm/dd/yyyy', StrToDate (txtnas.Text)) + #39);
         add (#39 + txtnat.Text + #39);
         add (#39 + txtuf1.Text + #39);
         add (#39 + txtpai.Text + #39);
         add (#39 + txtmae.Text + #39);
         add (tiramascara (txtres.Text));
         add (tiramascara (txtcel.Text));
         add (#39 + txtcon.Text + #39);
         Add (#39 + Copy( cboCid.Text, 1, 4 ) + #39);
         add (#39 + txtuf.Text + #39);
         Add (TiraMascara (Txtcep.Text));
         add (#39 + txtend.Text + #39);
         add (#39 + txtnum.Text + #39);
         add (#39 + txtbai.Text + #39);
         add (#39 + txtcom.Text + #39);
         add (#39 + txtpro.Text + #39);
         add (#39 + txtemp.Text + #39);
         Add (#39 + Copy( cboCida.Text, 1, 4 ) + #39);
         add (#39 + txtuf3.Text + #39);
         add (#39 + txtende.Text + #39);
         add (#39 + txtnume.Text + #39);
         add (#39 + txtbairro.Text + #39);
         add (#39 + txtcompl.Text + #39);
         Add (TiraMascara (Txtcep1.Text));
         add (tiramascara (txttele.Text));
         add (#39 + txtramal.Text + #39);
         add (#39 + txtcodi.Text + #39);
         add (#39 + txtproc.Text + #39);
         if edata (txtabe.Text) then
         Add (#39 + FormatDateTime ('mm/dd/yyyy', StrToDate (txtabe.Text)) + #39);
         if edata (txtvenc.Text) then
         add (#39 + formatdatetime ('mm/dd/yyyy', strtodate (txtvenc.Text)) + #39);
         if edata (txtemi.Text) then
         add (#39 + formatdatetime ('mm/dd/yyyy', strtodate (txtemi.Text)) + #39);
         add (#39 + memobs.Text + #39);

     end;
      If (Editar) Then
      AlterarRegistro ('alunos', vCpo, vVlr, 'codigo =' + txtmat.Text)
   else
      IncluirRegistro('alunos', vCpo, vVlr);
   inherited;
end;

procedure Tfrmalunos.spbexcClick(Sender: TObject);
begin
  if (not pergunta('Tem certeza que deseja excluir este registro?')) then exit;
  excluirregistro ('alunos', 'codigo =' + txtmat.text);
  inherited;

end;

procedure Tfrmalunos.spbpesClick(Sender: TObject);
begin
 with vcpo do
      begin
         clear;
         add ('Codigo');
         add ('Nome');
         add ('Cpf');
         add ('Processos')
      end;
   with vvlr do
      begin
         clear;
         add ('Codigo');
         add ('Nome');
         add ('Cpf');
         add ('Processos')
      end;

   with tfrmpesquisa.create (application) do
      begin
         try
            tabela := 'alunos';
            camporetorno := 'codigo';
            showmodal;
         finally
            free;
      end;
   end;
   if (retorno<> '') then
      begin
      inherited;
         leregistro();

      end;

end;

procedure Tfrmalunos.leregistro;
begin
    IF
    consultaregistros('alunos', 'codigo, nome, cpf, processos', 'codigo =' + retorno) then
       begin
      txtmat.text := ledados ('codigo');
      txtnom.text := ledados ('nome');
      txtcpf.text := ledados ('cpf');
      txtpro.text := ledados ('processos');
       end;
    if
    consultaregistros('usuarios', 'codigo, nome', 'codigo =' + retorno) then
      begin
      txtcodi.text := ledados ('codigo');
      txtusu.text := ledados ('nome');
      end;

end;

procedure Tfrmalunos.cbocidExit(Sender: TObject);
begin
   ConsultaRegistros ('Cidades', 'CEP'  , 'Codigo =' + Copy (cboCid.Text, 1, 4));
   TxtCEP.Text := StrZero (LeDados ('CEP'), 8);
   cbocid.Color := clWindow;
end;


procedure Tfrmalunos.FormShow(Sender: TObject);
begin
   ConsultaRegistros ('Cidades ORDER BY cidade', 'Codigo, cidade', '');
   While (Not dtmiza.Qryiza.Eof) Do
      begin
         cboCid.Items.Add(StrZero (LeDados ('Codigo'), 4) + '-' + LeDados ('cidade'));
         dtmiza.Qryiza.Next;
      end;

end;


procedure Tfrmalunos.cbocidaChange(Sender: TObject);
begin
   ConsultaRegistros ('Cidades', 'CEP' , 'Codigo =' + Copy (cboCida.Text, 1, 4));
   TxtCEP.Text := StrZero (LeDados ('CEP'), 8);
   cbocida.Color := clWindow;

end;



procedure Tfrmalunos.spdlocClick(Sender: TObject);
begin
 with vcpo do
      begin
         clear;
         add ('Codigo');
         add ('Nome');
      end;
   with vvlr do
      begin
         clear;
         add ('Codigo');
         add ('Nome');
      end;

   with tfrmpesquisa.create (application) do
      begin
         try
            tabela := 'usuarios';
            camporetorno := 'codigo';
            showmodal;
         finally
            free;
      end;
   end;
   if (retorno<> '') then
      begin
      inherited;
         leregistro();

      end;
end;



procedure Tfrmalunos.txtnasExit(Sender: TObject);
Var Data : TDate;
begin
   Try
      Data := StrToDate (TxtNas.Text);
   Except
      ShowMessage ('Data inválida!');
      TxtNas.Text := '';
      TxtNas.SetFocus;
   end;
end;

procedure Tfrmalunos.txtabeExit(Sender: TObject);
Var Data : TDate;
begin
   Try
      Data := StrToDate (Txtabe.Text);
   Except
      ShowMessage ('Data inválida!');
      Txtabe.Text := '';
      Txtabe.SetFocus;
   end;

end;

procedure Tfrmalunos.txtvencExit(Sender: TObject);
Var Data : TDate;
begin
   Try
      Data := StrToDate (Txtvenc.Text);
   Except
      ShowMessage ('Data inválida!');
      Txtvenc.Text := '';
      Txtvenc.SetFocus;
   end;

end;

procedure Tfrmalunos.txtemiExit(Sender: TObject);
Var Data : TDate;
begin
   Try
      Data := StrToDate (Txtemi.Text);
   Except
      ShowMessage ('Data inválida!');
      Txtemi.Text := '';
      Txtemi.SetFocus;
   end;

end;

end.

:blink:

Editado por Micheus
Substituida tag's de comentário ([quote]..[/quote]) pelas de código ([code]..[/code]) para melhor legibilidade do código.
Link para o comentário
Compartilhar em outros sites

  • 0
Mais uma vez obrigado pela dica, mas ainda não consiguo achar esse erro.

olhe o arquivo todo.> Se alguém achar me fala, por favor:

:unsure:

robinhotbo, você colocou o código errado. <_<

Se você quer ajuda no erro relacionado às suas queries, você tem que colocar - principalmente - o código que você utiliza para montá-la, afinal, não dá para adivinhar aonde você está errando sem ver como você o faz. ;)

Em algum lugar você dever ter as procedures:

AlterarRegistro ('alunos', vCpo, vVlr, 'codigo =' + txtmat.Text);, e até poderia adivinhar o que são os pâmetros (nome tabela, lista de campos, lista de valores e condição), mas como você os utiliza... - só vendo o código.

IncluirRegistro('alunos', vCpo, vVlr);

ConsultaRegistros ('Cidades', 'CEP' , 'Codigo =' + Copy (cboCida.Text, 1, 4));

Mesmo assim, vou dar uma dica: nestas procedures, verifique se, quando você monta a lista de campos da cláusula SELECT, você não está concatenando os nomes do campos com algo assim:

Qry.SQL.Clear;
  Qry.SQL.Text := 'SELECT ';
  for I := 0 to vCpo.Count -1 do
  begin
    Qry.SQL.Text := Qry.SQL.Text +vCpo.Strings[I] +',';
  end;
  Qry.SQL.Add('FROM ' + tab_nome);
  Qry.SQL.Add('WHERE ' + condicao);
  ...
Se tiver, observe que após adicionar o último campo da lista (vCpo), existirá indevidamente uma vírgula ao final da instrução SELECT. (é erro na certa!) Sugestão? Declare uma variável local (se já a utilizar melhor) e após montar a lista, remova o último caracter da mesma:
strSelect := 'SELECT ';
  for I := 0 to vCpo.Count -1 do
  begin
    strSelect := strSelect +vCpo.Strings[I] +',';
  end;
  Delete(strSelect, Length(strSelect) -1, 1);
  Qry.SQL.Add(strSelect);

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...