REVELAR

Fórum Probelmas ao gravar dados tipo date no firebird? #333996

30/11/2006

0

Estou com problemas em gravar datas null no firebird, me mostra uma mensagem assim:
[b:e6e592bc15]´ / / ´ Data invalida proceda a correçao[/b:e6e592bc15]
Achei que fosse por causa de deste codigo que uso no aplicationvents

Procedure TFPrincipal.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
Var
f : TextFile;
Eq : Boolean;
mensagem: String;
Arq : String;
Begin
If Pos(UpperCase(´is Not a valid date´), UpperCase(E.Message)) <> 0 Then
Mensagem:=´Data inválida, proceda a correção.´;
Mas cheguei a apaga-lo e nada continua o erro apenas nao esta tratando o erro com o nome acima.

Bom o problema eh que nem sempre deve ser preenchida datas ai nao quer gravar datas nulas ou em branco.

Achei que poderia se o codigo que eu tenho para incluir dados no banco
procedure TForm1.b2Click(Sender: TObject);
var
ok: boolean;
ProxNum: Integer;
Node, SubNode1, SubNode2: TTreeNode;
instrucao: string; 
begin 
  with dm.ibq1 do
  begin 
    close; 
    sql.text := ´select * from sind2 where (matricula = :pmatricula)´; 
    parambyname(´pmatricula´).asString := e1.text; 
    open; // faltou essa linha 

    // não use RecordCount, a menos que você queira 
    // saber exatamente quantos registros foram retornados 
    if not IsEmpty then 
    begin 
      Close; 
      showmessage(´Exception 1 RESTRIÇÃO Campo Matrícula já existe, Erro na Gravação! Tente Novamente!´); 
      E1.SETFOCUS; 
    end 
    else 
    {comandos de inserção } 
    if application.messagebox( 
      Pchar(´Deseja Incluir este Associado:´ + #13+e1.text+´ ´+13+e3.text), 
      Pchar(´Incluir Dados ´+Self.Caption), 
      MB_ICONQUESTION + MB_YESNO) = IDYES then 
    begin
      Close; 
      sql.text := 
        ´Insert into sind2 ´+ 
        ´ (matricula, admissao, associado, naturalDE, estado, dtnas, ´+
        ´ estcivil, conjuge, ctps, serie, prevsoc, te, reservista, ´+
        ´ residencia, pai, mae, nacpai, nacmae, propried, propriet, ´+
        ´ endereco, dtadm, empreg, propri, arrend, boiaf, funcao, remun, ´+
        ´ dp1, dp2, dp3, dp4, dp5, dp6, dp7, dp8, dp9, dp10, ´+
        ´ par1, par2, par3, par4, par5, par6, par7, par8, par9, par10, ´+
        ´ dt1, dt2, dt3, dt4, dt5, dt6, dt7, dt8, dt9, dt10, ´+
        ´ OBS1, OBS2, SINDDIM, SINDNAO, LOCAL, FOTO, VALORPG, MENSALIDADE, SIT) ´+
        ´values ´+
        ´ (:matricula, :admissao, :associado, :naturalDE, :estado, :dtnas,´+
        ´ :estcivil, :conjuge, :ctps, :serie, :prevsoc, :te, :reservista, ´+
        ´ :residencia, :pai, :mae, :nacpai, :nacmae, :propried, :propriet, ´+
        ´ :endereco, :dtadm, :empreg, :propri, :Arrend, :boiaf, :funcao, :remun, ´+
        ´ :dp1, :dp2, :dp3, :dp4, :dp5, :dp6, :dp7, :dp8, :dp9, :dp10, ´+
        ´ :par1, :par2, :par3, :par4, :par5, :par6, :par7, :par8, :par9, :par10, ´+
        ´ :dt1, :dt2, :dt3, :dt4, :dt5, :dt6, :dt7, :dt8, :dt9, :dt10, ´+
        ´ :OBS1, :OBS2, :SINDDIM, :SINDNAO, :LOCAL, :FOTO, :VALORPG, :MENSALIDADE, :SIT) ´;
      ParamByName(´matricula´).AsString:=e1.text;
      ParamByName(´admissao´).AsString:=e2.text;
      ParamByName(´associado´).AsString:=e3.text;
      ParamByName(´naturalDE´).AsString:=e4.text;
      ParamByName(´estado´).AsString:=e5.text;
      ParamByName(´dtnas´).Value:=StrToDate(e6.text);
      ParamByName(´estcivil´).AsString:=e7.text;
      ParamByName(´conjuge´).AsString:=e8.text;

      ParamByName(´ctps´).AsString:=e9.text;
      ParamByName(´serie´).AsString:=e10.text;
      ParamByName(´prevsoc´).AsString:=e11.text;
      ParamByName(´te´).AsString:=e12.text;
      ParamByName(´reservista´).AsString:=e13.text;
      ParamByName(´residencia´).AsString:=e14.text;
      ParamByName(´pai´).AsString:=e15.text;

      Parambyname(´mae´).AsString:=e16.text;
      Parambyname(´nacpai´).AsString:=e17.text;
      Parambyname(´nacmae´).AsString:=e18.text;

      Parambyname(´propried´).AsString:=e19.text;
      Parambyname(´propriet´).AsString:=e20.text;
      Parambyname(´endereco´).AsString:=e21.text;
      Parambyname(´dtadm´).Value:=StrToDate(e22.text);

      if e23.checked then
        Parambyname(´empreg´).AsString:=´X´;

      if e24.checked then
        Parambyname(´propri´).AsString:=´X´;

      if e25.checked then
        Parambyname(´arrend´).AsString:=´X´;

      if e26.checked then
        Parambyname(´boiaf´).AsString:=´X´;

      Parambyname(´funcao´).AsString:=e27.text;
      Parambyname(´remun´).value:=e28.text;

      Parambyname(´DP1´).AsString:=e29.text;
      Parambyname(´PAR1´).AsString:=e30.text;
      Parambyname(´DT1´).Value:=StrToDate(e31.text);

      Parambyname(´DP2´).AsString:=e32.text;
      Parambyname(´PAR2´).AsString:=e33.text;
      Parambyname(´DT2´).Value:=StrToDate(e34.text);

      Parambyname(´DP3´).AsString:=e35.text;
      Parambyname(´PAR3´).AsString:=e36.text;
      Parambyname(´DT3´).Value:=StrToDate(e37.text);

      Parambyname(´DP4´).AsString:=e38.text;
      Parambyname(´PAR4´).AsString:=e39.text;
      Parambyname(´DT4´).Value:=StrToDate(e40.text);

      Parambyname(´DP5´).AsString:=e41.text;
      Parambyname(´PAR5´).AsString:=e42.text;
      Parambyname(´DT5´).Value:=StrToDate(e43.text);

      Parambyname(´DP6´).AsString:=e44.text;
      Parambyname(´PAR6´).AsString:=e45.text;
      Parambyname(´DT6´).Value:=StrToDate(e46.text);

      Parambyname(´DP7´).AsString:=e47.text;
      Parambyname(´PAR7´).AsString:=e48.text;
      Parambyname(´DT7´).Value:=StrToDate(e49.text);

      Parambyname(´DP8´).AsString:=e50.text;
      Parambyname(´PAR8´).AsString:=e51.text;
      Parambyname(´DT8´).Value:=StrToDate(e52.text);

      Parambyname(´DP9´).AsString:=e53.text;
      Parambyname(´PAR9´).AsString:=e54.text;
      Parambyname(´DT9´).Value:=StrToDate(e55.text);

      Parambyname(´DP10´).AsString:=e56.text;
      Parambyname(´PAR10´).AsString:=e57.text;
      Parambyname(´DT10´).Value:=StrToDate(e58.text);

      Parambyname(´obs1´).AsString:=e59.text;
      if e60.checked then
        Parambyname(´empreg´).AsString:=´X´;

      if e61.checked then
        Parambyname(´propri´).AsString:=´X´;
      Parambyname(´local´).AsString:=e29.text;

      try
        ExecSql;
        dm.ibt2.commit;
        close;
        sql.text := ´select * from sind2´; 
        Open; 

        sbar.SimpleText := ´Dados Incluídos...´;
        scrollBox1.VertScrollBar.Position:=0; // volta a posicao no zero scrollbox
        b1.setfocus; 
      except 
        On E:Exception do 
        begin 
          dm.ibt2.Rollback; 
          sbar.SimpleText := ´Abortado...´; 
          Showmessage(´Falha na Inclusão dos Dados!´#1310´Mensagem: ´+E.Message);
          
        end; 
      end; 
    end; 
  end;

Bom eu nao sei, mais antes quando usava esse mesmo form para gravar usando um IBTable, nao tinha porblemas, isso esta acontecendo depois que mudei para SQL pq o pessoal me disse que eh mais rapido para gravar.

Agradeço a ajuda de todos
Adriano


Adriano_servitec

Adriano_servitec

Responder

Posts

30/11/2006

Adriano_servitec

desculpe eu ter postado sem ter feito uma pesquisa antes, achei como gravar data em branco passando por parametros
http://forum.clubedelphi.net/viewtopic.php?t=82577&highlight=gravar+data+++branco+firebird

Mais uma vez desculpe o post.


Responder

Gostei + 0

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

Aceitar