Fórum ERRO AO INSERIR USANDO DBEXPRESS #504505
16/12/2014
0
Pessoal estou tentando inserir registro de forma automática, conforme o codigo abaixo:
Query := TSQLQuery.Create(Nil);
Try
Query.SQLConnection := DtModConexao.SqlConexao;
Query.SQL.Add('INSERT INTO LANCAMENTOS (SEQ_LANCA,DT_LANCA,MES,ANO,NR_DOC,COD_CONTA,VL_ENTRA,VL_SAI,COD_HIST,COMPLEMENTO,COD_SECRET,AUTOR,COD_RECURSO,COD_EVENTO,FORMPGTO,SEGMENTO,TIPO)'+
' VALUES (:SEQ_LANCA,:DT_LANCA,:MES,:ANO,:NR_DOC,:COD_CONTA,:VL_ENTRA,:VL_SAI,:COD_HIST,:COMPLEMENTO,:COD_SECRET,:AUTOR,:COD_RECURSO,:COD_EVENTO,:FORMPGTO,:SEGMENTO,:TIPO)');
Try
Query.Params.ParamByName('SEQ_LANCA').AsInteger := CodLanca;
Query.Params.ParamByName('DT_LANCA').AsDate := StrToDate( EdtDataPgto.Text );
Query.Params.ParamByName('MES').AsString := LstMeses.Items[mes-1];
Query.Params.ParamByName('ANO').AsInteger := ano;
Query.Params.ParamByName('NR_DOC').AsString := Trim ( EdtDoc.Text );
Query.Params.ParamByName('COD_CONTA').AsInteger := 11; //Mensalidades
Query.Params.ParamByName('VL_ENTRA').AsFloat := EVlrReceb.Value;
Query.Params.ParamByName('VL_SAI').AsFloat :=0;
Query.Params.ParamByName('COD_HIST').AsInteger := 8; //Caixa geral
Query.Params.ParamByName('COMPLEMENTO').AsString := 'PARC. CARNE';
Query.Params.ParamByName('COD_SECRET').AsInteger := 2; //Financeiro
Query.Params.ParamByName('AUTOR').AsString := Trim ( EdtObser.Lines.Text );
Query.Params.ParamByName('COD_RECURSO').AsInteger := 1; //Movimento Caixa Local
Query.Params.ParamByName('COD_EVENTO').AsInteger := 1; //Gestão interna da entidade
Query.Params.ParamByName('FORMPGTO').AsInteger := 9; //Carnê
Query.Params.ParamByName('SEGMENTO').AsString :='OPERACIONAL';
Query.Params.ParamByName('TIPO').AsString :='C';
Query.ExecSQL;
Except
on EDatabaseError do
End;
Finally
FreeAndNil(Query);
End;
Mas acaba gerando o seguinte erro:
Project GEO.exe raised exception class TDBXError with message 'dbExpress driver not support the
TDBXTypes.UNKNOWN data type. Vendor error message: unknown ISC error 0.'.
Query := TSQLQuery.Create(Nil);
Try
Query.SQLConnection := DtModConexao.SqlConexao;
Query.SQL.Add('INSERT INTO LANCAMENTOS (SEQ_LANCA,DT_LANCA,MES,ANO,NR_DOC,COD_CONTA,VL_ENTRA,VL_SAI,COD_HIST,COMPLEMENTO,COD_SECRET,AUTOR,COD_RECURSO,COD_EVENTO,FORMPGTO,SEGMENTO,TIPO)'+
' VALUES (:SEQ_LANCA,:DT_LANCA,:MES,:ANO,:NR_DOC,:COD_CONTA,:VL_ENTRA,:VL_SAI,:COD_HIST,:COMPLEMENTO,:COD_SECRET,:AUTOR,:COD_RECURSO,:COD_EVENTO,:FORMPGTO,:SEGMENTO,:TIPO)');
Try
Query.Params.ParamByName('SEQ_LANCA').AsInteger := CodLanca;
Query.Params.ParamByName('DT_LANCA').AsDate := StrToDate( EdtDataPgto.Text );
Query.Params.ParamByName('MES').AsString := LstMeses.Items[mes-1];
Query.Params.ParamByName('ANO').AsInteger := ano;
Query.Params.ParamByName('NR_DOC').AsString := Trim ( EdtDoc.Text );
Query.Params.ParamByName('COD_CONTA').AsInteger := 11; //Mensalidades
Query.Params.ParamByName('VL_ENTRA').AsFloat := EVlrReceb.Value;
Query.Params.ParamByName('VL_SAI').AsFloat :=0;
Query.Params.ParamByName('COD_HIST').AsInteger := 8; //Caixa geral
Query.Params.ParamByName('COMPLEMENTO').AsString := 'PARC. CARNE';
Query.Params.ParamByName('COD_SECRET').AsInteger := 2; //Financeiro
Query.Params.ParamByName('AUTOR').AsString := Trim ( EdtObser.Lines.Text );
Query.Params.ParamByName('COD_RECURSO').AsInteger := 1; //Movimento Caixa Local
Query.Params.ParamByName('COD_EVENTO').AsInteger := 1; //Gestão interna da entidade
Query.Params.ParamByName('FORMPGTO').AsInteger := 9; //Carnê
Query.Params.ParamByName('SEGMENTO').AsString :='OPERACIONAL';
Query.Params.ParamByName('TIPO').AsString :='C';
Query.ExecSQL;
Except
on EDatabaseError do
End;
Finally
FreeAndNil(Query);
End;
Mas acaba gerando o seguinte erro:
Project GEO.exe raised exception class TDBXError with message 'dbExpress driver not support the
TDBXTypes.UNKNOWN data type. Vendor error message: unknown ISC error 0.'.
Hardsoft Informática
Curtir tópico
+ 0
Responder
Posts
19/12/2014
Renato Rubinho
Buenos,
Posta a estrutura da sua tabela.
Aparentemente está tudo correto.
Pelo erro parece que está utilizando um tipo de dado incorreto para algum dos parâmetros ( e talvez por isso ele mostre como desconhecido ).
Abraççç,
rrubinho
Posta a estrutura da sua tabela.
Aparentemente está tudo correto.
Pelo erro parece que está utilizando um tipo de dado incorreto para algum dos parâmetros ( e talvez por isso ele mostre como desconhecido ).
Abraççç,
rrubinho
Responder
Gostei + 0
23/12/2014
Hardsoft Informática
Verdade rrubinho, após ter analisando melhor o código percebi que podia trocar a linha do parâmetro mes. Primeiro decodifiquei a data e transformei o parâmetro mes do tipo inteiro para string recebendo o nome do mês ao invés de usar um componente pra isso. Ai pronto passou a funcionar certinho. Valeu a atenção de todos.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)