我要改别人的程序,其中大量使用线程,在线程中查询数据库十分频繁,又没有用Session
来控制,全部是共用一个TDatabase.
那么,我是否要对每一个线程(会同时运行多个线程,线程是动态创建的)来使用一个DataBase?而且我在线程中创建的Database,一给他的SessName赋值线程就退出。
我第一次用Session,请大家指教,分不够我再加。
procedure test.Execute;
var
sql:string;
begin
qryGetZlgs := TQuery.Create(nil);
qryGetTj := TQuery.Create(nil);
Database1:= TDatabase.Create(nil);
Database1.DatabaseName:='222';
sessGetZlgs := TSession.Create(nil);
sessGetZlgs.SessionName:='11';
sessGetZlgs.Active:=true;
Database1:= form1.dbInteract;//dbInteract可以连数据库
database1.SessionName:=sessGetZlgs.SessionName;//这里就会退出
qryGetZlgs.DatabaseName:='222';
qryGetZlgs.SessionName:=sessGetZlgs.SessionName;
qryGetTj.SessionName:=sessGetZlgs.SessionName;
sql:= 'select Count(*) from a';
qryGetZlgs.Close;
qryGetZlgs.SQL.Clear;
qryGetZlgs.SQL.Add(sql);
qryGetZlgs.open; //这样写可以吗?
showmessage('ew'); sql:= 'select Count(*) from b';
qryGetTj.Close;
qryGetTj.SQL.Clear;
qryGetTj.SQL.Add(sql);
qryGetTj.open;
end;
来控制,全部是共用一个TDatabase.
那么,我是否要对每一个线程(会同时运行多个线程,线程是动态创建的)来使用一个DataBase?而且我在线程中创建的Database,一给他的SessName赋值线程就退出。
我第一次用Session,请大家指教,分不够我再加。
procedure test.Execute;
var
sql:string;
begin
qryGetZlgs := TQuery.Create(nil);
qryGetTj := TQuery.Create(nil);
Database1:= TDatabase.Create(nil);
Database1.DatabaseName:='222';
sessGetZlgs := TSession.Create(nil);
sessGetZlgs.SessionName:='11';
sessGetZlgs.Active:=true;
Database1:= form1.dbInteract;//dbInteract可以连数据库
database1.SessionName:=sessGetZlgs.SessionName;//这里就会退出
qryGetZlgs.DatabaseName:='222';
qryGetZlgs.SessionName:=sessGetZlgs.SessionName;
qryGetTj.SessionName:=sessGetZlgs.SessionName;
sql:= 'select Count(*) from a';
qryGetZlgs.Close;
qryGetZlgs.SQL.Clear;
qryGetZlgs.SQL.Add(sql);
qryGetZlgs.open; //这样写可以吗?
showmessage('ew'); sql:= 'select Count(*) from b';
qryGetTj.Close;
qryGetTj.SQL.Clear;
qryGetTj.SQL.Add(sql);
qryGetTj.open;
end;
解决方案 »
- 使memo组件回显cmd命令,请大家帮偶看下
- 火上房了,delphi6+qreport做的报表,在98系统下,可以预览但打印不出来,怎么办啊!
- ExeRes.com 全心打造 IntraWeb for Delphi 完美体验 (2.0版 现已全面开放源码)
- 动态获得控件的信息,内详,简单,送分~
- 帮我看看这段代码吗!
- 打印的定位问题,怎样设置quickrep报表使得其对任意打印机都有效。
- 在窗口最小化时,将应用程序宿小为一图标,象'金山词霸'应用程序一样
- 关于关机的问题
- 怎么得到SQL语句的执行时间???纪录在 一个 文本中!!!!!
- 请问谁有类似acdsee程序的源码?
- 200分的问题:如何在游戏界面(directx)上或前面显示自己的文字即可(不许要交互操作)
- 请问webbrowser中使用COOKIE或者SESSION的问题,点入看问题详细描述(UP即给分)
BDE的help里面有个简单的例子。
TSession.AutoSessionName:=True;
我是不是可以这样理解:
只用一个公用的Database,在线程中动态的创建Session,并动态的变换Database的SessionName,那AutoSessionName:=True我又怎么指定?