用MIDAS做数据库连接,当超过6个客户端时出错,错误是:“cannot find engine configuration file”这是什么原因啊???
解决方案 »
- dll中的frame如何调用?我从网上下载了一个,大家帮我看看
- 哪位大师有TClientDataSet生成的CDS文件格式的资料?
- 两种检查网络状态的方式,一个连不连接都是连接的,一个是连不连接都不连接.
- 怎样屏蔽一个事件,使得此事件在任何时候不触发?
- 奇怪的打印问题?
- 简单问题:请高手看看吧。我一直苦闷地在调试
- 想了解服装软件?
- dbgrid问题
- Suipack的一个Bug,影响使用: 按钮的风格设置成MacOS后,放在TsuiPageControl(或者普通TForm)上,按钮的四个角落有白颜色
- 安装后的问题?
- 谁有Delphi B/S架构的例子啊?能不能发给我看看,最近在研究b/s架构
- dbgrid的field.asstring方法为什么截掉小数形式的字符串的后面的0
个人是从没在实际项目用过midas
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
Label1: TLabel;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
ClientCount: TLabel;
QueryCount: TLabel;
private
FQueryCount: Integer;
FClientCount: Integer; { Private declarations }
public
procedure UpdateClientCount(Incr: Integer);
procedure IncQueryCount; { Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure Tform1.UpdateClientCount(Incr: Integer);
begin
FClientCount := FClientCount + Incr;
ClientCount.Caption := IntToStr(FClientCount);
end;
procedure Tform1.IncQueryCount;
begin
Inc(FQueryCount);
QueryCount.Caption := IntToStr(FQueryCount);
end;end.unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Project2_TLB, StdVcl, Provider, DB, ADODB, DBTables;type
TPC121 = class(TRemoteDataModule, IPC121)
DataSetProvider1: TDataSetProvider;
Session1: TSession;
Database1: TDatabase;
Query1: TQuery;
procedure RemoteDataModuleCreate(Sender: TObject);
procedure RemoteDataModuleDestroy(Sender: TObject);
procedure Query1AfterOpen(DataSet: TDataSet);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
function getdatabasename: OleVariant; safecall;
procedure setdatabasename(const DBName, username, password: WideString);
safecall;
function GetTableNames: OleVariant; safecall;
public
{ Public declarations }
end;implementation
uses Variants, Unit1;
{$R *.DFM}class procedure TPC121.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;function TPC121.getdatabasename: OleVariant;
var
I: Integer;
DBNames: TStrings;
begin
// 建立一个字符串数组存放BDE所有的数据库别名数据。
DBNames := TStringList.Create;
try
// 利用Session控件取得当前BDE所有的数据库别名数据。
Session1.GetDatabaseNames(DBNames); /// 建立一个变量数组给函数返回变量Result。
Result := VarArrayCreate([0, DBNames.Count - 1], varOleStr); // 最后再把数据库别名数据指定给该变量数组。
for I := 0 to DBNames.Count - 1 do
Result[I] := DBNames[I];Finally //如果错误就把构造的DBNames释放掉。 DBNames.Free;
end;
end;
procedure TPC121.setdatabasename(const DBName, username,
password: WideString);
begin
try
// 把前台传来的数据库别名、用户上线名称、用户上线密码
// 等三项数据指定给TDatabase控件,并且执行联机的操作。 Database1.Close;
Database1.AliasName := DBName;
if (UserName<>'') and (Password<>'') then begin
Database1.Params.Values['PASSWORD'] := Password;
Database1.Params.Values['USER NAME'] := UserName;
end;
Database1.Open;
except
// 如果联机时发生错误,则产生一个exception给前台程序
// 前台程序将会利用到这个exception来判断是否要把输入上
// 线数据的窗口激活。 on E: EDBEngineError do
raise Exception.Create('Password Required') ;
end;end;procedure TPC121.RemoteDataModuleCreate(Sender: TObject);
begin
// 增加一位前台上线者(调用Form1上的程序)
Form1.UpdateClientCount(1);end;procedure TPC121.RemoteDataModuleDestroy(Sender: TObject);
begin
// 减少一位前台上线者(调用Form1上的程序)
Form1.UpdateClientCount(-1);end;procedure TPC121.Query1AfterOpen(DataSet: TDataSet);
begin
// 新打开一个TQuery查询(调用Form1上的程序)
Form1.IncQueryCount;end;function TPC121.GetTableNames: OleVariant;
var
I: Integer;
DBTables: TStrings;
begin
// 建立一个字符串数组存放所有表名。
DBTables := TStringList.Create;
try
// 利用Database控件取得当前所有表名数据。
Database1.GetTableNames(DBTables , False); /// 建立一个变量数组给函数返回变量Result。
Result := VarArrayCreate([0, DBTables.Count - 1], varOleStr); // 最后再把表名数据指定给该变量数组。 for I := 0 to DBTables.Count - 1 do
Result[I] := DBTables[I]; finally
DBTables.Free;
end; end;
initialization
TComponentFactory.Create(ComServer, TPC121,
Class_PC121, ciMultiInstance, tmApartment);
end.
你们帮我看看到底是哪里写错了
找不到引擎配置文件...把Tquery組件替換成TClientDataSet組件試試看