I seem to be having some problems with dbExpress in Delphi XE2. When I try to set the connected property of the Sqldataconnection to true I get an access violation at 000000000.
The same thing happens when I try to change the CommandText or Active Properties of the SqlDataSet.
This is my first time using these components as I am following along with some tutorials from a book that I have so it may very well be something I am going wrong but I'm not exactly sure at this point.
Any help is appreciated.
Thanks.
Well I found the reason for my problems. Apparently the dbexpress drivers needed to connect to any database besides interbase are not available in Delphi XE2 starter which is what I am using.
Thanks for the help.
Related
although the question might seem to be similar to other questions concerning this subject, I am afraid it is more complicated.
I try to run a program that I programmed a long time ago under win XP using Delphi 2005.
Now using Delphi 10.2.3 Toky, working with the same program, I get an error bdertl and intraweb 72 90 not found.
I simply deleted intraweb components.
When I also deleted bdertl the error remains.
In the program I use ADO compounds. I don't see any compound which might be from Paradox , BDE-
Can anyone help me to resolve the bdertl error?
Thanks
Thommy7571
Check if BDE/Intraweb related pas files are present in the uses list. For example Dbtables, bde.
Delphi 7. Firebird 2.1.
I am using TSQLDataSet, TSQLDataSetProvider and TClientDataSet. This architecture has worked for me for a long, long time.
Today it started to give me this error: DBExpress Unknown error code 65535, not really clarifying.
I am able to set a SQL in the TSQLDataSet and add all fields in the Fields Editor.
The error occurs when I try to add all fields in the ClientDataSet, in design time. There is no code of mine involved.
I know it os way too litle information but really I donĀ“t even know where to start digging.
Notes
I recently installed Delphi XE2 to start migrating
Probably you have Firebird / Interbase clients DLL hell. For Firebird you should use fbclient.dll, for Interbase - gds32.dll. If you does not follow to this rule, then DBMS API may return a misterious error. And dbExpress driver may have no good idea, what to do with this error. Then it returns another misterious error - 65535.
Probably (again, because no information) you had fbclient.dll renamed to gds32.dll to make Interbase Borland dbEpress driver happy. Then Delphi XE2 installed a real gds32.dll or it was installed as part of Interbase installation (do you ?). The current real Interbase gds32.dll is not compatible with your Firebird server.
You have to verify what DLL loads dbExpress driver, using SysMon or IDE Event Log. Then check what is this DLL. Then probably you will need to restore your gds32.dll.
Over the last few days we have seen random access violations being raised on Delphi 2006 using the ClientDataSet when loading an XML block but the errors disappear when using CodeGear 2007 rad Studio.
I have a strange feeling that this is going to come back and haunt us in the future.
So, how can I debug the xml load procedure for a clientdataset.LoadFromStream method?
I can see it is defined in dbclient.pas but I cannot seem to find the xml processing section.
JD
I don't know if you've tried this already, but it's entirely legal (and supported) to use the Delphi 2007 version of midas.dll with a Delphi 2006 application. Since Embarcadero did fix some DataSnap bugs in Delphi 2007, there is some possibility that the errors you are seeing are caused by a Delphi 2006 bug. It is worth a try to substitute the 2007 version of midas.dll with your Delphi 2006 application and see if the errors go away. It might not fix the problem, but it will save you a lot of trouble and frustration if it does.
it been a while since ive been on 2006 but if i remember right
turn on debug packages then you should just be able to step into it
As far as I know the LoadFromStream cannot be used to load XML files, the data in the stream should be in the internal format used by the client dataset. Try setting the XMLData property instead.
I'm strugling with error message "Incorrect values within SQLDA structure" when I'm trying to update blob field within Firebird 2.1 database from Delphi 2009 DBX application.
However I get the error message when I'm trying to execute TSQLQuery with following SQL: "update MYTABLE set FIELD1= :data where id = :id"
The relevant delphi code is:
MyQuery.ParamByName('id').AsInteger := id;
MyQuery.ParamByName('data').LoadFromFile(filename, ftBlob);
MyQuery.ExecSQL();
Where should I be looking? This has been working in earlier Delphi versions.
This is the kind of crypt error that Delphi's Interbase driver is used to show.
I've seen this problem when you have different numbers of parameters in your SQL statement and the ones defined in your query component.
Double check your driver - it is for Firebird or you just use the Interbase driver for this?. It is known that the Firebird team changed the SQLDA structure for Blobs in 2.1 and, hence, the Interbase driver cannot be used anymore.
You have some options here:
(recommended, imho) Upgrade to Delphi 2010 - besides of a DBX Firebird driver you will get much more things to play with (see here for more)
Buy a 3rd party driver for Firebird which works in Delphi 2009
'Downgrade' your Firebird (use it as a last resort, of course)
Change your connectivity library. Yes, it might imply code rewrite.
maybe you need to use the free dbx driver for firebird
http://sites.google.com/site/dbxfirebird/
The first thing that comes to mind is to make sure that the the client dll (gds32.dll or fb32.dll or fbclient.dll, the name depends on which version of Firebird you are using) exactly matches the server version you are using.
--jeroen
FWIW, I got this error in a perl program by executing a statement without bind variables, when it needed them.
I use Delphi 7 with DBExpress.
I want to fully migrate my app to firebird 2.1. I already know what to do at the server side but not really sure at client side.
In the TSQLConnection component I see that vendorLib property points to GDS32.dll. The driverName is Interbase and getDriverFunc is getSQLDriverINTERBASE.
I don't know what to do in order to my connection use fbclient.dll. I tried simply changing gds32.dll to fbclient.dll in vendorLib, but it caused some access violations in my app.
Any tips?
The Interbase DBX driver doesn't support Firebird 2.1 (you'll have problems with certain field types - BLOBs for example). There are rumors that D2010 (which must enter in Beta soon) will support Firebird.
So, you can expect the Weawer or buy a commercial Firebird DBX driver (see Upscene's site or, DevArt/CoreLab's ones).
Also, perhaps is better that when you install Firebird to check the 'Generate gds32.dll for compatibility with older applications' - or something similar - I don't have now in front of my eyes the FB installation kit.
HTH.
Use ZeosDB components for accessing FireBird DB.
Maybe you should rename fbclient.dll to gds32.dll and replace it. Read this - it's not exactly your case, but maybe you should try the same way.
There is also some dbx drivers for Firebird in UIB in \Misc\dbexpress
For completing this I know also dbx drivers for Delphi 2007/2009 at IBExpert
http://ibexpert.net/ibe/index.php?n=Main.News#news16
and others connectivity to access Firebird with Delphi
http://www.firebirdfaq.org/faq7/