UDF_Ismi(String,integer):integer; Sonuç Yanlış Dönüyor :(

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

UDF_Ismi(String,integer):integer; Sonuç Yanlış Dönüyor :(

Mesaj gönderen huseyinkucuk »

Arkadaşlar merhaba...
UDF konusunda bir sıkıntım var.
Umarım yardımcı olabilirsiniz...

Delphide UDF için yazdığım dll dosyası şu şekilde;

Kod: Tümünü seç

unit Unit1;

interface
uses SysUtils, ib_util;

function KategoriBul(HesapNo:Pchar; Kategori:integer):integer;cdecl;export;

implementation

function KategoriBul(HesapNo:Pchar; Kategori:integer):integer;
begin
  result:=strtoint(copy(HesapNo,1,Kategori));
end;

end.

Kod: Tümünü seç

library UDF_DOSYAM;

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

{$R *.res}

exports KategoriBul;
begin
end.
FireBirdde de şu şekilde komut yazarak UDFyi oluşturuyorum:

Kod: Tümünü seç

declare external function Kategori
CString(32767),integer
returns integer by value
entry_point 'KategoriBul' module_name 'UDF_DOSYAM'
Bütün bunlar sonucunda firdbird'de 'Kategori' adında bir UDF oluşuyor...
Bu UDF'yi "Select KategoriBul('12345',2) from RDB$DATABASE" şeklinde SQL editöre yazdığım zaman geriye "12" sayısının dönmesini bekliyor iken "12345" sayısı döndü... Problemi bir türlü çözemedim... Yardımcı olursanız sevinirim.
Herkese iyi çalışmalar...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Cevapla