walla bak bende merak ettim muhtemelen structure da problem var, diğer ihtimal ise Field tipi. Yoksa Asdatetime := Now da desen Time da desen DB ye gomülürken date kısmı tırpanlanır. Ha tabi Dialect 3 ve Fielt tipinde Time ise
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak... Zoru başarırım, İmkansız zaman alır FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Almış olduğum hata
Projeck HusoSet.exe raised exception class EConvertError with message
"0.84878531' is not a valid timestamp'. Process stopped. Use Step or run
to continue.
procedure TCariHesapAcilisIslemFrm.Button1Click(Sender: TObject);
begin
Try
Screen.cursor:= crhourglass;
IbDataSet1.DisableControls;
//Boş Kayıt Kontrolü
IbDataSet1.First;
While Not IbDataSet1.Eof do
Begin
if IbDataSet1.FieldByName('CARIKOD').IsNull Then
IbDataSet1.Delete
Else
Begin
IbDataSet1.Edit;
IbDataSet1.FieldByName('SAAT').AsDateTime := Now;
IbDataSet1.Post;
IbDataSet1.Next;
End;
End;
IbDataSet1.EnableControls;
IBDataset1.ApplyUpdates;
AnaProgFrm.IBTransaction1.CommitRetaining;
Close;
Finally;
screen.cursor:=crdefault;
End;
end;
Dialect 3 ve Field tipimde time Diğer her şey normal. Sadece Time alanına bir saat'i aktaramadım.
walla bende çok merak ettim, Yanılmıyorsam IBExpert kullanıyorsun, O table ın DDL inide bir göndersene. Birde SAAT dediğin alanı FieldList içinden silip tekrar eklesene.
kodun ile ilgilide 1-2 laf edemeden geçemiycem, Kodun düzenli hata ayıklamak yada 1 ay sonra baktığında kolayca anlaşılır
....
IbDataSet1.EnableControls; //Bunu Finally ye koymalısın alltaki satırlar hata oluşturursa Kontrolün Disable kalır
IBDataset1.ApplyUpdates;
AnaProgFrm.IBTransaction1.CommitRetaining; //Bunu anlamadım, Neden IBDataset1. nin bağlı olduğuTransaction değil ? Tavsiyem Transactionları grupla yani 2 table olabilir master ve detail bunlar 1 transationda ve oda aynı formda kullan
Close;
Finally;
screen.cursor:=crdefault;
End;
bir diğer konu Component isimlerini verirken makul ve mantıklı isimler ver "AnaProgFrm" gibi ben "FRM_AnaProg" yazmayı terçih ederim. "IBDataset1." neyi temsil ediyor ?? Ben olsam "IBD_CariHareket" derdim. "IBTransaction1." yerine "TRA_CariHareket" gibi
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak... Zoru başarırım, İmkansız zaman alır FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kod yazarken ileriyi düşünüyorum benim için okunabilirlik ön planda. Hocam önerilerinizi uygulayacağım. AnaProgFrm.IBTransaction1.CommitRetaining; Anaform daki Transactionu kullanma sebebim bütün datasetlerimi tek bir database bileşeninden bağladığım için bu bayağı kolay geliyor bana dataset te de bağlantımı database i işaret ettiğimde tranaction otamatik olarak dataset e ilave oluyor acaba bu yöntemim yanlışmı? Yani bütün dataset bağlantılarımda tek transaction kullanıyorum.
şeklinde bir dener misin ? AsDateTime deyince Value olarak DateTime bekliyordur ama field Time olduğundan fazla geliyordur, tersi durumda da field time olduğu halde AsDateTime dediğin için Value girişi eksik algılanıyordur gibi bişi düşündüm... Belki doğru belki yanlış ama denemeye değer...