Using Options.DisconnectedMode in TUniConnection
Posted: Tue 03 Apr 2012 13:43
I have a problem with DisconnectedMode option in TUniConnection.
UniDAC version is 4.1.5. and provider is Interbase (actually, we are using Firebird database).
Situation is as follows:
1. There is database component, named DB1. Property Options.DisconnectedMode is set to True, all other properties are set to default values.
2. A query Q1 is connected to the database DB1. In its SpecificOptions property Interbase.DeferredBlobRead is set to True. All other values are defaults. SQL is something like:
"SELECT * FROM Partners WHERE PartnerID = 11491".
Partners table has a BLOB field, let's say it's called "Note".
Steps to reproduce this problem (Delphi code):
In third line an exception is raised which says: "Invalid database handle (no active connection)".
The problem does NOT arise in following situations:
1. Interbase.DeferredBlobRead is set to False - then everything is OK
2. when WHERE clause is removed from a query so it looks like this: "SELECT ? FROM Partners" - this could indicate that there is some bug in TUniQuery component while fetching a BLOB value. However, this is not acceptable solution.
I'm interested if this is a bug. If it is not, is there any other solution to make this work?
I would like to keep DeferredBlobRead and DisconnectedMode properties set to True.
Thanks in advance,
Bero
UniDAC version is 4.1.5. and provider is Interbase (actually, we are using Firebird database).
Situation is as follows:
1. There is database component, named DB1. Property Options.DisconnectedMode is set to True, all other properties are set to default values.
2. A query Q1 is connected to the database DB1. In its SpecificOptions property Interbase.DeferredBlobRead is set to True. All other values are defaults. SQL is something like:
"SELECT * FROM Partners WHERE PartnerID = 11491".
Partners table has a BLOB field, let's say it's called "Note".
Steps to reproduce this problem (Delphi code):
Code: Select all
DB1.Connect;
Q1.Open;
NoteValue := Q1.FieldByName('Note').AsString; // exception is raised here
Q1.Close;
The problem does NOT arise in following situations:
1. Interbase.DeferredBlobRead is set to False - then everything is OK
2. when WHERE clause is removed from a query so it looks like this: "SELECT ? FROM Partners" - this could indicate that there is some bug in TUniQuery component while fetching a BLOB value. However, this is not acceptable solution.
I'm interested if this is a bug. If it is not, is there any other solution to make this work?
I would like to keep DeferredBlobRead and DisconnectedMode properties set to True.
Thanks in advance,
Bero