In doing this replacement, everything has gone very smoothly. I have run into an issue with retrieving data using a query.
Environment is 9.5.2 library. 64 bit executable being built. I create one session per application thread.
Here is the session object.
Code: Select all
FConnection := TOraSession.Create(Nil);
FConnection.LoginPrompt := False;
FConnection.ConnectPrompt := False;
FConnection.ThreadSafety := True;
FConnection.Options.StatementCache := False; // I do my own caching
FConnection.HomeName := 'OraDb11g_home1';
FConnection.AutoCommit := False;
I create one query. Each thread is linear. Thread A and B have no need to know anything about what they are doing from a database/query perspective.
Here is the query object (using TOraDataSet).
Code: Select all
FQuery := TOraDataSet.Create(FSession);
FQuery.ParamCheck := False;
FQuery.DisableControls;
FQuery.Session := FSession;
FQuery.ReadOnly := True;
FQuery.Unidirectional := True; // is this a problem?
FQuery.FetchRows := 100;
FQuery.FetchAll := False; // Does this fetch nothing, or fetch only the FetchRows count. It could be the problem, but I cannot FetchALl if it really means all results from the query.
FQuery.AutoCalcFields := False;
What's really weird is that one query appears to work (its a select, with 1 row expected), and another subsequent query (with multiple rows expected) does not.
Is there any guidance to help me get over this problem?
Perhaps taking a different approach, is there a example of using the library 100% non-visually (everything being created dynamically via .Create)??
Thanks, in advance, for your help.