Yorumları: 105
Konuları: 22
Kayıt Tarihi: 19-03-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 162 Başlangıç
25-03-2020, Saat: 13:21
(Son Düzenleme: 25-03-2020, Saat: 14:38, Düzenleyen: akuyumcu63.)
Merhaba;
virtualTable'ı bir projemde kullanmaya çalışıyorum. ID alanı otomatik artan, ID alanı için değer girmelisiniz diyor.
dxmemdata, fdmemtable kullanmıştım böyle bir sorunla karşılaşmamıştım. henüz database ye kaydedilmemiş veriler ve ID değerleri henüz yok. bellekte kayıtları oluşturup database kaydettikten sonra ID değerleri oluşuyor. databaseden veri çektiğimiz zaman ID değeri olur. kaydedilmemiş henüz bellekte olan kayıtlar için ID değeri neden istiyor.
neyi yanlış yapıyorum. yardımcı olabilirmisiniz.
Yorumları: 483
Konuları: 80
Kayıt Tarihi: 28-12-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.019 Programcı
(25-03-2020, Saat: 13:21)akuyumcu63 Adlı Kullanıcıdan Alıntı: Merhaba;
virtualTable'ı bir projemde kullanmaya çalışıyorum. ID alanı otomatik artan, ID alanı için değer girmelisiniz diyor.
dxmemdata, fdmemtable kullanmıştım böyle bir sorunla karşılaşmamıştım. henüz database ye kaydedilmemiş veriler ve ID değerleri henüz yok. bellekte kayıtları oluşturup database kaydettikten sonra ID değerleri oluşuyor. databaseden veri çektiğimiz zaman ID değeri olur. kaydedilmemiş henüz bellekte olan kayıtlar için ID değeri neden istiyor.
neyi yanlış yapıyorum. yardımcı olabilirmisiniz.
iyi günler aşağıdaki blog da
tam sizin sorundan bahsediyor.
çözüm olarak ID sutunu olarak rowid alanını kullanarak çözmüşler
http://duccao.blogspot.com/2013/05/auto-...rtual.html
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Yorumları: 151
Konuları: 14
Kayıt Tarihi: 18-09-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 552 Acemi
ID alanı required seçeneği kaldırmalısınız
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
25-03-2020, Saat: 18:26
(Son Düzenleme: 25-03-2020, Saat: 18:35, Düzenleyen: TescilsizUzman.)
Merhaba,
Insert işlemi için kullandığınız bileşenin (Query, Table vb) key sequnce gibi bir özelliği varsa, bu alanda insert yaptığınız tabloya bağlı sequence adını seçmelisiniz.
Yorumları: 105
Konuları: 22
Kayıt Tarihi: 19-03-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 162 Başlangıç
25-03-2020, Saat: 20:16
(Son Düzenleme: 25-03-2020, Saat: 20:17, Düzenleyen: akuyumcu63.)
(25-03-2020, Saat: 18:26)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Insert işlemi için kullandığınız bileşenin (Query, Table vb) key sequnce gibi bir özelliği varsa, bu alanda insert yaptığınız tabloya bağlı sequence adını seçmelisiniz.
fatih hocam;
1. TEKLIFHAREKET bir tablom var alanları (ID, TEKLIFID, ACIKLAMA, BIRIM, MIKTAR FIYAT, TUTAR(computed by (COALESCE(MIKTAR*FIYAT,0))))
2. forma cxgrid, Datasource, virtualTable ekliyorum,
3. virtual tablenin üzerinde sağ tuş Assing DataSet komutunu verip ilgili Teklif Hareket tablosunun ilgili Query sini seçiyorum. alanlar virtual table ye ekleniyor. ID alanının required özelliğini de kaldırıyorum.
ya access violation hatası alıyorum. yada ID alan boştur diyor. cxgrid üzerinde uyguladığım bütün kodları devre dışı bıraktım. virtualTable1.Append ile kayıt ekliyorum. ikinci kayıt eklenince yazdığım hataları alıyorum. hatayı post işlemi yaparken veriyor sanırım. kullanıdığım veri tabanı firebird 2.5.9 ver.
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
(25-03-2020, Saat: 20:16)akuyumcu63 Adlı Kullanıcıdan Alıntı: (25-03-2020, Saat: 18:26)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Insert işlemi için kullandığınız bileşenin (Query, Table vb) key sequnce gibi bir özelliği varsa, bu alanda insert yaptığınız tabloya bağlı sequence adını seçmelisiniz.
fatih hocam;
1. TEKLIFHAREKET bir tablom var alanları (ID, TEKLIFID, ACIKLAMA, BIRIM, MIKTAR FIYAT, TUTAR(computed by (COALESCE(MIKTAR*FIYAT,0))))
2. forma cxgrid, Datasource, virtualTable ekliyorum,
3. virtual tablenin üzerinde sağ tuş Assing DataSet komutunu verip ilgili Teklif Hareket tablosunun ilgili Query sini seçiyorum. alanlar virtual table ye ekleniyor. ID alanının required özelliğini de kaldırıyorum.
ya access violation hatası alıyorum. yada ID alan boştur diyor. cxgrid üzerinde uyguladığım bütün kodları devre dışı bıraktım. virtualTable1.Append ile kayıt ekliyorum. ikinci kayıt eklenince yazdığım hataları alıyorum. hatayı post işlemi yaparken veriyor sanırım. kullanıdığım veri tabanı firebird 2.5.9 ver.
Assign ettiğiniz Query hangi bileşen setine ait?
Sorun VirtualTable da değil, insert yaptığınız Query den kaynaklanıyor.
Yorumları: 105
Konuları: 22
Kayıt Tarihi: 19-03-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 162 Başlangıç
(25-03-2020, Saat: 20:22)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: (25-03-2020, Saat: 20:16)akuyumcu63 Adlı Kullanıcıdan Alıntı: fatih hocam;
1. TEKLIFHAREKET bir tablom var alanları (ID, TEKLIFID, ACIKLAMA, BIRIM, MIKTAR FIYAT, TUTAR(computed by (COALESCE(MIKTAR*FIYAT,0))))
2. forma cxgrid, Datasource, virtualTable ekliyorum,
3. virtual tablenin üzerinde sağ tuş Assing DataSet komutunu verip ilgili Teklif Hareket tablosunun ilgili Query sini seçiyorum. alanlar virtual table ye ekleniyor. ID alanının required özelliğini de kaldırıyorum.
ya access violation hatası alıyorum. yada ID alan boştur diyor. cxgrid üzerinde uyguladığım bütün kodları devre dışı bıraktım. virtualTable1.Append ile kayıt ekliyorum. ikinci kayıt eklenince yazdığım hataları alıyorum. hatayı post işlemi yaparken veriyor sanırım. kullanıdığım veri tabanı firebird 2.5.9 ver.
Assign ettiğiniz Query hangi bileşen setine ait?
Sorun VirtualTable da değil, insert yaptığınız Query den kaynaklanıyor.
UniDAC - UniQuery
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.975 Üstad
26-03-2020, Saat: 01:13
(Son Düzenleme: 26-03-2020, Saat: 01:14, Düzenleyen: TescilsizUzman.)
UniQuery'nin SpecificOptions özelliklerinde KeyGenerator değerine otomatik artan generator adını yazın.
Yine UniQuery'nin KeyFields özelliğinde otomatik artan alan adını seçin.
Bunu kodla da aşağıdaki gibi yapabilirsiniz.
UniQuery.KeyFields := 'ID';
UniQuery.SpecificOptions.Values['KeyGenerator'] := 'GeneratorAdi';
Yorumları: 105
Konuları: 22
Kayıt Tarihi: 19-03-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 162 Başlangıç
merhaba;
işin içinden bir türlü çıkamamıştım. unidac ın virtualtable ile ilgili örneğini inceledim sonra işlemleri silip adım adım yeni yeniden yapmaya çalıştım. şimdi gayet güzel çalışıyor.
sorun biraz benim vitualtable yi diğer memtable ler gibi kullanmaya çalışma biçimimden kaynaklanmış. demo örnekleri iyi incelemek gerekiyor. fazla kod her zaman daha büyük problem.
virtualtable deki ID alanı için required özelligini false yapmak yeterli geliyor.
bu karantina günlerinde virtualtable beni iyi yordu.
hepinize çok teşekkür ederim.
|