I am connecting to Firebird using dbxpress driver in Delphi 2010.
The client is able to retrieve the data correctly but when edit or a delete is posted it give a data type unknow error.
I tried using Anydac drive and still I am getting the same error
I am using winter 2011 release.
Hello,
I couldn’t reproduce this error.
Does it raise for any data table or some particular? What Firebird version do you have? What connection string has your connection? Send us please also DDL of your table or even testcase reproducing error if possible.
Best regards
I have license for Spring 2012. Let me first upgrade to Spring 2012 and then check this out and get back to you
The problem is with the dbx firebird driver in the server. Though you can connect and access the database, in the data abastract schema modeler, the updates to the fields is not correct especially the primary keys.
Though Delphi has started supporting firebird since 2010 why is Remobjects not supporting it and I don’t not see it in the dbx aux driver list. I added to it by updating the dbxconnections.ini
Using Interbase as the Aux driver things seems to work fine. But do not know if it will work better than the fbclient.dll which is the actual firebird client.
Also in the client side in the memdatatable, if unwanted fields that are required in the form are removed to reduce the no. of fields transferred from the server, it gives a “data in stream does not match destination table” error. This does not happen when I use ado with mssql.
Hello,
rvenky20001 said:
Though Delphi has started supporting firebird since 2010 why is Remobjects not supporting it and I don't not see it in the dbx aux driver list. I added to it by updating the dbxconnections.ini
DataAbstract supports Delphi versions earlier than 2010, that is why DBX driver doesn’t contain firebird aux driver. Nevertheless you could use such a workaround - fix uDADBXDriver.pas:
procedure TDAEDBXConnection.DoApplyConnectionString(
aConnStrParser: TDAConnectionStringParser; aConnectionObject: TCustomConnection);
…
begin
inherited;
FMySQLVersion := -1;
with aConnStrParser do begin
with TDBXConnection(aConnectionObject).SQLConnection do begin
///// ADDED
{$IFNDEF Delphi14up}
if AnsiSameText(AuxDriver, 'firebird') then AuxDriver := dbx_InterbaseId;
{$ENDIF}
///// ADDED
DriverName := AuxDriver;
…
end;
Then recompile DADBXDrv package in non-unicode Delphi (Delphi 7 for example), place new DADBXDrv.dad in …\DataAbstract(Common)\Bin (near the Schema Modeler) - and write yourself Firebird as Aux Driver in Schema Modeler connection options. You don’t need edit dbxdrivers.ini or dbxconnection.ini.
Or you could simply define your schema using Interbase aux driver and when finish - change it on Firebird. This works in runtime and there were no errors during posting data or applying updates.
rvenky20001 said: Also in the client side in the memdatatable, if unwanted fields that are required in the form are removed to reduce the no. of fields transferred from the server, it gives a "data in stream does not match destination table" error. This does not happen when I use ado with mssql.
Do you remove fields from TDAMemDataTable and not from schema? If so - this will raise an error with any driver. If you don’t need some fields from DB you should remove them in Schema Modeler and then retrieve schema for TDAMemDataTable instance.
Best regards