Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQLite Veritabanı Güncelleme
#1
Arkadaşlar maalesef şuradaki mesajda belirttiğim üzere SQLite veritabana alan ekleyip güncelleyemiyorum. 

Aşağıdaki şekilde bir Query oluşturup FormCreate yordamına "TabloUret.ExecSQL;" yazarak programın çalıştığı dizinde veritabanını oluşturuyorum ancak daha sonra aşağıdaki ekran görüntüsünde kırmızı çerçeve ile eklediğim alanları kayıtlı verilere zarar vermeden ekleyemiyorum.

Veritabanı hiç yoksa oluşturuluyor ancak yeni alan eklediğimde güncelleme yapamıyorum. Benim istediğim kayıtları kontrol edip eğer kayıt yoksa ilgili alanları veritabanına ekleyebilmek Sad

J6kDsXq.png


Ek sorular: Kız ve erkek öğrencilerin sayılarını almak için ek bir Query oluşturmak zorunda kaldım ve uzun kodlar yazmak zorunda kaldım. Benimki kulağı tersinden göstermekten bile çok öteye geçti. Örneğin kız öğrencilerin sayısını Label'de göstermek için formun OnCreate yordamına şu kodları yazdım. (Erkek öğrenci sayıları için de aynı işlemi tekrarladım. Her işlem yaptığımda yeni bir Query oluşturmak gerekli mi?)

  QCinsiyet.SQL.Clear;
 QCinsiyet.SQL.Add
   ('Select Count (*) AS ToplamKız From Ogrenci Where Cinsiyet = ''Kız''');
 QCinsiyet.Open();
 LabelKiz.Caption := 'Kız: ' + inttostr(QCinsiyet.fieldByName('ToplamKız')
   .AsInteger);

