Issues writing Interbase XE 64-bit UDFs in Delphi XE2

I am having major issues trying to convert our old UDFs to 64-bit UDFs in Delphi XE2.  The *only* success I have had is in returning a constant value!  
{*****************************************************************}
{code}library SixtyFourUDF;
uses
  SysUtils,
  Classes;

function ReturnFive: Integer; export;
begin
  Result := 5;
end;

Exports
 Return_Five;

begin
end. {code}
{*****************************************************************}


I can't even get a simple multiply function to work.
{*****************************************************************}
{code}...
function MultiplyThis(a, b: Integer): Integer; export;
begin
  Result := a * b;
end;
....{code}
{*****************************************************************}


I especially cannot get some of our existing UDF functions to work.
{*****************************************************************}
{code}...
Function A_Trim(S1 : Pchar): Pchar; cdecl; export;
var
 temp1: string;
begin
 temp1 := trim(Strpas(S1));
 Result :=Pchar(temp1 +'');
end;
....{code}
{*****************************************************************}

Any help would be appreciated.

Thanks,
Daryl
0
Daryl
11/1/2011 3:22:31 PM
embarcadero.interbase.general 923 articles. 0 followers. Follow

18 Replies
874 Views

Similar Articles

[PageSpeed] 57

Daryl Wingo wrote:

> I can't even get a simple multiply function to work.
> {*****************************************************************}
> {code}...
> function MultiplyThis(a, b: Integer): Integer; export;
> begin
>   Result := a * b;
> end;
> ...{code}
> {*****************************************************************}

	This is wrong.

You should pass your args as var, and you need to declare the function
cdecl. The export in your code is obsolete and does nothing. Your code
should be more like:

interface

function MultiplyThis(var a, b: Integer): Integer; cdecl;

implementation

function MultiplyThis(var a, b: Integer): Integer;
begin
  Result := a * b;
end;

exports
  MultiplyThis;

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/1/2011 3:48:39 PM
> {quote:title=Craig Stuntz wrote:}{quote}
> Daryl Wingo wrote:
> 
> > I can't even get a simple multiply function to work.
> > {*****************************************************************}
> > {code}...
> > function MultiplyThis(a, b: Integer): Integer; export;
> > begin
> >   Result := a * b;
> > end;
> > ...{code}
> > {*****************************************************************}
> 
> 	This is wrong.
> 
> You should pass your args as var, and you need to declare the function
> cdecl. The export in your code is obsolete and does nothing. Your code
> should be more like:
> 
> interface
> 
> function MultiplyThis(var a, b: Integer): Integer; cdecl;
> 
> implementation
> 
> function MultiplyThis(var a, b: Integer): Integer;
> begin
>   Result := a * b;
> end;
> 
> exports
>   MultiplyThis;
> 
> -- 
> Craig Stuntz · Vertex Systems Corp. · Columbus, OH
> Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/

Thank you Craig, that solved my simple integer problem.  Now, what is the proper way to handle strings?  The old PChar method just doesn't seem to work properly anymore in 64-bit Interbase.
0
Daryl
11/1/2011 4:13:41 PM
Daryl Wingo wrote:

> Thank you Craig, that solved my simple integer problem.  Now, what is
> the proper way to handle strings?  The old PChar method just doesn't
> seem to work properly anymore in 64-bit Interbase.

	I wrote an article on this years ago. The code there should still
work. Google Stuntz+UDF to find it.

	Having said that, I haven't tried it in 64 bit. But you should at
least start with something for 32 bit IB!

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/1/2011 4:19:13 PM
> {quote:title=Craig Stuntz wrote:}{quote}
> Daryl Wingo wrote:
> 
> > Thank you Craig, that solved my simple integer problem.  Now, what is
> > the proper way to handle strings?  The old PChar method just doesn't
> > seem to work properly anymore in 64-bit Interbase.
> 
> 	I wrote an article on this years ago. The code there should still
> work. Google Stuntz+UDF to find it.
> 
> 	Having said that, I haven't tried it in 64 bit. But you should at
> least start with something for 32 bit IB!
> 
> -- 
> Craig Stuntz · Vertex Systems Corp. · Columbus, OH
> Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/

I think your problem here is more general than just UDFs - since Delphi went Unicode, PChar is actually PWideChar rather than PAnsiChar as it used to be. If you declare your values explicitly as PAnsiChar the code should work - I have done this in 32-bit and 64-bit UDFs with no problem.

Graham
0
Graham
11/2/2011 9:19:23 AM
Hi,

I have read your update to "Writing clean and safe UDFs in Delphi" by 
Gregory H. Deatz
(3130 - Building UDF Libraries)

I don't get the "create output result" section right.

This function (Itl_GetRandomStr) calls an ordinary Delphi function 
(IcGlobal.GetRandomStr) that create a random string as result.
I'm trying to cast this string to PChar. But I don't get it right. Can you 
help me? I', using Delphi XE.



unit StrFncs;
interface
uses Windows, SysUtils, Classes;
function Itl_GetRandomStr(var szChars:Integer; var szSource, szRes: PChar): 
PChar; cdecl;
implementation
    uses IcGlobal;
function Itl_GetRandomStr(var szChars:Integer; var szSource, szRes: PChar): 
PChar; cdecl;
var
  sTemp:String;
  sOutput: PChar;
  Dest: PChar;
  l: Integer;
begin
// Init
    Result:=szRes;
//Validate
  try
    l:=szChars;
    sTemp:=IntToStr(l);
  except
    l:=0;
  end;
// Do some work
   if (szSource <> '') then begin
     sOutput:=PChar(IcGlobal.GetRandomStr(l,szSource));
   end
   else begin
     sOutput:=PChar(IcGlobal.GetRandomStr(l));
   end;
// create output result
  while ( sOutput^ <> #0 )  do begin
    szRes^ := sOutput^;
    { Increment pointers to next character }
    Inc(sOutput);
    Inc(szRes);
  end;
  { Terminate result string }
     szRes^:=#0;
end;



"Craig Stuntz"  skrev i meddelandet news:415900@forums.embarcadero.com...

Daryl Wingo wrote:

> Thank you Craig, that solved my simple integer problem.  Now, what is
> the proper way to handle strings?  The old PChar method just doesn't
> seem to work properly anymore in 64-bit Interbase.

I wrote an article on this years ago. The code there should still
work. Google Stuntz+UDF to find it.

Having said that, I haven't tried it in 64 bit. But you should at
least start with something for 32 bit IB!

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Mikael
11/2/2011 1:53:02 PM
Mikael Nilsson wrote:

> This function (Itl_GetRandomStr) calls an ordinary Delphi function 
> (IcGlobal.GetRandomStr) that create a random string as result.
> I'm trying to cast this string to PChar. But I don't get it right.
> Can you help me? I', using Delphi XE.

	I'm not sure what your question is, but do read Graham's reply in this
thread regarding PChar -- it may not be what you want if your IB DB is
not in a Unicode charset	.

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/2/2011 1:59:42 PM
When I changed PChar to PAnsiChar it abends.
Before I got an empty string as result.

My database is not Unicode charset. But for now I'm only testing the dll. 
That is calling the Itl_GetRandomStr from a delphi program just to see if 
the logic works.
When it does I'll test it as a udf.

/Mikael
0
Mikael
11/2/2011 2:09:18 PM
Do i have to write different UDFs depending on if my database is Unicode or 
not?

/Mikael

"Craig Stuntz"  skrev i meddelandet news:416148@forums.embarcadero.com...

Mikael Nilsson wrote:

> This function (Itl_GetRandomStr) calls an ordinary Delphi function
> (IcGlobal.GetRandomStr) that create a random string as result.
> I'm trying to cast this string to PChar. But I don't get it right.
> Can you help me? I', using Delphi XE.

I'm not sure what your question is, but do read Graham's reply in this
thread regarding PChar -- it may not be what you want if your IB DB is
not in a Unicode charset .

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Mikael
11/2/2011 2:52:32 PM
Mikael Nilsson wrote:

> Do i have to write different UDFs depending on if my database is
> Unicode or not?

	Probably. The function argument types are different. They're just
pointers, so you *might* be able to make one function work, but it
would need to "know" what encoding was passed; it can't be inferred
from content, usually. Multiple functions seems easier/less confusing
to me.

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/2/2011 3:07:18 PM
> {quote:title=Graham Neden-Watts wrote:}{quote}
> > {quote:title=Craig Stuntz wrote:}{quote}
> > Daryl Wingo wrote:
> > 
> > > Thank you Craig, that solved my simple integer problem.  Now, what is
> > > the proper way to handle strings?  The old PChar method just doesn't
> > > seem to work properly anymore in 64-bit Interbase.
> > 
> > 	I wrote an article on this years ago. The code there should still
> > work. Google Stuntz+UDF to find it.
> > 
> > 	Having said that, I haven't tried it in 64 bit. But you should at
> > least start with something for 32 bit IB!
> > 
> > -- 
> > Craig Stuntz · Vertex Systems Corp. · Columbus, OH
> > Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
> 
> I think your problem here is more general than just UDFs - since Delphi went Unicode, PChar is actually PWideChar rather than PAnsiChar as it used to be. If you declare your values explicitly as PAnsiChar the code should work - I have done this in 32-bit and 64-bit UDFs with no problem.
> 
> Graham

I was finally able to get a Interbase XE 64-bit UDF to work in Delphi XE2, thanks in large part to you gentlemens' help!

The following things helped in my case:
1) PAnsiChar, instead of PChar
2) AnsiString instead of String
3) var parameters for native datatypes
4) ib_util_malloc, using ib_util64.dll

Here is my simple trim function for those interested:

{code}library MyUDFLib;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

function ib_util_malloc(l: integer): pointer; cdecl; external 'ib_util64.dll';

function TrimThis(sz: PAnsiChar): PAnsiChar; cdecl;
var
  szLen: Integer;
  s: AnsiString;
begin
  s := Trim(StrPas(sz));
  szLen := Length(s) + 1;
  Result := ib_util_malloc(szLen);
  StrPCopy(Result, s);
end;

exports
  TrimThis;

begin
  IsMultiThread := True;
end.{code}

Thanks again guys,
Daryl
0
Daryl
11/2/2011 3:50:54 PM
ok but can you help me writing the output part for UDFs with string as 
Result?



"Craig Stuntz"  skrev i meddelandet news:416174@forums.embarcadero.com...

Mikael Nilsson wrote:

> Do i have to write different UDFs depending on if my database is
> Unicode or not?

Probably. The function argument types are different. They're just
pointers, so you *might* be able to make one function work, but it
would need to "know" what encoding was passed; it can't be inferred
from content, usually. Multiple functions seems easier/less confusing
to me.

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Mikael
11/2/2011 4:21:13 PM
Mikael Nilsson wrote:

> ok but can you help me writing the output part for UDFs with string
> as Result?

	I don't understand the question.

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/2/2011 4:27:24 PM
> {quote:title=Mikael Nilsson wrote:}{quote}
> ok but can you help me writing the output part for UDFs with string as 
> Result?
> 
> 
> 
> "Craig Stuntz"  skrev i meddelandet news:416174@forums.embarcadero.com...
> 
> Mikael Nilsson wrote:
> 
> > Do i have to write different UDFs depending on if my database is
> > Unicode or not?
> 
> Probably. The function argument types are different. They're just
> pointers, so you *might* be able to make one function work, but it
> would need to "know" what encoding was passed; it can't be inferred
> from content, usually. Multiple functions seems easier/less confusing
> to me.
> 
> -- 
> Craig Stuntz · Vertex Systems Corp. · Columbus, OH
> Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/

Make sure that s is an AnsiString, and try this:

{code}...
  Result := ib_util_malloc(szLen);
  StrPCopy(Result, s);
....{code}

Edited by: Daryl Wingo on Nov 2, 2011 9:30 AM
0
Daryl
11/2/2011 4:30:29 PM
This teknik witk Pchar don't work with Unicode version of delphi.
Can you give an example of a udf that work with unicode.  (And the result 
shall be a string page 4 of 17 in your document)

And you probebly need to update that document again (for unicode)



// create output result
  while ( sOutput^ <> #0 )  do begin
    szRes^ := sOutput^;
    { Increment pointers to next character }
    Inc(sOutput);
    Inc(szRes);
  end;
  { Terminate result string }
     szRes^:=#0;

/Mikael
0
Mikael
11/3/2011 8:18:49 AM
Mikael Nilsson wrote:

> This teknik witk Pchar don't work with Unicode version of delphi.
> Can you give an example of a udf that work with unicode.  (And the
> result shall be a string page 4 of 17 in your document)

	You should start with a Delphi function which works, before attempting
to put it in a UDF.

> And you probebly need to update that document again (for unicode)

	It's out of date, yes, being many years old, but I don't work for
Embarcadero, and don't have the time to do it now.

-- 
Craig Stuntz · Vertex Systems Corp. · Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
0
Craig
11/3/2011 12:21:26 PM
Hi

can you help me?
how do write that udf for 32bit interbase in the best way?


"Daryl Wingo" skrev i meddelandet news:416203@forums.embarcadero.com...

> {quote:title=Graham Neden-Watts wrote:}{quote}
> > {quote:title=Craig Stuntz wrote:}{quote}
> > Daryl Wingo wrote:
> >
> > > Thank you Craig, that solved my simple integer problem.  Now, what is
> > > the proper way to handle strings?  The old PChar method just doesn't
> > > seem to work properly anymore in 64-bit Interbase.
> >
> > I wrote an article on this years ago. The code there should still
> > work. Google Stuntz+UDF to find it.
> >
> > Having said that, I haven't tried it in 64 bit. But you should at
> > least start with something for 32 bit IB!
> >
> > -- 
> > Craig Stuntz · Vertex Systems Corp. · Columbus, OH
> > Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz/
>
> I think your problem here is more general than just UDFs - since Delphi 
> went Unicode, PChar is actually PWideChar rather than PAnsiChar as it used 
> to be. If you declare your values explicitly as PAnsiChar the code should 
> work - I have done this in 32-bit and 64-bit UDFs with no problem.
>
> Graham

I was finally able to get a Interbase XE 64-bit UDF to work in Delphi XE2, 
thanks in large part to you gentlemens' help!

The following things helped in my case:
1) PAnsiChar, instead of PChar
2) AnsiString instead of String
3) var parameters for native datatypes
4) ib_util_malloc, using ib_util64.dll

Here is my simple trim function for those interested:

{code}library MyUDFLib;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

function ib_util_malloc(l: integer): pointer; cdecl; external 
'ib_util64.dll';

function TrimThis(sz: PAnsiChar): PAnsiChar; cdecl;
var
  szLen: Integer;
  s: AnsiString;
begin
  s := Trim(StrPas(sz));
  szLen := Length(s) + 1;
  Result := ib_util_malloc(szLen);
  StrPCopy(Result, s);
end;

exports
  TrimThis;

begin
  IsMultiThread := True;
end.{code}

Thanks again guys,
Daryl
0
Mikael
11/3/2011 4:19:07 PM
If you use ib_util.dll instead of ib_util64.dll, and use PChar instead of PAnsiChar, you should be okay.
0
Daryl
11/3/2011 4:23:05 PM
Dou need to specify Free_it?

"Daryl Wingo" skrev i meddelandet news:416579@forums.embarcadero.com...

If you use ib_util.dll instead of ib_util64.dll, and use PChar instead of 
PAnsiChar, you should be okay.
0
Mikael
11/4/2011 7:40:44 AM
Reply:

Similar Artilces:

Using Delphi XE2 to write a 64-bit UDF with BLOBs
Hello, We are upgrading a product to Interbase XE (x64) and we use a UDF with BLOBs (written in Delphi). Previously (in x86 land) we have used the TBlob definition in IBExternals to allow GetSegment and PutSegment with blobs in the UDF, but in this causes an AV when we build a the UDF as a Win64 DLL in Delphi XE2 for Interbase XE (64-bit on Win7 Pro). All the other UDF functions work correctly. The TBlob definition from XE2 is below - what is wrong? Regards, Graham TISC_BlobGetSegment = function(BlobHandle: PInt; Buffer: PByte; ...

Interbase XE 32 bits on windows 64 bits
I have my database which was built with Interbase XE 32 bits. Can it run with no problem if I install it on a computer with windows 64 bits and Interbase XE 64 bits? EKPINI Arsene Mamert wrote: > I have my database which was built with Interbase XE 32 bits. Can it run > with no problem if I install it on a computer with windows 64 bits and > Interbase XE 64 bits? Yes the .ib/gdb file does not care if the server using it is 32 or 64 bit. The DB itself is bit neutral. UDF dlls though will need to match the bitness of the server. -- Jeff Overcash (TeamB) ...

Bug in Interbase XE 32 bits Update 3 on Windows 64 bits platform
Hi, On Interbase XE 32 bits Update 3 (WI.10.0.3.566) on 64 bits Windows platforms. If you have a big VARCHAR field (like VARCHAR(4096)) in a table and for exemple read this table row by row with the same query that you prepare only on the first time you execute it, IB return no record half the time ! _*To reproduce the bug :*_ *1 - Create a simple DB with the folowing SQL script :* SET SQL DIALECT 3; SET NAMES ISO8859_1; CREATE DATABASE 'C:\Temp\IBBugPrepare.GDB' USER 'SYSDBA' PASSWORD 'masterkey' PAGE_SIZE 4096 DEFAULT CHARACTER SE...

Interbase XE3 and Interbase XE
On Embarcadero online shop I see there is the *Interbase XE3 server* and the *Interbase XE server*. What's the difference? Maybe one is 64 bit and the other 32 bit? Thank yow. Roberto Colpani wrote: > On Embarcadero online shop I see there is the *Interbase XE3 server* and the *Interbase XE server*. What's the difference? Maybe one is 64 bit and the other 32 bit? > Thank yow. XE3 is the latest version, XE is the version before it. Both come in both 32 and 64 bit. -- Jeff Overcash (TeamB) (Please do not email me directly unless asked. Thank You) And so I ...

Setting Page Buffers in Interbase XE 64-bit
We have a Interbase XE 64-bit server with 8Gig of ram. We will be running only a single database on this server, using a page size of 16K. I see in the documentation that the maximum page buffers for 64-bit XE appears to be 75 million pages. (up from 750,000 in previous editions). If we want to use a large amount of ram, say 4 gig for page buffers, could we set the page buffers at 262144? (i.e. page buffers 262144 * page size 16384 = 4gigabytes) Is there some other system limitation that would prevent this? I saw that there used to be CPU problems with setting the page buffers up to...

InterBase XE 64 bit edition now available!
Seems like a major milestone to me that we have finally delivered a 64 bit version! The trial and developer editions are available for download. Note that InterBase XE developer edition serial numbers work for both 32 bit and 64 bit. These serial numbers come with multiple registrations. InterBase XE trial edition comes with separate serial numbers for 32 bit and 64 bit editions as trials only allow for 1 registration. New or upgrade purchasers of InterBase XE get 1 serial number which can be used with either the 32 bit or 64 bit edition, both of which are included with your...

UDF date functions in Interbase XE3 64-bit
I'm having trouble with date UDF functions in Interbase XE3 64-bit. We have used the 32-bit version of FreeUDFLib.dll for years, and I'm trying to get all of the functions working on 64-bit. I have replaced all PChar with PAnsiChar, etc. to make the string functions such as Upper() work. These all work fine, except when I add a date function to the export section, such as AddMonth(), which takes a parameter of type PISC_QUAD. It compiles just fine, but when I try to use it it gives me the error: Invalid token. invalid request BLR at offset 59. function F_ADDMONT...

Has anyone used 64-bit ODBC Driver with Interbase XE
Have seen a few people refer to the possibility of using a 64-bit ODBC driver (such as the Easysoft driver) with Interbase XE. Am interested to know if anyone here has actually used this or another 64 bit driver and what the results were. (Performance gains, recoding needed if any, etc...) (The only other 64-bit ODBC driver I'm aware of is the one for Firebird and haven't used that yet either.) Any comments appreciated, Thanks, Dale Gunter Dale Gunter wrote: > Have seen a few people refer to the possibility of using a 64-bit ODBC driver (such as the Easysoft driver) ...

32 bit Service
Hi, I'm trying to get my 32 bit Service interact with Interbase 64 bit. The installation suucceded. But when i start the Service I got the following error. What have I missed? Faulting application name: StoreXMLtrlog.exe, version: 1.0.0.0, time stamp: 0x4f338fab Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e211319 Exception code: 0x0eedfade Fault offset: 0x0000b9bc Faulting process id: 0x1294 Faulting application start time: 0x01cce7104d829c00 Faulting application path: E:\Project\Prod\FIBwwd\Batch\Program\StoreXMLtrlog.exe Faulti...

Backup-Restore needed when migrating from Interbase 2009 to XE 64-bit? [Edit]
Hi, We want to migrate our database from Interbase 2009 to Interbase XE 64-bit. I have noticed that Interbase XE can connect directly to the file from Interbase 2009 (without backup-restore), but would anyone advice us not to do that? The reason why it would be nice not to have to do backup-restore is 1) that the size of the database grows from around 27 GB to around 34 GB, and 2) the time we have to take down the system for doing this (around 12h) (BTW, it was necessary to run the readmeta.sql found in examples\security in order to be able to get a working DB-file after the backu...

Interbase XE Connection from PHP 5.3 ibase_connect on Linux 64 Bit
Hello, we trying to connect from a Linux 64 bit maschine via PHP 5.3 ibase_connect to an external Interbase XE Server. A connection isn't possible. Username and password are wrong the server replies. But they are correct on the Interbase Server. What have we to do to connect to the server? Mike Schaller wrote: > we trying to connect from a Linux 64 bit maschine via PHP 5.3 ibase_connect to an external Interbase XE Server. > A connection isn't possible. Username and password are wrong the server replies. But they are correct on the Interbase Server. Look to see what...

InterBase XE 64 Bit server crashes on some SQL statements
Testing InterBase XE 64 Bit on a Windows 2008 64 bit system, from a Delphi client on Windows 7 (64 bit) and Windows 2000 (32 bit), I found that some SQL statements always caused the server to terminate. Example: TSSQLSVR (Server) Wed Dec 15 14:08:34 2010 SELECT POS_TEXT FROM LOADLIST_RECH_POS WHERE FK_SQLNR=? AND FK_POSTENART=? Access violation. The code attempted to access a virtual address without privilege to do so. This exception will cause the InterBase server to terminate abnormally. DDL is: CREATE TABLE LOADLIST_RECH_POS ( LOADLIST_RECH_POS_ID...

Interbase server name in Interbase XE
I am trying in code to get connected to Interbase XE. To do so , I used to the following in C++ Builder XE : //User creation in Interbase myIBSecurity->ServerName = "Local Server"; myIBSecurity->LoginPrompt = false; myIBSecurity->Params->Add("User_Name=JBOIVIN"); myIBSecurity->Params->Add("password=JBOIVIN"); myIBSecurity->Active = true; where myIBSecurity is an instance of TIBSecurityService. This code is giving me an error message, it cannot find the server name "Local Server". In Interba...

IBX (Delphi XE), Interbase XE and character set UTF8
Hello, I'm trying to get Interbase and IBX running with an UTF8 database. I'm using Delphi XE and Interbase XE. I'm creating the database like this: var aIBDatabase: TIBDatabase; ... aIBDatabase.DatabaseName := 'test_utf8.ib' aIBDatabase.Params.Clear; aIBDatabase.Params.Add('PAGE_SIZE 4096'); aIBDatabase.Params.Add('DEFAULT CHARACTER SET utf8'); aIBDatabase.CreateDatabase; The fields in the tables were created as VARCHAR. The database really seems to use character set utf8, because with IBExpert I'm able to set and r...

Web resources about - Issues writing Interbase XE 64-bit UDFs in Delphi XE2 - embarcadero.interbase.general

Multiversion concurrency control - Wikipedia, the free encyclopedia
For instance, a database will implement updates not by deleting an old piece of data and overwriting it with a new one, but instead by marking ...

Open core is not open source
Julie Bort of Networkworld.com has an interview with Mårten Mickos of Eucalyptus , formerly of MySQL. In MySQL times it seemed (to me at least) ...

Almico's Home Page
... my interests and soon. I use to program using Delphi. Anyway: several projects of mine are developedunder Linux using PHP, PostgreSQL, Interbase ...

Sun balances acquisition, innovation
Sun Microsystems tries to make clear at its two-day annual analyst conference that innovation paysyet much of the company's biggest plans today ...

Free Trials - Embarcadero Technologies
Advanced software tools for application developers and database professionals. Cross-platform solutions for database design, development and ...

Phillipe Kahn
Phillipe Kahn

license-discuss@opensource.org: Threads for May 2005
... May 2005 [2] unsubscribe me [3] Open Software License [3] unsubscribe me please [7] Re: License Wizard [5] For thoughts: fair license [1] InterBase ...

Welcome to dbase
Cust_Ser_Tech_Support web site

DB-Engines Ranking - popularity ranking of database management systems
English Deutsch Knowledge Base of Relational and NoSQL Database Management Systems provided by solid IT Home - DB-Engines Ranking - Systems - ...

DBF Commander Version History
History of DBF Commander - new DBF tools, DBF editor improvements, and bug fixes

Resources last updated: 12/10/2015 11:42:37 PM