2 adet soru... Güncelleme ve sonrası...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

2 adet soru... Güncelleme ve sonrası...

Mesaj gönderen tachibana »

Merhaba arkadaşlar...
Şimdi ben veritabanında bir kaydı güncelledim fakat güncellediğim alanın tipi TIMESTAMP, bu güncelleme işleminde kaydın saat kısmı gayet normal bi şekilde güncellenio tarih kısmı ise 1 ocak 3000 tarihine gidio. Bunu nası halledebilirim. Ayrıca bu işlemden sonra Error Creating Cursor Handle die bi hata alıyorum.
İlgilenenlere teşekkürler.... Kodlar aşağıdaki gibidir...

Kod: Tümünü seç

procedure TForm4.SpeedButton1Click(Sender: TObject);
begin
QUERY2.Close;
QUERY2.SQL.Clear;
QUERY2.SQL.Add('UPDATE KONTROL.DB SET');
QUERY2.SQL.Add('BASLAMASAATI =:SAAT');
QUERY2.SQL.ADD('WHERE PCAD =:AD');
QUERY2.ParamByName('SAAT').AsTIME := STRTOTIME (MASKEDIT1.Text);
QUERY2.ParamByName('AD').AsSTRING := LABEL2.Caption;
QUERY2.Open;
QUERY2BASLAMASAATI.Value := STRTOTIME (MASKEDIT1.Text);
FORM4.Close;
end;
Resim
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

QUERY2BASLAMASAATI.Value := STRTOTIME (MASKEDIT1.Text); 
Bu satırda yanlışlık var gibi.burasını kaldır dene yada bu satırla yapmak istediğin nedir.kayıt eklemek, kayıt silmek, kayıt düzeltmerk vs..eğer bunları yapacaksan yöntem yanlış.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

Evet dostum yöntemin yanlış olduğunu öğrenmem pek uzun sürmedi. Ama şimdide saatin yanındaki tarih kısmı 1 ocak 1899 oldu.
Resim
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Veri tabanında sakladığın alan tipi olarak DATETIME kullanmışsındır o zaman.
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

Evet veritabanında DATETIME kullandım. Başka bişey kullanabilrmiyim?
Resim
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
güncelleme işlemi yaparken yani sqlde Update komutunu kullanırken
query1.open yaparsan error cursor handle mesajı alırsın
onun yerine
query1.execsql;
kullanmalısın
kolay gelsin
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Merhaba..
Kullandığın Bileşen IBQuery anladığım kadarı ile..IBQuery kullanarak güncelleme vs. yapacaksan IBUBdate bileşenini kullanman lazım ve cachedubdates özelliğini True yapmalısın..Çünkü IBQuery Salt Okunur sonuçlar döndürür.

Kolay gelsin..
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
Vedat hocam tm dediğiniz gibi Ibquery salt okunur sonuçlar dönderir fakat UPDATE komutunun kulllanılamıyacağı anlamına gelmez .Update komutu İBquery de de kullanılır.
fakat arkadaşın sorusunda bir sql hatası vermiyo onun hatası UPDATE komutunu kullanıyo ve Query2.open; ile güncellemeye çalışıyo onun yerine daha önceki mesajımda belirttiğim gibi Query2.open;yerine Query2.Execsql;kullanmalı ve ve s,excsql komutundan sonra eğer işlemi dbgridde görüyorsa ve dbgrid de table bağlıysa o zaman table1.refresh komutuyla işi çözülür.Query bağlıysa execsql komutundan sonra query2.refresh;komutuyla proğramında o anda güncelleme yapıldığını görecektir Kolay gelsin
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

selman yazdı:selam
güncelleme işlemi yaparken yani sqlde Update komutunu kullanırken
query1.open yaparsan error cursor handle mesajı alırsın
onun yerine
query1.execsql;
kullanmalısın
kolay gelsin
+1
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

ilgilenenlere teşekkürler... handle hatası için önerilenizi yaptım fakat şu datetime fieldındaki tarih olayını hala çözemedim nasıl olacak o?
Resim
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
datetime sorunu nasıl birazdaha açıklarmısınız
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

Şöyle daha önceden Now komutuyla veritabanına kaydettiğim bir saati yeni yaptığım bir forma değiştiriorum. Fakat saati sorunsuz değiştirmeme rağmen field daki tarih kısmı bu işlemden sonra 12.12.1899 gibi bir değer oluyor. Mesela ilk kaydı yaptığımda 14:46:35, 12.06.2005 iken saati değiştirdikten sonra 15:00:00, 12.12.1899 oluyor. Filed tipi timestamp...
Resim
Cevapla