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
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
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
[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.´;
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
Curtir tópico
+ 0
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.
http://forum.clubedelphi.net/viewtopic.php?t=82577&highlight=gravar+data+++branco+firebird
Mais uma vez desculpe o post.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)