Telefon numarası göstermek içinse TFDQuery'nin AfterScrool olayına DBEdit3.Field.EditMask := '(5##) ### ## ##'; yazdım. Doğru yapıp yapmadığım konusunda şüpheliyim. 

Arkadaşlar vakti olanlar belki bakabilir diye BURAYA kaynak kodları da ekliyorum. Yardımlarınız için şimdiden teşekkürler.
Cevapla
#2
@Frrst
Form editörümüz üzerinde kod biçimlendirme amacı ile kullandığımız 2 adet buton bulunmaktadır. Delphi Logolu olan (Delphi Kod Ekle) buton ile Delphi kodu, Süslü Parantez simgeli buton (Kod Biçimlendirme) ile de diğer dillere ait (SQL'de dahil) kodlar eklenerek (aşağıdaki ekran görüntüsünde işaretlenmişir), kod biçimlendirme yapılmaktadır. 
Bu kapsamda;

kodbicim.jpg

Doğru kod tag'larını kullanarak bize yardımcı olursanız memnun oluruz.
Aksi durumda DelphiCan Forum Kurallarında belirtilen yaptırımlar uygulanacaktır.
İlgi ve anlayışınız için şimdiden teşekkür eder, iyi çalışmalar dileriz.

Önemli Not: Herhangi bir yerden kopyaladığınız metni, DelphiCan metin editörüne yapıştırmadan önce, metin editörünün araç çubuğunda bulunan "Kaynağı Görüntüle" butonuna tıklayın. Daha sonra kopyaladığınız metni yapıştırın. Böylece harici bir kaynaktan aldığınız metin biçimlendirmesi yok sayılacaktır.
Delphi Can'dır!
WWW
Cevapla
#3
@DelphiCan hocam inanır mısınız cevap yazılmış diye ekran görüntüsünü gördüğüm an Delphi'yi başlatıp nerede bu menü diye bakıyordum ki forum menüleri imiş.  Smile

Aslında forum kültürüm var kendime ait 15 yıldır açık tuttuğumuz VBulletin ve devamında XenForo ile devam ediyoruz. Doğrusu konu eklerken Delphi Kodu bölümünü görmemiştim çünkü MyBB 'ye pek alışık değilim. Kodlar kısa olduğu için de sorun olacağını düşünmeyip en anlaşılır şekilde yazmaya çalışmıştım. 

Konu eklerken yaptığım hatalarla sizlerin değerli vaktini çaldığım için kusura bakmayın. Şahsi kanaatim, kurallarınızın ziyadesiyle katı olduğu yönünde, bu kadar uzun uyarı yazısının içinde bir cümlelik cevap niteliği taşıyan bir satır yazılabilirdi.  İyi forumlar ve başarılar diliyorum.
Cevapla
#4
(26-10-2020, Saat: 12:19)Frrst Adlı Kullanıcıdan Alıntı: @DelphiCan hocam inanır mısınız cevap yazılmış diye ekran görüntüsünü gördüğüm an Delphi'yi başlatıp nerede bu menü diye bakıyordum ki forum menüleri imiş.  Smile

Aslında forum kültürüm var kendime ait 15 yıldır açık tuttuğumuz VBulletin ve devamında XenForo ile devam ediyoruz. Doğrusu konu eklerken Delphi Kodu bölümünü görmemiştim çünkü MyBB 'ye pek alışık değilim. Kodlar kısa olduğu için de sorun olacağını düşünmeyip en anlaşılır şekilde yazmaya çalışmıştım. 

Konu eklerken yaptığım hatalarla sizlerin değerli vaktini çaldığım için kusura bakmayın. Şahsi kanaatim, kurallarınızın ziyadesiyle katı olduğu yönünde, bu kadar uzun uyarı yazısının içinde bir cümlelik cevap niteliği taşıyan bir satır yazılabilirdi.  İyi forumlar ve başarılar diliyorum.

Anlayışınız ve samimi görüşleriniz için teşekkür ederiz.
Her üye profiline hitap edebilmek için  detaylı uyarı yazmak zorunda kalıyoruz.
Delphi Can'dır!
WWW
Cevapla
#5
(26-10-2020, Saat: 00:09)Frrst Adlı Kullanıcıdan Alıntı: Arkadaşlar maalesef şuradaki mesajda belirttiğim üzere SQLite veritabana alan ekleyip güncelleyemiyorum. 

Aşağıdaki şekilde bir Query oluşturup FormCreate yordamına "TabloUret.ExecSQL;" yazarak programın çalıştığı dizinde veritabanını oluşturuyorum ancak daha sonra aşağıdaki ekran görüntüsünde kırmızı çerçeve ile eklediğim alanları kayıtlı verilere zarar vermeden ekleyemiyorum.

Veritabanı hiç yoksa oluşturuluyor ancak yeni alan eklediğimde güncelleme yapamıyorum. Benim istediğim kayıtları kontrol edip eğer kayıt yoksa ilgili alanları veritabanına ekleyebilmek Sad

J6kDsXq.png


Ek sorular: Kız ve erkek öğrencilerin sayılarını almak için ek bir Query oluşturmak zorunda kaldım ve uzun kodlar yazmak zorunda kaldım. Benimki kulağı tersinden göstermekten bile çok öteye geçti. Örneğin kız öğrencilerin sayısını Label'de göstermek için formun OnCreate yordamına şu kodları yazdım. (Erkek öğrenci sayıları için de aynı işlemi tekrarladım. Her işlem yaptığımda yeni bir Query oluşturmak gerekli mi?)

  QCinsiyet.SQL.Clear;
 QCinsiyet.SQL.Add
   ('Select Count (*) AS ToplamKız From Ogrenci Where Cinsiyet = ''Kız''');
 QCinsiyet.Open();
 LabelKiz.Caption := 'Kız: ' + inttostr(QCinsiyet.fieldByName('ToplamKız')
   .AsInteger);

Telefon numarası göstermek içinse TFDQuery'nin AfterScrool olayına DBEdit3.Field.EditMask := '(5##) ### ## ##'; yazdım. Doğru yapıp yapmadığım konusunda şüpheliyim. 

Arkadaşlar vakti olanlar belki bakabilir diye BURAYA kaynak kodları da ekliyorum. Yardımlarınız için şimdiden teşekkürler.

Merhaba,
1- EXISTS fonksiyonu, tablonun varlığını kontrol eder. Tabloda bir alan da olsa size true sonucu döneceği için yeni alanları oluşturmayacaktır.
Bu gibi durumlarda yeni alanları SQL script'ler yardımıyla güncelleyebilirsiniz. Örneğin,
ALTER TABLE Ogrenci ADD COLUMN baba_adi varchar2(20)
2- Kız ve erkek sayılarını tek bir SQL cümlesi ile alabilirsiniz.

   

3- TFDQuery'nin AfterScroll veya herhangi bir scroll olayını kullanmanızı tavsiye etmiyorum. Bu methodlar çok yoğun çalışmaktadır. Dataset üzerindeki her hareket, bu olayların çalışmasına neden olacaktır. Veri tabanından gelen veriyi biçimlendirmek için field'ın DisplayFormat özelliğini kullanabilirsiniz.
Cevapla
#6
Çok teşekkürler @"Fesih ARSLAN" hocam. Daha benim çok fırın ekmek yemem gerekiyor bu yolda. İyi çalışmalar diliyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Sqlite trigger Nedim 5 73 Dün, Saat: 18:02
Son Yorum: Nedim
  server programinda hani veritabani dogru olur. sadikacar60 4 305 30-01-2024, Saat: 21:06
Son Yorum: sadikacar60
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 694 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60
  Serverda bulunan kullanıcıların exelerini guncelleme mertnas 20 1.691 13-11-2023, Saat: 11:31
Son Yorum: shooterman
  SQL VeriTabanı Kopyalama Hk. glagher 4 575 10-09-2023, Saat: 14:18
Son Yorum: glagher



Konuyu Okuyanlar: 1 Ziyaretçi