一个多线程的代码,老是说"UnKnow DataBase,Alias DB1"
代码如下:
多线程 {创建一个窗体实例来显示查询结果}
procedure NewQuery(QryNum:integer;Qry:TStrings;const Alias,UserName,Password:String);
Begin
With TQueryForm.Create(Application) Do
Begin
Session.SessionName := Format('Sess%d',[QryNum]); //QryNum为全局变量
With DataBase Do
Begin
DataBaseName := Format('DB%d',[QryNum]);
AliasName := Alias;
SessionName := Session.SessionName;
Params.Values['USER NAME'] := UserName;
Params.Values['PASSWORD'] := Password;
End; With Query Do
Begin
DatabaseName := DataBase.DataBaseName;
SessionName := Session.SessionName;
SQL.Assign(Qry);
End; Memo1.Lines.Assign(Qry);
Show;
TDBQueryThread.Create(Query,DataSource); //执行线程查询数据库
End;
代码如下:
多线程 {创建一个窗体实例来显示查询结果}
procedure NewQuery(QryNum:integer;Qry:TStrings;const Alias,UserName,Password:String);
Begin
With TQueryForm.Create(Application) Do
Begin
Session.SessionName := Format('Sess%d',[QryNum]); //QryNum为全局变量
With DataBase Do
Begin
DataBaseName := Format('DB%d',[QryNum]);
AliasName := Alias;
SessionName := Session.SessionName;
Params.Values['USER NAME'] := UserName;
Params.Values['PASSWORD'] := Password;
End; With Query Do
Begin
DatabaseName := DataBase.DataBaseName;
SessionName := Session.SessionName;
SQL.Assign(Qry);
End; Memo1.Lines.Assign(Qry);
Show;
TDBQueryThread.Create(Query,DataSource); //执行线程查询数据库
End;
AliasName := Alias;中的Alias不合法,你到BDE中看看,对应Alias的数据库应该没有建立————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
UP,UP,UP
With DataBase Do
Begin
connected := false;
DataBaseName := Format('DB%d',[QryNum]);
AliasName := Alias;
SessionName := Session.SessionName;
Params.Values['USER NAME'] := UserName;
Params.Values['PASSWORD'] := Password;
connected := true;
End;