我想用TSession控件,在程序運行過程中動態生成aliasname
但我的程序aliasname是動態生成了,但我不能動態使用這個aliasname
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
param:tstringlist;
begin
param:=tstringlist.Create; if session1.Active=TRUE then
Session1.Active:=FALSE; SESSION1.Active:=TRUE;
if SESSION1.IsAlias('PACKING')=FALSE then
begin
param.Clear;
param.Add('SERVER NAME='+'PACKING.WORLD');
param.Add('User name='+'packing');
param.Add('Password='+'packing');
session1.AddAlias('PACKING','ORACLE',param);
SESSION1.SaveConfigFile;
end; //SESSION1.Active:=FALSE;
DATABASE1.Connected:=FALSE;
QUERY1.Active:=FALSE; SESSION1.Active:=TRUE; if database1.Connected=false then
BEGIN
DATABASE1.SessionName:=SESSION1.SessionName;
DATABASE1.DatabaseName:='PACKDB';
database1.AliasName:='PACKING';
DATABASE1.Params.Clear;
DATABASE1.Params.Add('USER NAME=packing');
database1.Params.Add('password=packing');
database1.Params.Add('server name=PACKING.WORLD');
DATABASE1.LoginPrompt:=FALSE;
END; SESSION1.SaveConfigFile; DATABASE1.Connected:=TRUE; IF QUERY1.Active=FALSE THEN
BEGIN
QUERY1.SessionName:=SESSION1.SessionName;
QUERY1.DatabaseName:=DATABASE1.DatabaseName;
END; //SESSION1.Active:=TRUE;
//DATABASE1.Connected:=TRUE;
QUERY1.Active:=TRUE; QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM PACKING.UNIT_CART');
QUERY1.Open;
end;每次執行都提示找不到PACKDB,望大俠們幫忙解決以下
但我的程序aliasname是動態生成了,但我不能動態使用這個aliasname
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
param:tstringlist;
begin
param:=tstringlist.Create; if session1.Active=TRUE then
Session1.Active:=FALSE; SESSION1.Active:=TRUE;
if SESSION1.IsAlias('PACKING')=FALSE then
begin
param.Clear;
param.Add('SERVER NAME='+'PACKING.WORLD');
param.Add('User name='+'packing');
param.Add('Password='+'packing');
session1.AddAlias('PACKING','ORACLE',param);
SESSION1.SaveConfigFile;
end; //SESSION1.Active:=FALSE;
DATABASE1.Connected:=FALSE;
QUERY1.Active:=FALSE; SESSION1.Active:=TRUE; if database1.Connected=false then
BEGIN
DATABASE1.SessionName:=SESSION1.SessionName;
DATABASE1.DatabaseName:='PACKDB';
database1.AliasName:='PACKING';
DATABASE1.Params.Clear;
DATABASE1.Params.Add('USER NAME=packing');
database1.Params.Add('password=packing');
database1.Params.Add('server name=PACKING.WORLD');
DATABASE1.LoginPrompt:=FALSE;
END; SESSION1.SaveConfigFile; DATABASE1.Connected:=TRUE; IF QUERY1.Active=FALSE THEN
BEGIN
QUERY1.SessionName:=SESSION1.SessionName;
QUERY1.DatabaseName:=DATABASE1.DatabaseName;
END; //SESSION1.Active:=TRUE;
//DATABASE1.Connected:=TRUE;
QUERY1.Active:=TRUE; QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM PACKING.UNIT_CART');
QUERY1.Open;
end;每次執行都提示找不到PACKDB,望大俠們幫忙解決以下
解决方案 »
- 求delphi局域网代理发送电子邮件程序
- 关于数据库
- 请问做过ISAPI过滤器的朋友,HttpfilterProc中如何获得session的内容?
- 用Fastreport做了一张报表,放在一个文件夹下面,在软件中如何来得到报表的路经(安装程序可能在c:盘或d:盘)
- 怎样才能使当前窗品,按Enter键,自动跳格。高手们帮帮忙?
- 收到注册费用了,高兴散分!
- 怎樣設置同類控件的屬性?如窗體中有許多Edit控件,怎樣將所有的Tedit控件的Text屬性為空?
- 如何将选取的文件存入数据库中的image字段
- 各位帮帮忙,indy的IdFtp控件怎样实现断点上传文件的方法,最好有实例代码?谢谢各位了,搞的头都大了!
- 这个是定义的什么?(TCardNumber = packed record),常量?结构?数组?……
- 我想找卡拉OK系统,要求带源码,谁能提供?
- 在用windowsmiedplay作控件,二次开发卡拉KO软件的问题,跪求!!
后来改用ado了,不记得了.
呵呵.别骂我哦.我觉得你可以把你的代码重新整理一下,把所有没用的代码都去掉.
用database的时候不用指定session,如果你的别名确实已经创建了的话.你可以这样来检查,在一个button事件里只创建别名.然后检查别名是否创建了.
然后检查database, 然后检查query.
不要到处都用SESSION1.SaveConfigFile;
還有能不能講一下session,database,query之間的關係
我若要每個線程要用一個session來訪問數據庫,是不是要一個tdatabase與tsession之間對應
出現unknown database,alias:PACKDB有 database1.AliasName:='PACKING';這一句時
Cann't load an IDAPI service library
File: SQLORA8.DLL
alias:PACKDB