Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread Possible to write external functions in C ?
Wed, Feb 17 2010 3:40 AMPermanent Link

Luk
Hi,

I'm evaluating this great product.
Is it possible to write external functions using c ? Where can I find examples of it ?

Thanks.

Luk
Wed, Feb 17 2010 12:29 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Luk,

<< I'm evaluating this great product. Is it possible to write external
functions using c ? Where can I find examples of it ?  >>

Are you using C++Builder, or another C/C++ compiler ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Feb 17 2010 2:07 PMPermanent Link

Luk
"Tim Young [Elevate Software]" wrote:

Luk,

<< I'm evaluating this great product. Is it possible to write external
functions using c ? Where can I find examples of it ?  >>

Are you using C++Builder, or another C/C++ compiler ?

I'm using Microsoft Visual C++.

--
Tim Young
Elevate Software
www.elevatesoft.com
Thu, Feb 18 2010 12:15 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Luk,

<< I'm using Microsoft Visual C++. >>

Hmm, it's going to be a bit difficult to do since the parameter handling
relies on some internal ElevateDB objects in Delphi code to parse and handle
incoming and outgoing binary parameter streams.

The actual call interface is fairly simple (sorry, in Object Pascal):

  function ValidateEDBModule(ModuleType: Integer): Boolean; stdcall;
  function OpenEDBModule(var ModuleHandle: Integer): Boolean; stdcall;
  function CallEDBRoutine(ModuleHandle: Integer;
                          RoutineName: pEDBChar;
                          ParamData: Pointer;
                          ParamDataSize: Integer): Boolean; stdcall;
  function GetEDBOutputParams(ModuleHandle: Integer;
                              ParamData: Pointer;
                              var ParamDataSize: Integer): Boolean;
stdcall;
  function GetEDBModuleErrorMsg(ModuleHandle: Integer;
                                ErrorMsg: pEDBChar;
                                var ErrorMsgLength: Integer): Boolean;
stdcall;
  function CloseEDBModule(ModuleHandle: Integer): Boolean; stdcall;

But again, the problem is with the parameter handling.  It won't be
something that can be done right away, but I can certainly see about
creating a DLL for MSVC developers that will handle this for you, thus
allowing you to simply load a DLL and make some simple calls.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Feb 18 2010 2:05 PMPermanent Link

Luk
Tim,

<Hmm, it's going to be a bit difficult to do since the parameter handling
relies on some internal ElevateDB objects in Delphi code to parse and handle
incoming and outgoing binary parameter streams.>

Are all files needed to create an external function using Delphi included in the DAC version ?
If so, I can ask a colleague to do this. (using Delphi 2006).

<... but I can certainly see about
creating a DLL for MSVC developers that will handle this for you, thus
allowing you to simply load a DLL and make some simple calls.>

This would be very cool ! When might this dll be expected ?

Thanks a lot.

Luk
Thu, Feb 18 2010 5:33 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Luk,

<< Are all files needed to create an external function using Delphi included
in the DAC version ? >>

No, you need the VCL version in order to compile them.  However, as long as
your external module isn't doing any actual database access, then you can
just use the EDB-VCL-TRIAL version to compile the external module.  The
module templates and everything else are automatically installed into the
IDE for you.

Just use your normal user ID and password to login to the Trial Downloads
area here:

http://www.elevatesoft.com/download?action=login

and then you can download the EDB-VCL-TRIAL download.

<<This would be very cool ! When might this dll be expected ? >>

That's at least a couple of months away.  It's somewhat involved due to
call-level differences and having to produce the proper import libraries,
etc.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Feb 18 2010 5:35 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Luk,

I forgot to ask - are you using the .NET Data Provider ?  If so, then
something that is much closer to implementation and might be more valuable
for you is the addition of the ability to use .NET assemblies as external
modules instead of straight-up Win32 DLLs.  That feature will be in 2.04,
which is also at least a month or so away, but is a definite for inclusion.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Feb 19 2010 4:33 AMPermanent Link

Luk
Tim,

I'm not using the .NET Data Provider. (using Powerbuilder + ODBC)

<That's at least a couple of months away.  It's somewhat involved due to
call-level differences and having to produce the proper import libraries,
etc.>
Will this feature be added (before the end of this year) ?

Thanks.

Luk
Fri, Feb 19 2010 4:27 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Luk,

<< I'm not using the .NET Data Provider. (using Powerbuilder + ODBC) >>

Ahh.

<< Will this feature be added (before the end of this year) ?  >>

Probably.  I have to come up with a mini-API for C/C++ that will allow you
to retrieve the parameters, and apart from that, the rest is easy.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image