No, they're all set to Active=False.
It seems like Oracle hasn't 'woken up' or something the first time you connect but the attempt does something because subsequent connects always go straight through.
Main Topics
Browse All TopicsI've written an application in Delphi 7 which uses ADO to connect to an Oracle 10g database.
Sometimes I get an 'ORA-00942 Table or View does not exist'. when I first connect to the database.
However if I run it again immediately it connects straight away without any error message and works fine.
My Beta tester also gets the same problem sometimes but if he just acknowledges the message and re-runs it connects fine.
The error appears to occur before I've even run any SQL, I've only 'opened' the ADO Connection.
The same app connects to SQL Server without ever encountering this problem.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
BDE's no longer being supported or won't be for much longer and our other stuff uses ADO OK.
I think that there must be a solution/workaround, it's such a transient problem that it cannot be unsurmountable.
The application uses ADO on SQL Server OK, and even DB2, and 90+% of the time it works on Oracle too.
I'm sure there must be a workaround or a patch if I can just find out exactly what the problem is.
Personally I would use the direct oracle access components if the application will not change from looking at an oracle database.
http://sourceforge.net/pro
Another way is to wrap it up in a try/except and use a timer to check the connection.
Not the best solution though, just a possibility.
I would go check for any ADO updates at the borland website first.
procedure TForm1.Timer1Timer(Sender:
begin
Timer1.Enabled := False;
ConnectToDatabase;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ConnectToDatabase;
end;
procedure TForm1.ConnectToDatabase;
begin
Try
ADOConnection.Connected := True;
Timer1.Enabled := False;
Except
Timer1.Enabled := True;
End
end;
Try monitor your application data excahage with server. Something like:
fExecuteTime :dword;
...
procedure TDM.dbConnectionWillExecut
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
var
i,j:integer;
infoStr:String;
tmpParameters:Parameters;
begin
if gDebugMode then
MonitorEvent('WillExecute.
fExecuteTime:=GetTickCount
if gSqlMonitor and gDebugMode then
begin
MonitorEvent(CommandText,[
if Assigned(Recordset) then
begin
for i := 0 to (dbConnection.DataSetCount
if Assigned(dbConnection.Data
and (Recordset = dbConnection.DataSets[i].R
if (dbConnection.DataSets[i] is TADODataSet)
and (TADODataSet(dbConnection.
for j:=0 to TADODataSet(dbConnection.D
begin
infoStr:='P['+IntToStr(j)+
+ TADODataSet(dbConnection.D
if Not VarisNull(TADODataSet(dbCo
Parameters.Items[j].Value)
infoStr:=infoStr
+ String(TADODataSet(dbConne
else
infoStr:=infoStr + 'Null';
MonitorEvent(infoStr,[''])
end;
end;
if Assigned(Command) then
begin
tmpParameters:=Command.Get
if (tmpParameters.Count > 0) then
for j:=0 to tmpParameters.Count - 1 do
begin
infoStr:=tmpParameters.Ite
if Not VarisNull(tmpParameters.It
infoStr:=infoStr + String(tmpParameters.Item[
else
infoStr:=infoStr + 'Null';
MonitorEvent(infoStr,[''])
end
end;
MonitorEvent('',['']);
end;
end;
procedure TDM.dbConnectionExecuteCom
RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
begin
Self.fExecuteTime:=GetTick
if gDebugMode then
MonitorEvent('Execute time: ' + FloatToStr(Self.fExecuteTi
end;
Statement tracer for ADO (http://www.aboves.com) can help you too.
Business Accounts
Answer for Membership
by: mikelittlewoodPosted on 2005-11-01 at 04:23:29ID: 15199401
have you got any queries attached to the ADOConnection that are set to Active by accident already.