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
  StringList Yavaşlığı ve Güncelleme Sorunu bnyamin86 2 132 11-11-2020, Saat: 11:27
Son Yorum: ozcanm
  StringList Güncelleme MEDCEZİR 1 152 26-10-2020, Saat: 09:24
Son Yorum: TescilsizUzman
  SQLite Text Alanı Sorunu Frrst 8 316 17-10-2020, Saat: 19:47
Son Yorum: Frrst
  Veritabanı Dosyasındaki Dataları Listeleme bnyamin86 6 826 17-08-2020, Saat: 18:35
Son Yorum: bnyamin86
  Excel import yapma (Güncelleme) cinarbil 2 568 28-07-2020, Saat: 17:39
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi