Is it possible to deploy zero-dll executable that connects to Firebird using dbExprss? If so, how?
Cause I've tried to include
DBXFirebird but the executable always
needs dbxfb.dll.
Thank you all.
Up to Delphi 2006, you can link the dbExpress driver DLLs into your application by including the appropriate unit.
Since Delphi 2007, this is no longer the case, and you have to ship the driver DLL.
Related
My Delphi XE3 application used Interbase components to connect to a Firebird 2.5
SuperServer.
I started a new project to isolate the problem, and tried to connect to my software database. The results follows.
1 - I can connect to the database using TIBDatabase normally.
and I want to deploy it to use embedded Firebird my question is:
can I use Interbase components to connect to a embedded Firebird?
if yes then how can i do it?
if not then is there any free Firebird components?
While Interbase and Firebird are sill almost compatible API-wise, I recall some have reported having problems when using IB components (which come with Delphi) when connectiong to Firebird. These components are officially for Interbase only and thus you can be sure that over time the situation will get worse (more incompatible), not better. So I would recommend using components which officially support Firebird. I personally use UIB which is free, but there is others as well (both free and commercial).
can I use Interbase components to connect to a embedded Firebird?
By default you can use Interbase components to use Firebird.
if yes then how can i do it?
You must change the name of firebird client library, in common word.
In dbExpress and Firebird server edition => use fbClient.dll and
dbxFb.dll in client side of program.
In dbExpress and Firebird embedded edition => change name of
fbEmbed.dll to fbClient.dll and use dbxFb.dll in client side of
program(fbClient.dll and dbxFb.dll).
With IbExpress and and Firebird server edition => change name of
fbClient.dll to gds32.dll.
In addition, Daniel Magine writed an article about Firebird and dbExpress.
http://www.embarcadero.com/rad-in-action/database
if not then is there any free Firebird components?
You can use ZEOS.
UPDATE
In Firebird 3:
When does not contain a network protocol but just the database name, the Remote provider rejects it and the Engine12 provider comes to the fore and tries to open the named database file. If it succeeds, we get an embedded connection to the database.
We are migrating from Delphi 6 to Delphi 2010,earlier we were using BDE engine to connect to Sybase Database from Delphi 6. We found out that Delphi 2010 does not support BDE.
We are trying with dbexpress but we are not able to catch the exception(raise error) thrown by Sybase.
Could you please let me know if there is any other driver except dbexpress to connect to Sybase Database from Delphi 2010.
Thanks.
Regards,
AS
You can use AnyDAC to connect to:
Sybase SQL Anywhere (AnyDAC native driver)
Sybase Adaptive Server (AnyDAC ODBC bridge).
I suspect your real problem is that you have the Professional version of Delphi rather than Enterprise. As far as I know, BDE can still be used with Delphi 2010.
With Delphi 6 the Professional version allowed connections to remote databases. Somewhere between Delphi 6 and Delphi 2010 that policy was changed.
Anyway, you really need to give up on BDE and move forward.
Edit: (jeroen)
The BDE for relational access (aka the BDE SQL Links technology) has been deprecated since 2002, about 2 years after the introduction of dbExpress in Kylix and Delphi 6.
You could try a workaround:
Install Delphi 6
Update BDE to the latest available version (there should be some updates on Embarcadero site, I hope)
Install Delphi 2010
IIRC the available SQL Links should not be removed (otherwise it would break the older version), and they should still work in Delphi 2010. But that's really a stopgap try.
Devart's UniDac can connect to Sybase without using dbExpress, but I never used it.
Sybase drivers for dbExpress is included in Enterprise version of Delphi. If that is not an option you can use dbGO (ADO) that is included in Professional.
You can try ZEOSLIB which contains SyBase connectivity, along with many other SQL dbs.
As far as I can see, it requires you to remove your Query/Table objects and replace them with its own Table and Query replacement objects, but then, so would moving from BDE to ADO/dbGo or dBExpress.
And you really should get the BDE out of your application. It's dead as a doornail.
We are migrating a pretty big application crafted in Delphi 5 (still getting customers using this old versions) that uses BDE to connect to a SQL Server. The decided path to migrating is first Delphi 5 to Delphi 2010, then BDE to dbExpress (or dbGO, still undecided).
The problem is that BDE in Delphi 2010 doen't seems to have SERVER NAME parameter! (the one you need to set the host to connect to) and it neither seems to have a replace for that.
I've tried to force it in the strings of parameters unsuccesfuly. I still can not believe this, but maybe I'm missing something bad.
BDE support for SQL Links was removed from the BDE. SQL Server in the BDE was using SQL Links.
The announcement was made in 2002 in this article:
http://edn.embarcadero.com/article/28688
If you copy the old BDE files over the new ones in Program Files\Common files\Borland shared\BDE, you will have access again to SQL servers through BDE. I have done a quick test, and could access my Firebird 2.1 in Delphi 2010 IDE without problem. I still will have to test my application, which was Delphi 6. So I can't give a final conclusion, but it looks OK. If it is wise to continue with BDE maybe questionnable, but at least basically it still works.
is there a free standalone editor for DBExpress connections (Delphi 2009) that can be installed on a customer PC and be used to manage DBExpress connections and (if available) drivers?
I'm not aware of any available as of today. However, it'd be easy to write one, as it mainly involves the manipulation of several ini files.
I have simple application that uses dbExpress to connect Informix database.
If I compile it with TurboDelphi it works on both WinXP and Win2003.
When I use new Deplhi 2009 my app works ok on WinXP but do not start on Win2003.
No MessageBox with error, only info in EventLog:
Faulting application inf_dbexpress_test.exe, version 0.0.0.0, faulting
module kernel32.dll, version 5.2.3790.4062, fault address 0x0000bee7.
I think this is problem with dbExpress driver while my other app compiled with Delhi 2009 that uses
ODBC to connect Informix works on Win2003.
Anybody can test if Informix dbExpress drivers from Delphi 2009 works with Windows 2003?
Thanks for your help, but it do not work.
As for $INFORMIXDIR:
I reinstalled ClientSDK 3.5 and my $INFORMIXDIR is now:
c:\informix
(was c:\Program Files ...).
I can connect to DB from my app that uses ODBC.
But dbExpress app can not start, even in WinXP compatibility mode.
I have reported it in Delphi Quality Central as bug #67823:
Which turbo version do you have (the .net version or the Win32 version)? Do you have .net framework installed on 2003?
Hm maybe a strange suggestion, but one of the big differences introduces in Delphi 2009 is Unicode. All strings are now Unicode strings. Could that possibly be an explanation for the problem?