[fpc-pascal] UIB on Linux X86_64

Lukas Gradl fpc at ssn.at
Tue Sep 9 02:10:12 CEST 2008


Another problem occured:

When using UIB with fpc on X86_64 field values are always empty (for 
strings) or 0 (for integers).

For demonstrating the problem I created the following program:
Failes with: FPC 2.3.1 svn, UIB latest svn, Firebird 2.0, OS Ubuntu 8.04 
X86_64
OK with: FPC 2.3.1 svn, UIB latest svn, Firebird 2.0, OS Ubuntu 8.04 i386



program Project1;

{$mode Delphi}{$H+}

uses
   Classes, SysUtils, UIB, UIBLib, UIBDataset;

var IDB: TUIBDataBase;
     ITrans: TUIBTransaction;
     IQuery: TUIBDataSet;

begin
   IDB:=TUIBDataBase.Create(nil);
   ITrans:=TUIBTransaction.Create(nil);
   IQuery:=TUIBDataSet.Create(nil);
   IDB.DatabaseName:='DB.fdb';
   IDB.CharacterSet:=csISO8859_1;
   IDB.LibraryName:='libfbclient.so';
   IDB.UserName:='User';
   IDB.PassWord:='Pass';
   ITrans.DataBase:=IDB;
   ITrans.AutoStart:=false;
   ITrans.AutoStop:=false;
   IDB.Connected:=True;
   ITrans.StartTransaction;
   IQuery.DataBase:=IDB;
   IQuery.Transaction:=ITrans;
   IQuery.SQL.Text:='SELECT "DocID","DocName" FROM "Docs";';
   try
     IQuery.Open;
     IQuery.First;
     while not IQuery.EOF do begin
       Writeln('Line found:'+IQuery.Fields[0].AsString+' 
'+IQuery.Fields[1].AsString);
       IQuery.Next;
     end;
   finally
     if IQuery.Active then IQuery.Close;
     if ITrans.InTransaction then ITrans.RollBack;
     IDB.Connected:=False;
   end;
end.


The DB-definition in Firebird 2.0 is as follows:

CREATE DOMAIN "dm_Key" AS Integer
  DEFAULT 0
  NOT NULL
  CHECK (VALUE>=0)
;
CREATE DOMAIN "dm_TypID" AS Smallint
  DEFAULT 0
  NOT NULL
;
CREATE DOMAIN "dm_Text" AS
VARCHAR(80) CHARACTER SET ISO8859_1
DEFAULT ''
COLLATE DE_DE
;

CREATE TABLE "Docs"(
   "DocID" "dm_Key" DEFAULT 0,
   "DocType" "dm_TypID" DEFAULT 0,
   "DocName" "dm_Text",
   PRIMARY KEY ("DocID")
);

INSERT INTO "Docs" ("DocID","DocType","DocName") VALUES 
(1,2,'DocNameTest');


When executed the output should be:

Line found: 1 DocNameTest


but instead you will get:

Line found: 0


Anyone an idea how to proceed?

regards
Lukas

-- 

--------------------------
software security networks
Lukas Gradl <fpc#ssn.at>
Eduard-Bodem-Gasse 9
A - 6020 Innsbruck
Tel: +43-512-214040-0
Fax: +43-512-214040-21
--------------------------



More information about the fpc-pascal mailing list