dll içinde datamodule kullanan yok mu arkadaşlar
dll içinde datamodule kullanan yok mu arkadaşlar
selam dll içerisinde datamodule kullanmak istiyorum delphi tarafında hazırlıyorum ama ibexpertte deneme yaptığımda Access violation at address 0084E524 in module 'ibexpert.exe'. Read of address 00000038 şeklinde hata veriyor ve ibexpertte datayı kapatma mı yada restore etmemi istiyor acil yardımlarınızı bekliyorum
Merhaba,
DLL içinde her türlü formu sizin create etmeniz gerekir datamodul de buna dahil belki create etmeden kulanmaya çalışıyor olaiblirsiniz bunu kontrol etmenizi öneririm.
DLL içinde her türlü formu sizin create etmeniz gerekir datamodul de buna dahil belki create etmeden kulanmaya çalışıyor olaiblirsiniz bunu kontrol etmenizi öneririm.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Merhaba,
DataModul ünüzün adının DM olduğunu varsayıyorum, datamodülü kullanmak için şu şekilde bir yapı kullanın,
Kolay gelsin.
DataModul ünüzün adının DM olduğunu varsayıyorum, datamodülü kullanmak için şu şekilde bir yapı kullanın,
Kod: Tümünü seç
with TDm.Create(nil) do
begin
try
//yapılacak işlemler
finally
Free;
end;
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
çok sağol datamodulu yükleme problemi kalktı
yalnız küçük bir sorum olacak heralde bu seferde data tipleri tanımlarken sorun yaşıyorum
söyle söyleyim
veritabanında domain tanımladım tarih isminde tipi date seçili
unitte ise funtionum şu şekilde
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;CDECL;EXPORT;
firebird tarafında ise söyle bir tanım yapıyorum.
DECLARE EXTERNAL FUNCTION GECIKME
TIMESTAMP,
TIMESTAMP,
CSTRING(20),
CSTRING(20),
DECIMAL(10,2)
RETURNS DECIMAL(10,2) BY VALUE
ENTRY_POINT 'GECIKME' MODULE_NAME 'KONTROL'
doğruluğunuda denemek için
ibexpertte söyle yazıyorum
select gecikme('17.09.2005 00:00','04.05.2007 00:00','AMME','AYLIK',100)
FROM rdb$database
aslında unit kısmında tdatetime yerine tdate kullanmak istiyorum ama nedense öyle yazıncada yanlış tip diyor mecburen tdatetime kullanıyorum yazdıklarımda bir hata varsa beni yönlendirirsen çok sevinirim.

