TQuery kullanarak veri girişi veya veri kaydı yapma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
TQuery kullanarak veri girişi veya veri kaydı yapma
Forumda aradım bulamadım. TQuery kullanarak veri girişi veya veriyi kaydetme nasıl yapılır bilen var mı acaba?
Query'nin cachedUpdates:=True yaptıktan sonra onupdaterecord'una // ile birşeyler yazınca oluyordu sanıyorum. Ama 'Table is read only' mesajı alıyorum. Query'den çektiğim alana veri girişi yapmak veya kaydı güncellemek istiyorum. Bilen varsa yardım etsin lütfen. Veritabanı Oracle.
Query'nin cachedUpdates:=True yaptıktan sonra onupdaterecord'una // ile birşeyler yazınca oluyordu sanıyorum. Ama 'Table is read only' mesajı alıyorum. Query'den çektiğim alana veri girişi yapmak veya kaydı güncellemek istiyorum. Bilen varsa yardım etsin lütfen. Veritabanı Oracle.
hatayı nerde verdiğini tam olarak yazarsan daha da yardımcı olabiliriz.
tquery bileşeni programın çalışma anında bir yerde kapanıyor olabirilmi.
birde
tquery kullanmayalı uzun zaman oldu
ben artık ibquery kullanıyorum.
tquery bileşeni programın çalışma anında bir yerde kapanıyor olabirilmi.
birde
bunlarla ilgili bi değişiklik yapmana gerk yok bildiğim kadarı ileKacak yazdı:cachedUpdates:=True yaptıktan sonra onupdaterecord'una // ile birşeyler yazınca oluyordu
tquery kullanmayalı uzun zaman oldu
ben artık ibquery kullanıyorum.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Oracle'da bir tablom var. Şahıs özetlerinin tutulduğu. Ben projeyi kullanan şahsın şubesine göre sadece kendi şubesinin özet kayıtlarını görsün diye bir Query kullanıyorum. Ancak kullanıcı bunu sadece görmeyecek, aynı zamanda güncelleyecek veya şubesinin girdiği kayıt yoksa buraya kayıt girebilecek.
Yani benim bir tane DbMemo'm var ve bu da SAHIS_OZET tablosunun açıklama alanına bağlı. Şahıs kaydı geldiğinde detail tablo gibi kullandığım bu Query'den o şahsın (yalnızca kendi şubesi tarafından girilen) özet alanını görebiliyor. Ama Post deyince bu 'read only' hatasını alıyorum.
Query1.post yazıyorum. (Yanlış mı yazıyorum acaba ?? )
Yani benim bir tane DbMemo'm var ve bu da SAHIS_OZET tablosunun açıklama alanına bağlı. Şahıs kaydı geldiğinde detail tablo gibi kullandığım bu Query'den o şahsın (yalnızca kendi şubesi tarafından girilen) özet alanını görebiliyor. Ama Post deyince bu 'read only' hatasını alıyorum.
Query1.post yazıyorum. (Yanlış mı yazıyorum acaba ?? )
Merhaba ,
TQuery nin RequestLive özelliğini TRUE yapmayı denediniz mi?
TQuery ile VT de SQL kullanmadan tablo kullanır gibi değişiklik yapmak için POST edebilmek için mutlaka REquestLive özelliğini TRUE yapmalısınız. iyi çalışmalar.
TQuery nin RequestLive özelliğini TRUE yapmayı denediniz mi?
TQuery ile VT de SQL kullanmadan tablo kullanır gibi değişiklik yapmak için POST edebilmek için mutlaka REquestLive özelliğini TRUE yapmalısınız. iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
@vkamadan in söylediğine ilaveten cachedUpdates kullanıyorsan (üzeinde F1 yaparsan daha detaylı kullanımını görebilirsin, ben kısa bir örnek veriyorum);
yapmalısın.. cachedUpdates olayı gereklı mi bilemiyorum 
Kod: Tümünü seç
procedure TForm1.DetailBeforeClose(DataSet: TDataSet);
begin
if Master.UpdatesPending or Detail.UpdatesPending then
if Master.UpdateStatus = usInserted then
Database1.ApplyUpdates([Master, Detail])
else
Database1.ApplyUpdates([Detail, Master]);
end;

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
vkamadan ve rsimsek abilerime teşekkür ederim. RequestLive özelliğini TRUE yaptım ve ApplyUpdates yaptım oldu. cachedUpdates olayı gerekli değilmiş, ben yanlış biliyormuşum. İlgilenen herkese çok teşekkürler.
Bu teşekkür mesajını yazdıktan sonra tekrar 'Table is read only ' mesajını alıyorum. En iyisi aşağıda yazdığım soruma yardım ederseniz farklı bir yoldan kayıt girdirmeyi deneyeceğim. TTable nesnesini kullanarak mesela..

