iyi çalışmalar;
delphi 2006+postgres 8.2 + zeos 6.6.1 DBO kullanarak bir uygulama üzerinde çalışmaktayım. Yazdığım bir trigger ile tabloda bazı alanlara yeni değerlerini update ile setliyorum. yazdığım trigger row before insert şeklinde çalışmakta. trigger ile setlediğim değerleri delphi içerisinde görmek için refresh, close-open, bookmark gibi olayları denememe rağmen henüz sonuç elde edemedim. ZeosConnection için bir ayarlama mı yapılmalı veya query için bir ayarlama mı yapılmalı trigger eventını after olarak değiştirdim yine aynı sonuç. Trigger ile setlediğim yeni değerleri delphi içerisinde nasıl görebilirim.
Saygılar;
zeosta refresh işlemi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ahmet_sinav
- Üye
- Mesajlar: 263
- Kayıt: 17 Nis 2004 07:44
- Konum: İzmir Yeşilyurt Ulu Cami
- İletişim:
- ahmet_sinav
- Üye
- Mesajlar: 263
- Kayıt: 17 Nis 2004 07:44
- Konum: İzmir Yeşilyurt Ulu Cami
- İletişim:
İyi çalışmalar;
Evet close open da bir işe yaramadı. Problemi hala çözemedim. Eğer query'e bağlı bir dbbound component varsa refresh ile görünüyor fakat dbbound olmayan nesnelerde veriyi çekemiyorum.
şeklinde. bu sadece dediğim trigger ile setlediğim alanda çalışmıyor. diğer alanlara veriyi çekerken yukarıdaki code satırında olduğu gibi veriyi çekiyorum problemsiz bir şekilde getiriyor fakat triggerla setlediğim alan hala problemli. trigger çalışmıyor değil gayet güzel bir şekilde istediğim sonucu üretiyor. sıkıntı oluşan değeri delphi tarafına almak.
Saygılar;
Evet close open da bir işe yaramadı. Problemi hala çözemedim. Eğer query'e bağlı bir dbbound component varsa refresh ile görünüyor fakat dbbound olmayan nesnelerde veriyi çekemiyorum.
Kod: Tümünü seç
edt1.text:=zquery1.fieldbyname('alan').AsString;
Saygılar;
query ile ubdate komutunu kullandıkdan sonra execsql;komutunu kullandıkdan sonra
query tekrar close
open yapmalısın.
örnek:
query1.close;
query1.sql.clear;
query1.sql.add('update tablo adı set where ID = :OLD_ID');
query1.execsql;
query1.close;
query1.sql.clear;
query1.sql.add('select* from tablo adı where ID = :OLD_ID');
query1.open;
gibi
query tekrar close
open yapmalısın.
örnek:
query1.close;
query1.sql.clear;
query1.sql.add('update tablo adı set where ID = :OLD_ID');
query1.execsql;
query1.close;
query1.sql.clear;
query1.sql.add('select* from tablo adı where ID = :OLD_ID');
query1.open;
gibi
- ahmet_sinav
- Üye
- Mesajlar: 263
- Kayıt: 17 Nis 2004 07:44
- Konum: İzmir Yeşilyurt Ulu Cami
- İletişim:
- ahmet_sinav
- Üye
- Mesajlar: 263
- Kayıt: 17 Nis 2004 07:44
- Konum: İzmir Yeşilyurt Ulu Cami
- İletişim:
İyi çalışmalar;
Triggerın update ettiği alanlar için şöyle bir proc yazdım işimi gördü.
Saygılar;
Triggerın update ettiği alanlar için şöyle bir proc yazdım işimi gördü.
Kod: Tümünü seç
procedure GetTriggerValues(SqlText:String;VarObj:Array Of TObject);
var
intI:Integer;
begin
qryTmp:=TZQuery.Create(Nil);
qryTmp.Connection:=frmData.PgConn;
qryTmp.SQL.Text:=SqlText;
qryTmp.Open;
if qryTmp.IsEmpty then
begin
showmessage('Veri Bulunamadı');
exit;
end;
for intI:=low(VarObj) to high(VarObj) do
begin
if VarObj[intI] is TEdit then
begin
(VarObj[intI] as TEdit).Text:=qryTmp.Fields[intI].AsString;
end
// else if diğer dbbound olmayan nesneler
end;
end;