söyle söyleyim
veritabanında domain tanımladım tarih isminde tipi date seçili
unitte ise funtionum şu şekilde
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;CDECL;EXPORT;
firebird tarafında ise söyle bir tanım yapıyorum.
DECLARE EXTERNAL FUNCTION GECIKME
TIMESTAMP,
TIMESTAMP,
CSTRING(20),
CSTRING(20),
DECIMAL(10,2)
RETURNS DECIMAL(10,2) BY VALUE
ENTRY_POINT 'GECIKME' MODULE_NAME 'KONTROL'
doğruluğunuda denemek için
ibexpertte söyle yazıyorum
select gecikme('17.09.2005 00:00','04.05.2007 00:00','AMME','AYLIK',100)
FROM rdb$database
aslında unit kısmında tdatetime yerine tdate kullanmak istiyorum ama nedense öyle yazıncada yanlış tip diyor mecburen tdatetime kullanıyorum yazdıklarımda bir hata varsa beni yönlendirirsen çok sevinirim.
unit UKONTROL;
interface
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;CDECL;EXPORT;
implementation
uses DateUtils, UDATAKONTROL;
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;
BEGIN
WITH TDATA.Create(NIL) DO
TRY
BEGIN
DATA.SERVER.Connected:=TRUE;
DATA.SERVER_YONETIM.Active:=TRUE;
DATA.TSABIT.Close;
DATA.TSABIT.SelectSQL.Clear;
DATA.TSABIT.SelectSQL.Add('SELECT * FROM SABIT');
DATA.TSABIT.Open;
DATA.TFAIZ.Close;
DATA.TFAIZ.SelectSQL.Clear;
DATA.TFAIZ.SelectSQL.Add('SELECT * FROM FAIZ');
DATA.TFAIZ.Open;
DATA.TKANUN.Close;
DATA.TKANUN.SelectSQL.Clear;
DATA.TKANUN.SelectSQL.Add('SELECT * FROM KANUN');
DATA.TKANUN.Open;
DATA.TGECIKME.Close;
DATA.TGECIKME.SelectSQL.Clear;
DATA.TGECIKME.SelectSQL.Add('SELECT * FROM GECIKME');
DATA.TGECIKME.Open;
DATA.TKANUN.Close;
DATA.TKANUN.SelectSQL.Clear;
DATA.TKANUN.SelectSQL.Add('SELECT * FROM KANUN');
DATA.TKANUN.Open;
DATA.TTATIL.Close;
DATA.TTATIL.SelectSQL.Clear;
DATA.TTATIL.SelectSQL.Add('SELECT * FROM TATIL');
DATA.TTATIL.Open;
RESULT:=12;
END;
FINALLY
BEGIN
DATA.TSABIT.Close;
DATA.TKANUN.Close;
DATA.TFAIZ.Close;
DATA.TTATIL.Close;
DATA.TGECIKME.Close;
DATA.SERVER.Connected:=FALSE;
FREE;
END;
END;
END;
end.
deneme amaçlı böyle birşey deniyorum UDATAKONTOL datamodulun uniti
ibexpertte çağırınca
Error Message:
----------------------------------------
Access violation at address 0084E524 in module 'ibexpert.exe'. Read of address 00000038
böyle bir hata veriyor yine
nasıl yapmalı çıkamdım işin içinden
interface
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;CDECL;EXPORT;
implementation
uses DateUtils, UDATAKONTROL;
FUNCTION GECIKME(SON,TAHSIL:TDateTime;KANUN,UYGULAMA:PChar;TUTAR:Currency):Currency;
BEGIN
WITH TDATA.Create(NIL) DO
TRY
BEGIN
DATA.SERVER.Connected:=TRUE;
DATA.SERVER_YONETIM.Active:=TRUE;
DATA.TSABIT.Close;
DATA.TSABIT.SelectSQL.Clear;
DATA.TSABIT.SelectSQL.Add('SELECT * FROM SABIT');
DATA.TSABIT.Open;
DATA.TFAIZ.Close;
DATA.TFAIZ.SelectSQL.Clear;
DATA.TFAIZ.SelectSQL.Add('SELECT * FROM FAIZ');
DATA.TFAIZ.Open;
DATA.TKANUN.Close;
DATA.TKANUN.SelectSQL.Clear;
DATA.TKANUN.SelectSQL.Add('SELECT * FROM KANUN');
DATA.TKANUN.Open;
DATA.TGECIKME.Close;
DATA.TGECIKME.SelectSQL.Clear;
DATA.TGECIKME.SelectSQL.Add('SELECT * FROM GECIKME');
DATA.TGECIKME.Open;
DATA.TKANUN.Close;
DATA.TKANUN.SelectSQL.Clear;
DATA.TKANUN.SelectSQL.Add('SELECT * FROM KANUN');
DATA.TKANUN.Open;
DATA.TTATIL.Close;
DATA.TTATIL.SelectSQL.Clear;
DATA.TTATIL.SelectSQL.Add('SELECT * FROM TATIL');
DATA.TTATIL.Open;
RESULT:=12;
END;
FINALLY
BEGIN
DATA.TSABIT.Close;
DATA.TKANUN.Close;
DATA.TFAIZ.Close;
DATA.TTATIL.Close;
DATA.TGECIKME.Close;
DATA.SERVER.Connected:=FALSE;
FREE;
END;
END;
END;
end.
deneme amaçlı böyle birşey deniyorum UDATAKONTOL datamodulun uniti
ibexpertte çağırınca
Error Message:
----------------------------------------
Access violation at address 0084E524 in module 'ibexpert.exe'. Read of address 00000038
böyle bir hata veriyor yine
nasıl yapmalı çıkamdım işin içinden