UDF'yi Procedure içinde kullanamıyorum :( - çözüldü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

UDF'yi Procedure içinde kullanamıyorum :( - çözüldü

Mesaj gönderen huseyinkucuk »

UDF'de kullanmak için yazdığım dll kodu şöyle;

Kod: Tümünü seç

unit Unit1;

interface
function Topla(var i,j:integer):integer;cdecl;export;
function StrUzunlugu(STR:pchar):integer;cdecl;export;

implementation
function Topla(var i,j:integer):integer;
begin
  result:=i+j;
end;

function StrUzunlugu(STR:pchar):integer;
begin
  result:=Length(STR);
end;

end.

Kod: Tümünü seç

library UDF_Dosyam;
uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas';

{$R *.res}

  exports Topla, StrUzunlugu;

begin
end.
bu dll dosyasını (UDF_Dosyam.dll) "C:\Program Files\Firebird\Firebird_1_5\UDF" klasörüne kaydettikten sonra ibexpertte şunları yazdım:

Kod: Tümünü seç

declare external function UDFEM
integer,
integer
returns integer by value
entry_point 'topla' module_name 'UDF_Dosyam'
ve sonra da "UDFEM" adındaki bu udfyi kullanmak için şöyle bir prosedür yazdım:

Kod: Tümünü seç

create procedure UDF_DENEME(a integer, b integer)
returns(toplam integer)
as
declare variable sayi integer;
begin
   toplam=udfem(:a,:b);
end;
bu prosedürü commit ederken şu hatayı verdi ve commit olmadı:

Kod: Tümünü seç

Cannot commit transaction:
Invalid token.
invalid request BLR at offset 54.
function UDFEM is not defined.
module name or entrypoint could not be found.
Prosedürü commit edene kadar herhangi bir hata yok, UDF de sol taraftaki database explorerde görünür hale geliyor... Hatta yazmaya başlandığında otomatik tamamlanır hale geliyor... Ama prosedürü commit ederken bu hatayı veriyor? Sebebi ne olabilir? Yardım ederseniz çok sevinicem... Şimdiden teşekkür ederim, herkese kolay gelsin...
En son huseyinkucuk tarafından 05 May 2007 11:52 tarihinde düzenlendi, toplamda 3 kere düzenlendi.
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Mesaj gönderen Lost Soul »

function NEW_UDF is not defined.


yukarıdaki kodlardan birisinde NEW_UDF tenımlaması görmedim.
ondan dolayı olabilir mi acaba
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen huseyinkucuk »

özür dilerim... New_UDF değil udfem olucaktı... Başka bir deneme yapmıştım da, onun kodu kalmış... udfem diye tanımlamama rağmen yine de "udfem is not defined" diyor... Çözemedim bir türlü...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen huseyinkucuk »

Arkadaşlar, firebird 2.0'ı kurdum, problem düzeldi... Nedense 1.5'da olmamıştı, ama 2.0'da herhangi bir hata çıkmadı (en azından şimdilik çıkmadı, daha kompleks örneklere geçmedim)... Herkese iyi çalışmalar...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Cevapla