procedure TfrmTest.a;
var
cn: TOraSession;
qry: TOraQuery;
UserName, Password, IP, SID: string;
begin
//CoInitialize(nil);
showmessage('1');
cn := TOraSession.Create(nil);
showmessage('2');
qry := TOraQuery.Create(nil);
showmessage('3');
UserName := 'report001';
Password := 'report001';
IP := '59.151.4.116';
SID := 'imeter';
showmessage('4');
cn.ConnectString := Format('%s/%s@%s:1521:%s', [UserName, Password, IP, SID]);
showmessage(cn.ConnectString);
//cn.Connected := True;
qry.Session := cn;
showmessage('7');
qry.Close;
qry.SQL.Clear;
showmessage('8');
qry.SQL.Add('select * from content02');
showmessage('9');
qry.Open;
showmessage('10');
qry.First;
showmessage('11');
showmessage(qry.FieldByName('name').AsString);
cn.Free;
qry.Free;
//CoUnInitialize();
end;线程函数
procedure TMusic.Execute;
var
sTime: string;
frmTest: TfrmTest;
begin
while True do
begin
frmTest := TfrmTest.Create();
frmTest.a;//这是一个数据库的操作函数 sleep(2000); end;
end;我在一个线程对象中调用了一个操作数据库的对象TOraQuery 来操作数据库,操作数据库的那段代码在应用程序中是可以跑通的.但是在服务程序中调它的时候,只有showmessage('9'),就是说qry.open的时候就报错了...请问这个问题该如何解决...
var
cn: TOraSession;
qry: TOraQuery;
UserName, Password, IP, SID: string;
begin
//CoInitialize(nil);
showmessage('1');
cn := TOraSession.Create(nil);
showmessage('2');
qry := TOraQuery.Create(nil);
showmessage('3');
UserName := 'report001';
Password := 'report001';
IP := '59.151.4.116';
SID := 'imeter';
showmessage('4');
cn.ConnectString := Format('%s/%s@%s:1521:%s', [UserName, Password, IP, SID]);
showmessage(cn.ConnectString);
//cn.Connected := True;
qry.Session := cn;
showmessage('7');
qry.Close;
qry.SQL.Clear;
showmessage('8');
qry.SQL.Add('select * from content02');
showmessage('9');
qry.Open;
showmessage('10');
qry.First;
showmessage('11');
showmessage(qry.FieldByName('name').AsString);
cn.Free;
qry.Free;
//CoUnInitialize();
end;线程函数
procedure TMusic.Execute;
var
sTime: string;
frmTest: TfrmTest;
begin
while True do
begin
frmTest := TfrmTest.Create();
frmTest.a;//这是一个数据库的操作函数 sleep(2000); end;
end;我在一个线程对象中调用了一个操作数据库的对象TOraQuery 来操作数据库,操作数据库的那段代码在应用程序中是可以跑通的.但是在服务程序中调它的时候,只有showmessage('9'),就是说qry.open的时候就报错了...请问这个问题该如何解决...
解决方案 »
- 有关dll问题
- 关于Richedit的两个问题
- 用DBxpress怎么调用SQL Server下的存储过程啊!
- 请大家推荐一本介绍delphi常用组件的属性、事件、函数的中文书
- (800分)求Bold for Delphi R4.0的license
- 小女子有一个简单问题..急等回答..
- 如何使用动态创建的TServerSocket控件的事件?
- 用delphi连access数据表以后,为什么第一打开数据表是总有用户名和密码对话框?
- 请csdn高手,数据库高手,工控高手,帮我分析一下这个问题好吗,本人辗转一星期一筹莫展!
- 用 delphi5 做 Activeform
- delphi中数据库中相关项目用treeview来显示?????或者是treeviw的一般用法
- 江湖救急(实在是没分了,最后10分了)
Classes, Windows, SysUtils, RegistryMgr;const
mtErr = '[Error]';
mtHint = '[Hint]';
type
TLogMgr = class(TObject)
private
FLogFilePath :String;
public
procedure setLog(aMessageNo:string; aMessage:string);
end;implementation{ TLogMgr }procedure TLogMgr.setLog(aMessageNo: string; aMessage: string);
var
FHandle:THandle;
m_RegMgr :TRegistryManager;
begin
m_RegMgr :=TRegistryManager.Create;
FLogFilePath:=ExtractFilePath( m_RegMgr.sts_Log )+'sm.log';
m_RegMgr.Destroy;
aMessage:='['+FormatDateTime( 'yyyy-mm-dd hh:mm:ss',now )+'] '+aMessageNo+' :'+aMessage+#10#13;
FHandle:=FileOpen( FLogFilePath, fmOpenWrite or fmShareDenyNone );
FileSeek( Fhandle, 0, 2 );
FileWrite( Fhandle, aMessage[ 1 ], length( aMessage ) );
FileClose( FHandle );
end;end.
我写上这句话,程序到这就不走了..