|

楼主 |
发表于 2013-8-4 14:34:18
|
显示全部楼层
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, ComCtrls, LazConnection, LazAccessor, LazRpc, memds, db, LazParcel,
LazFileTransfer, LazFiles, LazMemTable;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button5: TButton;
dba: TLazAccessor;
ImageList1: TImageList;
LazConn: TLazConnection;
files: TLazFiles;
MTab: TLazMemTable;
ListView1: TListView;
Memo1: TMemo;
Panel1: TPanel;
Panel2: TPanel;
Rpc: TLazRpc;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
//
// 退出...
procedure TForm1.Button5Click(Sender: TObject);
begin
application.Terminate;
end;
//
// 读数据集测试...
procedure TForm1.Button1Click(Sender: TObject);
begin
if dba.ReadDataset('select * from customers',MTab) then
begin
memo1.lines.add('读远程数据集成功!');
memo1.lines.add(' 记录总数='+inttostr(MTab.RecordCount));
MTab.First;
listview1.Items.BeginUpdate;
listview1.Items.Clear;
while not MTab.EOF do
begin
with listview1.items.add do
begin
caption:=trim(AnsiToUTF8(MTab.GetAsString('CustomerId')));
subitems.add(trim(AnsiToUTF8(MTab.GetAsString('CompanyName'))));
subitems.add(trim(AnsiToUTF8(MTab.GetAsString('Phone'))));
end;
MTab.next;
end;
listview1.Items.EndUpdate;
MTab.Close;
end
else
memo1.lines.add('读远程数据集失败!Error='+dba.LastError);
end;
//
// 读文件内容测试...
procedure TForm1.Button2Click(Sender: TObject);
var
Stream: TMemoryStream;
tmpstr: string;
begin
Stream:=TMemoryStream.Create;
if files.RemoteFileToStream('config\users.lst',stream) then
begin
memo1.lines.add('从服务器读文件成功!内容:');
setlength(tmpstr,stream.size);
stream.Position:=0;
move(stream.Memory^,tmpstr[1],stream.size);
tmpstr:=AnsiToUtf8(tmpstr);
memo1.lines.add(tmpstr);
end
else
memo1.lines.add('从服务器读文件失败!Error='+dba.LastError);
end;
//
// 远过程调用测试...
procedure TForm1.Button3Click(Sender: TObject);
var
InParcel,OutParcel: TLazParcel;
tmpstr: string;
begin
InParcel:=TLazParcel.create;
InParcel.putstringgoods('echostring','欲把西湖比西子,淡妆浓抹总相宜。');
OutParcel:=TLazParcel.create;
if rpc.Call('rpcecho.asq',inparcel,outparcel) then
begin
memo1.lines.add('远过程调用成功!');
memo1.lines.add(' 传入的参数='+'欲把西湖比西子,淡妆浓抹总相宜。');
tmpstr:=outparcel.getstringgoods('echostring');
memo1.lines.add(' 传出的参数='+tmpstr);
end
else
memo1.lines.add('远过程调用成功失败!');
FreeAndNil(inparcel);
FreeAndNil(OutParcel);
end;
//
// 程序启动时,连接应用服务器...
procedure TForm1.FormCreate(Sender: TObject);
begin
if lazconn.Connect then
memo1.lines.add('连接服务器成功!')
else
memo1.lines.add('连接服务器失败!Error='+dba.LastError);
end;
end.
|
|