📄 rm1.pas
字号:
unit RM1;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Server_TLB, StdVcl, DB, ADODB, Provider, QiProvider, StrUtils;
type
TQiMidasServer = class(TRemoteDataModule, IQiMidasServer)
QiDataSetProvider1: TQiDataSetProvider;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
procedure RemoteDataModuleCreate(Sender: TObject);
procedure QiDataSetProvider1UpdateBySQL(SQLs: OleVariant);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;
implementation
uses MainUnit;
{$R *.DFM}
class procedure TQiMidasServer.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;
procedure TQiMidasServer.RemoteDataModuleCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Close;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+ExtractFilePath(ParamStr(0))+'mydb.mdb';
Open;
end;
end;
procedure TQiMidasServer.QiDataSetProvider1UpdateBySQL(SQLs: OleVariant);
var
ers,er:Integer;
S:String;
p1,p2:Integer;
begin
ADOConnection1.BeginTrans;
try
ers:=0;
p1:=1;
repeat
p2:=PosEx(#13,SQLs,p1);
if p2>0 then
begin
S:=Copy(SQLs,p1,p2-p1);
p1:=p2+1;
ADOConnection1.Execute(S,er);
MainForm.LogMsg(S);
ers:=ers+er;
end;
until p2=0;
ADOConnection1.CommitTrans;
MainForm.LogMsg(Format(' effect %d records.',[ers]));
except
ADOConnection1.RollbackTrans;
end;
end;
initialization
TComponentFactory.Create(ComServer, TQiMidasServer,
Class_QiMidasServer, ciMultiInstance, tmApartment);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -