Possible bug?

Possible bug?

Postby PontusAtNilex » Thu 04 Nov 2004 10:34

Hello!

We are migrating our application from BDE to DbExpress, and we are using your excellent SQL Server and Oracle DbExpress drivers :)

For the last couple of days i've worked with a tricky bug, in short, the update query that is being generated by an applyupdates is corrupt for oracle, but it succeeds for SQL Server , and it is exactly the same code that executes.

And the problem is that the function
SQLConnection.GetFieldNames(TableName, FieldList) returns the fieldnames in the SQL Server case , but not in the Oracle case, then we get an empty string.

When we use SQLTable.GetFieldNames(FieldList) we get a correct FieldList from both Oracle and SQL Server.

Don't know if this is a bug in Delphi or in your Oracle driver, just wanted to mention it!

We are developing in Delphi 6, update pack 2. Using SQL Server Dbexpress driver 2.0 and Oracle DbExpress driver 2.10.0

//Pontus
PontusAtNilex
 
Posts: 16
Joined: Wed 03 Nov 2004 13:25

Postby Paul » Fri 05 Nov 2004 14:20

1. Update SQL is generated by SQLExpress (See TSQLResolver.GenUpdateSQL). Please
specify what type of fields you have and what SQL is generated. I suppose we can find
a decision for your particular problem. Please compare results with standard Oracle
dbExpress driver.

2. You must pass table name without indicating schema to GetFieldNames. By default,
schema name coincides with user name. You can change schema name using
SQLConnection1.MetaData property.
Code: Select all
var
  L: TStringList;
begin
  L:=TStringList.Create;
  try
    SQLConnection1.Open;
    SQLConnection1.MetaData.SetOption(eMetaSchemaName, LongInt(PChar('SYS')));
    SQLConnection1.GetFieldNames('NLS_DATABASE_PARAMETERS', L);
  finally
    L.Free;
  end;
Paul
 
Posts: 725
Joined: Thu 28 Oct 2004 14:06


Return to dbExpress driver for Oracle