En son Kacak tarafından 20 Haz 2005 11:47 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Aynıkonu ile ilgili başka problem,değişkeni queryde kullanım
Veritabanım Oracle. SAHIS tablomda SAHIS_NO alanım var. SAHIS_OZET tablomda da SAHIS_NO(number), OZET(Varchar2 4000)) ve SUBE (char8)alanlarım var.
Personel projeyi çalıştırdığında şifre tablosundan SUBE değerini alıyorum. SUBE değişkenini global tanımladım ve DM içerisinde tanımladım. SAHIS_OZET adında bir Query kullanıyorum. Şahıs geldiğinde ona özeti giren şahsın şubesi tarafından girilen ve şahsa ait özet bilgilerinin görülmesi için Query kullanıyorum;
DM.Q_SAHIS_OZET.cancel;
DM.Q_SAHIS_OZET.Sql.Clear;
DM.Q_SAHIS_OZET.Sql.Add('Select SAHIS_NO,SAHIS_OZET From SAHIS_OZET ');
DM.Q_SAHIS_OZET.Sql.Add('where SUBE_KODU='+CHR(39)+ sube +chr(39)+' and SAHIS_NO='+CHR(39)+dm.T_sahisSAHIS_NO.ASSTRING+CHR(39) );
DM.Q_SAHIS_OZET.Active:=True;
SAHIS tablosunun onSCroll'unda da yukarıdaki procedürü çalıştırıyorum. Ve böylece kaydı görüyorum.
Amacım projenin başında (şifre girerken) aldığım kullanıcının SUBE değişkenine göre Querynin çalışması, otomatikman şahsa ait ve giren kullanıcının şubesi tarafından girilen kaydın gözükmesi. Şahsın kendi şubesi tarafından girilen özet bilgilerine ekleme yapabilmesi, ancak başka bir şube tarafından girilmiş özet bilgisini görememesi. Yani bir şahsın SAHIS_OZET tablosunda birden fazla kaydı olabiliyor.
Parametre kullanmayı bilmiyorum, hep hata ile karşılaştım. Forumda aradım, yine hata yaptım. Yukardaki olayı parametre ile veya daha mantıklı nasıl çözerim.
Yardımlarınız için şimdiden teşekkürler.
Personel projeyi çalıştırdığında şifre tablosundan SUBE değerini alıyorum. SUBE değişkenini global tanımladım ve DM içerisinde tanımladım. SAHIS_OZET adında bir Query kullanıyorum. Şahıs geldiğinde ona özeti giren şahsın şubesi tarafından girilen ve şahsa ait özet bilgilerinin görülmesi için Query kullanıyorum;
DM.Q_SAHIS_OZET.cancel;
DM.Q_SAHIS_OZET.Sql.Clear;
DM.Q_SAHIS_OZET.Sql.Add('Select SAHIS_NO,SAHIS_OZET From SAHIS_OZET ');
DM.Q_SAHIS_OZET.Sql.Add('where SUBE_KODU='+CHR(39)+ sube +chr(39)+' and SAHIS_NO='+CHR(39)+dm.T_sahisSAHIS_NO.ASSTRING+CHR(39) );
DM.Q_SAHIS_OZET.Active:=True;
SAHIS tablosunun onSCroll'unda da yukarıdaki procedürü çalıştırıyorum. Ve böylece kaydı görüyorum.
Amacım projenin başında (şifre girerken) aldığım kullanıcının SUBE değişkenine göre Querynin çalışması, otomatikman şahsa ait ve giren kullanıcının şubesi tarafından girilen kaydın gözükmesi. Şahsın kendi şubesi tarafından girilen özet bilgilerine ekleme yapabilmesi, ancak başka bir şube tarafından girilmiş özet bilgisini görememesi. Yani bir şahsın SAHIS_OZET tablosunda birden fazla kaydı olabiliyor.
Parametre kullanmayı bilmiyorum, hep hata ile karşılaştım. Forumda aradım, yine hata yaptım. Yukardaki olayı parametre ile veya daha mantıklı nasıl çözerim.
Yardımlarınız için şimdiden teşekkürler.
1. Oracle çok daha karmaşık bir veritabanı olduğundan bağlandığınız kullanıcının yetkileri kısıtlanmış sadece select hakkı olabilir
2.
şeklinde parametrik yapabilirsin..

2.
Kod: Tümünü seç
DM.Q_SAHIS_OZET.Close; // cancel; değil!! açık Query ye yeni bir sorgu ekliyemezsın!
DM.Q_SAHIS_OZET.Sql.Clear;
DM.Q_SAHIS_OZET.Sql.Add('Select SAHIS_NO,SAHIS_OZET From SAHIS_OZET ');
DM.Q_SAHIS_OZET.Sql.Add('where SUBE_KODU = '':xSUBE'' and SAHIS_NO = '':xSAHIS_NO'''); // tipleri string olduğundan tırnaklar içinde yazıyoruz.
// şeklinde kullanıp;
DM.Q_SAHIS_OZET.ParamByName('xSUBE').AsString := sube; // : ile başlayan değişkenler dışarıdan verilecek parametrelerdir.
DM.Q_SAHIS_OZET.ParamByName('xSAHIS_NO').AsString := dm.T_sahisSAHIS_NO.ASSTRING;
DM.Q_SAHIS_OZET.Active:=True;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!