📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBClient, MConnect,AppEvnts,SConnect,
ComObj,
CardServer_TLB,
userVO, ValueObjectUnit, TValueObjectListUnit;
type
TForm1 = class(TForm)
Button1: TButton;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
DCOMConnection1: TDCOMConnection;
Button14: TButton;
Button15: TButton;
ds2: TClientDataSet;
DataSource2: TDataSource;
Button16: TButton;
Button17: TButton;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
SocketConnection1: TSocketConnection;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ClientDataSet1ReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MyInterface, MyI: IRDMCardServer;
ii: IRDMCardServerDisp;
pp: TValueObjectList;
implementation
uses PublicFuncUnit, DataPersistentUnit;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
ss : WideString;
disp: IRDMCardServerDisp;
rs: TRDMDataSet;
begin
ClientDataSet1.Close;
disp := IRDMCardServerDisp( IDispatch(SocketConnection1.GetServer));
if disp = nil then
begin
ShowMessage('error');
exit;
end;
disp.SelectData(Edit1.Text, ss);
sProviderName := Copy(ss, 1, length(ss));
ClientDataSet1.ProviderName := Trim(sProviderName);
ClientDataSet1.RemoteServer := SocketConnection1;
ClientDataSet1.Open;
DataSource1.DataSet := ClientDataSet1;
disp := nil;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
dd: TRDMDataSet;
ws: WideString;
begin
ClientDataSet1.Close;
dd := TRDMDataSet.Create(SocketConnection1);
if not dd.BeginTrans(ws) then
exit;
ShowMessage(ws);
dd.UpdateRDMDS(Edit3.Text, ws);
ShowMessage(ws);
ws := '';
if not dd.CommitTrans(ws) then
exit;
ShowMessage(ws);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ClientDataSet1.ApplyUpdates(0);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
DCOMConnection1.Close;
if DCOMConnection1.Connected then
ShowMessage('Error')
else
ShowMessage('OK!');
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
// DCOMConnection1.Open;
SocketConnection1.Open;
end;
procedure TForm1.ClientDataSet1ReconcileError(
DataSet: TCustomClientDataSet; E: EReconcileError;
UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
ShowMessage(e.Message);
Action := raCorrect;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
CPName: PAnsiChar;
clength: Cardinal;
begin
{
New(CPName);
clength := MAX_COMPUTERNAME_LENGTH;
GetComputerName(CPName, clength);
if not DCOMConnection1.Connected then
DCOMConnection1.ComputerName := Edit2.Text;
DCOMConnection1.GetServer.QueryInterface(IID_IMyInter, MyInterface);
MyInterface.CustomerInfo(CPName);
MyInterface := nil;
FreeMem(CPName); }
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
{
if not ClientDataSet1.Active then
Exit;
if not DCOMConnection1.Connected then
DCOMConnection1.ComputerName := Edit2.Text;
DCOMConnection1.GetServer.QueryInterface(IID_IMyInter, MyInterface);
MyInterface.CloseDataset(ClientDataSet1.ProviderName);
MyInterface := nil; }
end;
procedure TForm1.Button8Click(Sender: TObject);
{
var
MyThrd: MyThread; }
begin
{
ClientDataSet1.Close;
DataSource1.DataSet := nil;
MyThrd := MyThread.Create(True);
MyThrd.ServerName := DCOMConnection1.ServerName;
MyThrd.ServerGUIID := DCOMConnection1.ServerGUID;
MyThrd.FreeOnTerminate := True;
MyThrd.Resume;
DataSource1.DataSet := ClientDataSet1;
}
end;
procedure TForm1.Button9Click(Sender: TObject);
var
ProviderName: WideString;
begin
ClientDataSet1.Close;
ClientDataSet1.RemoteServer := DCOMConnection1;
// DCOMConnection1.GetServer.QueryInterface(IID_IMyInter, MyI);
// MyI := DCOMConnection1.GetServer as IDataPersistent;
MyI.SelectData(Form1.Edit1.Text, ProviderName);
ClientDataSet1.ProviderName := Trim(ProviderName);
ClientDataSet1.Open;
DataSource1.DataSet := ClientDataSet1;
//MyI.CloseDataset(ClientDataSet1.ProviderName);
MyI := nil;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.ProviderName := 'DSP1';
ClientDataSet1.Open;
end;
procedure TForm1.Button11Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
a, b : Olevariant;
ss : WideString;
begin
ClientDataSet1.Close;
// MyInterface := DCOMConnection1.GetServer as IDataPersistent;
//MyInterface.SelectData(Edit1.Text, ProviderName, siLeng);
//ii :=(DCOMConnection1.GetServer as IDataPersistent);
// (DCOMConnection1.GetServer as IRDMDataPersistent).SelectData(Edit1.Text, ss);
// ii.SelectData(Edit1.Text, ProviderName, siLeng);
ClientDataSet1.ProviderName := Trim(ss);
ClientDataSet1.RemoteServer := DCOMConnection1;
if siLeng <> 0 then
ClientDataSet1.Open;
DataSource1.DataSet := ClientDataSet1;
MyInterface := nil;
end;
procedure TForm1.Button12Click(Sender: TObject);
var
ss : WideString;
disp : IDispatch;
begin
// ii := IDataPersistentDisp( IDispatch(DCOMConnection1.GetServer) );
//ii.SelectDataEx(WideString(Edit1.Text), ss);
end;
procedure TForm1.Button13Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
ss : WideString;
begin
ClientDataSet1.Close;
//DCOMConnection1.GetServer.QueryInterface(IID_IDataPersistent, MyInterface);
if MyInterface = nil then
begin
ShowMessage('error');
exit;
end;
// (DCOMConnection1.GetServer as IDataPersistent).SelectDataEx(Edit1.Text, ss);
MyInterface.SelectData(Edit1.Text, ss);
sProviderName := Copy(ss, 1, siLeng);
ShowMessage(sProviderName);
ClientDataSet1.ProviderName := Trim(sProviderName);
ClientDataSet1.RemoteServer := DCOMConnection1;
if siLeng <> 0 then
ClientDataSet1.Open;
DataSource1.DataSet := ClientDataSet1;
MyInterface := nil;
end;
procedure TForm1.Button14Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
ss : WideString;
dd: TRDMDataSet;
begin
ClientDataSet1.Close;
//DCOMConnection1.GetServer.QueryInterface(IID_IDataPersistent, MyInterface);
if MyInterface = nil then
begin
ShowMessage('error');
exit;
end;
// dd := TRDMDataSet.Create(MyInterface,DCOMConnection1 );
// dd.SelectRDMDS(Edit1.Text, ClientDataSet1);
// MyInterface := nil;
end;
procedure TForm1.Button15Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
ss : WideString;
dd: TRDMDataSet;
begin
ds2.Close;
// DCOMConnection1.GetServer.QueryInterface(IID_IDataPersistent, MyInterface);
if MyInterface = nil then
begin
ShowMessage('error');
exit;
end;
//dd := TRDMDataSet.Create(MyInterface,DCOMConnection1 );
//dd.SelectRDMDS(Edit1.Text, ClientDataSet1);
end;
procedure TForm1.Button16Click(Sender: TObject);
var
ProviderName: PAnsiChar;
siLeng: Shortint;
sProviderName: String;
ss : WideString;
oo, pp, a1: olevariant;
i, j, k: integer;
df: TValueObjectList;
begin
ClientDataSet1.Close;
// DCOMConnection1.GetServer.QueryInterface(IID_IBODataPersistent, MyInterface2);
{
if MyInterface2 = nil then
begin
ShowMessage('error');
exit;
end;
MyInterface2.getvoList('','', oo);
}
for i:=0 to VarArrayHighBound(oo,1) do
begin
pp := oo[i];
if not VarIsArray(pp) then
Exit;
for j:=0 to VarArrayHighBound(pp,1) do
begin
a1 := pp[j];
for k:=0 to VarArrayHighBound(a1,1) do
begin
ShowMessage( String(a1[k]) );
end;
end;
end;
end;
procedure TForm1.Button17Click(Sender: TObject);
var
oo: OleVariant;
i_i: integer;
ss: TValueObject;
begin
{
ClientDataSet1.Close;
{ DCOMConnection1.GetServer.QueryInterface(IID_IBODataPersistent, MyInterface2);
if MyInterface2 = nil then
begin
ShowMessage('error');
exit;
end;
MyInterface2.getvoList('TUserBO', '' , oo); }
{
pp := TValueObjectList.Create;
pp.OLEToDS(oo);
dataSource1.DataSet := pp.pDataSet; }
{
if assigned(ss) then
ShowMessage(ss.ClassName)
else
showmessage('ero');
exit; }
{
pp.pVOClassName := TUserVO;
pp.POLEDataList := oo;
ss := TUserVO(pp.GetItem(1));
if ss<>nil then
ShowMessage((ss as TUserVO).pName); }
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
dataSource1.DataSet.Append;
end;
procedure TForm1.Button19Click(Sender: TObject);
begin {
if pp.pDataSet.State in [dsEdit, dsInsert] then
begin
pp.pDataSet.Fields[0].Value:= Edit4.Text;
pp.pDataSet.Fields[1].Value:= Edit5.Text;
pp.pDataSet.Fields[2].Value:= Edit6.Text;
pp.pDataSet.Post;
end
else
pp.pDataSet.Edit; }
end;
procedure TForm1.Button20Click(Sender: TObject);
begin
{ pp.pDataSet.Open;
pp.pDataSet.Edit; }
end;
procedure TForm1.Button21Click(Sender: TObject);
var
j: Integer;
oo: OleVariant;
userVO: TUserVO;
begin
//changecount > 0 , delta is not null .
{
pp := TValueObjectList.Create;
if pp.pDataSet.ChangeCount>0 then
ShowMessage('ok')
else
ShowMessage('no data');
userVO :=TUserVO.Create;
userVO.pID := EDIT3.Text;
userVO.pName := Edit4.Text;
userVO.pPwd := Edit5.Text;
pp.AddItem(1,userVO); }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -