DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: aaa27143721
今日帖子: 20
在线用户: 27
导航: 论坛 -> 文档资料 斑竹:liumazi,ruralboy  
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/26 15:55:45
标题:
AppMethod+QuickBurro远程数据库访问Demo 浏览:2502
加入我的收藏
楼主: 1、概述
   使用QuickBurro中的实体类生成工具可以生成AppMethod下的远程数据库实体类代码,所以,AppMethod+QuickBurro下开发远程数据交互的过程很简单:

a,数据库设计
b,使用工具,生成AppMethod下的实体类单元
c,应用开发,使用上一步生成的实体类进行远程数据访问


2、搭建一个示例程序,完成通信录的增删改(厌烦了此Windows风格界面的,请自己花哨)
此帖子包含附件:
JPEG 图像
大小:37.1K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/26 15:56:31
1楼: 3、看主单元代码、运行效果
unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
  MBAccessor, MBConnection, FMX.Grid, FMX.Layouts, FMX.StdCtrls, Entity_Customers;

type
  TForm1 = class(TForm)
    Header: TToolBar;
    HeaderLabel: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Footer: TToolBar;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    StyleBook1: TStyleBook;
    Grid: TStringGrid;
    StringColumn1: TStringColumn;
    StringColumn2: TStringColumn;
    StringColumn3: TStringColumn;
    StringColumn4: TStringColumn;
    MBConn: TMBConnection;
    MBA: TMBAccessor;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    CustomersList: TCustomersList;
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses EditCustomer;

//
// 退出...
procedure TForm1.Button1Click(Sender: TObject);
begin
  if messagedlg('是否确认退出本测试程序?', TMsgDlgType.mtConfirmation, mbYesNo,0)<>mrYes then
     exit;
   if assigned(CustomersList) then
      FreeAndNil(CustomersList);
   halt;
end;

//
// 连接服务器...
procedure TForm1.Button2Click(Sender: TObject);
begin
   if mbconn.connect then
      ShowMessage('连接应用服务器成功!')
   else
      ShowMessage('连接应用服务器失败!');
end;

//
// 与服务器断开...
procedure TForm1.Button3Click(Sender: TObject);
begin
   mbconn.disconnect;
   ShowMessage('与应用服务器断开!');
end;

//
// 显示客户列表...
procedure TForm1.Button5Click(Sender: TObject);
var
   i: integer;
   Customer: TCustomers;
begin
//
// 读数据到客户端...
   if assigned(CustomersList) then
      FreeAndNil(CustomersList);
   CustomersList:=TCustomersList.ReadFromDB(mba,'','CustomerId');
   if customerslist=nil then
      begin
        Grid.RowCount:=0;
        ShowMessage('读客户资料列表失败!');
        exit;
      end;
//
// 显示到StringGrid...
   Grid.BeginUpdate;
   Grid.RowCount:=CustomersList.Count;
   for i := 0 to CustomersList.Count-1 do
      begin
        Customer:=TCustomers(CustomersList.Items[i]);
        Grid.Cells[0,i]:=Customer.f_CustomerId;
        Grid.Cells[1,i]:=Customer.f_CompanyName;
        Grid.Cells[2,i]:=Customer.f_Phone;
        Grid.Cells[3,i]:=Customer.f_Fax;
      end;
   Grid.EndUpdate;
end;

//
// 新增客户记录...
procedure TForm1.Button6Click(Sender: TObject);
begin
   form2.mode:=1;
   form2.show;
end;

//
// 修改所选客户记录...
procedure TForm1.Button8Click(Sender: TObject);
begin
   if Grid.Selected<0 then
      begin
         showmessage('请先选中需要修改的记录!');
         exit;
      end;
   form2.mode:=2;
   form2.customerid:=grid.Cells[0,Grid.Selected];
   form2.show;
end;

//
// 删除所选记录...
procedure TForm1.Button7Click(Sender: TObject);
var
   j,i: integer;
   customer: TCustomers;
begin
   if Grid.Selected<0 then
      begin
         showmessage('请先选中需要删除的记录!');
         exit;
      end;
//
// 删除确认...
  if messagedlg('是否确认删除所选记录?', TMsgDlgType.mtConfirmation, mbYesNo,0)<>mrYes then
     exit;
//
// 从数据库删除...
  j:=Grid.Selected;
  customer:=TCustomers(CustomersList.Items[j]);
  if not customer.DeleteFromDB(mba,'CustomerId='''+customer.f_CustomerID+'''') then
     begin
         showmessage('访问数据库出现错误,删除失败!');
         exit;
     end;
//
// 再从实体列表删除...
  CustomersList.Delete(j);
//
// 从StringGrid删除...
  Grid.BeginUpdate;
  for i := j to Grid.RowCount-2 do
    begin
      grid.Cells[0,i]:=grid.Cells[0,i+1];
      grid.Cells[1,i]:=grid.Cells[1,i+1];
      grid.Cells[2,i]:=grid.Cells[2,i+1];
      grid.Cells[3,i]:=grid.Cells[3,i+1];
    end;
  Grid.RowCount:=Grid.RowCount-1;
  Grid.EndUpdate;
end;

//
// 刷新列表...
procedure TForm1.Button9Click(Sender: TObject);
begin
   Button5Click(nil);
end;

end.
此帖子包含附件:
JPEG 图像
大小:99.6K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/26 15:57:08
2楼: 4、搭建一个记录编辑form,用于进行记录编辑
此帖子包含附件:
JPEG 图像
大小:44.1K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/26 15:57:49
3楼: 5、记录编辑单元的程序代码和运行效果

unit EditCustomer;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Edit, Entity_Customers;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ToolBar1: TToolBar;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    mode: integer;
    customerid: string;
    Customer: TCustomers;
    execute: boolean;
  end;

var
  Form2: TForm2;

implementation

uses main;

{$R *.fmx}

//
// 取消...
procedure TForm2.Button2Click(Sender: TObject);
begin
   if mode=1 then
     FreeAndNil(Customer);
   execute:=false;
   close;
end;

//
// 保存...
procedure TForm2.Button3Click(Sender: TObject);
var
   ok: boolean;
   j: integer;
begin
   if length(trim(edit1.Text))<>5 then
      begin
        showmessage('必须输入5位长的客户编码!');
        exit;
      end;
//
// 更新实体属性...
   customer.f_CustomerID:=trim(edit1.Text);
   customer.f_CompanyName:=trim(edit2.Text);
   customer.f_Phone:=trim(edit3.Text);
   customer.f_Fax:=trim(edit4.Text);
//
// 更新数据库...
   if mode=1 then
      ok:=customer.InsertToDB(form1.MBA)
   else
      ok:=customer.UpdateToDB(form1.MBA,'CustomerId='''+customerid+'''');
   if not ok then
      begin
        showmessage('写数据库失败,请稍后再试!');
        exit;
      end;
//
// 更新显示...
   if mode=1 then
      begin
        form1.Grid.RowCount:=form1.Grid.RowCount+1;
        form1.Grid.Cells[0,form1.Grid.RowCount-1]:=Customer.f_CustomerId;
        form1.Grid.Cells[1,form1.Grid.RowCount-1]:=Customer.f_CompanyName;
        form1.Grid.Cells[2,form1.Grid.RowCount-1]:=Customer.f_Phone;
        form1.Grid.Cells[3,form1.Grid.RowCount-1]:=Customer.f_Fax;
        form1.CustomersList.add(Customer);
      end
   else
      begin
        j:=form1.Grid.Selected;
        form1.Grid.Cells[0,j]:=Customer.f_CustomerId;
        form1.Grid.Cells[1,j]:=Customer.f_CompanyName;
        form1.Grid.Cells[2,j]:=Customer.f_Phone;
        form1.Grid.Cells[3,j]:=Customer.f_Fax;
      end;
//
// 关闭编辑窗...
   close;
end;

//
// 窗口显示时,显示...
procedure TForm2.FormShow(Sender: TObject);
begin
   if mode=1 then
      Customer:=TCustomers.Create
   else
      Customer:=TCustomers(form1.CustomersList.Items[Form1.Grid.Selected]);
   edit1.Text:=customer.f_CustomerID;
   edit2.Text:=customer.f_CompanyName;
   edit3.Text:=customer.f_Phone;
   edit4.Text:=customer.f_Fax;
   edit1.ReadOnly:=(mode=2);
end;

end.
此帖子包含附件:
JPEG 图像
大小:58.9K
----------------------------------------------
樵夫的大马甲
作者:
男 brh616 (风风风) ★☆☆☆☆ -
盒子活跃会员
2014/3/27 7:33:48
4楼: 这个跟进的也太快了。
QB已经超出地球人的速度了!
----------------------------------------------
风风风
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/27 9:13:58
5楼: 6、主从实体类编程示例:
   “房产租赁业务单+房产租赁明细记录”是一种主从表的例子,可以用QuickBurro里的主从实体类生成代码后,由AppMethod客户端使用。

unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
  MBAccessor, MBConnection, FMX.Grid, FMX.Layouts, FMX.StdCtrls, FMX.Edit,
  MBParcel, MBTable, Entity_Lease, Entity_LeaseDetail, FMX.Objects;

type
  TForm1 = class(TForm)
    Header: TToolBar;
    Button2: TButton;
    Button4: TButton;
    StyleBook1: TStyleBook;
    MBConn: TMBConnection;
    MBA: TMBAccessor;
    Panel1: TPanel;
    Panel2: TPanel;
    DetailGrid: TStringGrid;
    StringColumn6: TStringColumn;
    StringColumn7: TStringColumn;
    StringColumn8: TStringColumn;
    StringColumn9: TStringColumn;
    Line1: TLine;
    Footer: TToolBar;
    Grid: TStringGrid;
    StringColumn1: TStringColumn;
    StringColumn2: TStringColumn;
    StringColumn3: TStringColumn;
    StringColumn4: TStringColumn;
    Button1: TButton;
    Button5: TButton;
    Button3: TButton;
    Button6: TButton;
    procedure ShowLeaseList;
    procedure ShowDetailList;
    procedure Button2Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure GridSelChanged(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    LeaseList: TLeaseList;
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses EditLease;

//
// 退出...
procedure TForm1.Button6Click(Sender: TObject);
begin
  if messagedlg('是否确认退出本测试程序?', TMsgDlgType.mtConfirmation, mbYesNo,0)<>mrYes then
     exit;
   mbconn.disconnect;
   halt;
end;

//
// 表格列宽自适应...
procedure TForm1.FormResize(Sender: TObject);
begin
   StringColumn1.Width:=86/384*Form1.ClientWidth;
   StringColumn2.Width:=138/384*Form1.ClientWidth;
   StringColumn3.Width:=85/384*Form1.ClientWidth;
   StringColumn4.Width:=72/384*Form1.ClientWidth;
   StringColumn6.Width:=86/384*Form1.ClientWidth;
   StringColumn7.Width:=138/384*Form1.ClientWidth;
   StringColumn8.Width:=85/384*Form1.ClientWidth;
   StringColumn9.Width:=72/384*Form1.ClientWidth;
end;

//
// 选不同的单据,显示不同的明细...
procedure TForm1.GridSelChanged(Sender: TObject);
begin
   ShowDetailList;
end;

//
// 显示业务单据列表的过程...
procedure TForm1.ShowLeaseList;
var
   i: integer;
   Lease: TLease;
begin
   DetailGrid.RowCount:=0;
   if assigned(LeaseList) then
      FreeAndNil(LeaseList);
   LeaseList:=TLeaseList.ReadFromDB(Mba,'','LeaseId Desc');
   if LeaseList=nil then
      begin
         Grid.RowCount:=0;
         ShowMessage('从服务器读取租赁业务单列表失败!');
         exit;
      end;
   Grid.BeginUpdate;
   Grid.RowCount:=LeaseList.Count;
   for i := 0 to LeaseList.Count-1 do
      begin
         Lease:=TLease(LeaseList.Items[i]);
         Grid.Cells[0,i]:=Lease.f_LeaseId;
         Grid.Cells[1,i]:=Lease.f_CustomerName;
         Grid.Cells[2,i]:=Lease.f_CreateDate;
         Grid.Cells[3,i]:=Lease.f_CreaterName;
      end;
   Grid.EndUpdate;
   if Grid.RowCount>0 then
      ShowDetailList;
end;

//
// 显示租赁明细记录...
procedure TForm1.ShowDetailList;
var
   Lease: TLease;
   i: integer;
   Detail: TLeaseDetail;
begin
   if Grid.Selected<0 then
      exit;
   Lease:=TLease(LeaseList.Items[Grid.Selected]);
   Lease.LoadAppertains(Mba);
   if Lease.f_LeaseDetail_List=nil then
      exit;
   DetailGrid.BeginUpdate;
   DetailGrid.RowCount:=Lease.f_LeaseDetail_List.Count;
   for i := 0 to Lease.f_LeaseDetail_List.Count-1 do
      begin
         Detail:=TLeaseDetail(Lease.f_LeaseDetail_List.Items[i]);
         DetailGrid.Cells[0,i]:=Detail.f_BuildingId;
         DetailGrid.Cells[1,i]:=Detail.f_BuildingName;
         DetailGrid.Cells[2,i]:=Detail.f_BeginDate;
         DetailGrid.Cells[3,i]:=Detail.f_EndDate;
      end;
   DetailGrid.EndUpdate;
end;

//
// 连接/断开服务器...
procedure TForm1.Button2Click(Sender: TObject);
begin
   if Button2.Text='连接' then
      begin
         if mbconn.connect then
          begin
          Button2.Text:='断开';
          ShowLeaseList;
          end
         else
          ShowMessage('连接应用服务器失败!');
      end
   else
      begin
         mbconn.disconnect;
         Grid.RowCount:=0;
         DetailGrid.RowCount:=0;
         Button2.Text:='连接';
      end;
end;

//
// 新建租赁业务单...
procedure TForm1.Button1Click(Sender: TObject);
begin
   Form2.mode:=1;
   Form2.show;
end;

//
// 修改所选租赁业务单...
procedure TForm1.Button5Click(Sender: TObject);
begin
   if grid.Selected<0 then
      exit;
   Form2.mode:=2;
   Form2.LeaseId:=grid.Cells[0,grid.Selected];
   Form2.show;
end;

end.
此帖子包含附件:
JPEG 图像
大小:56.5K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/27 9:17:25
6楼: 7、典型的分页列表显示编程
   可以在AppMethod里通过调用分页存储过程来实现数据列表的分页显示。此为移动开发中最常用的一种技巧。

unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
  MBAccessor, MBConnection, FMX.Grid, FMX.Layouts, FMX.StdCtrls, FMX.Edit,
  MBParcel, MBTable;

type
  TForm1 = class(TForm)
    Header: TToolBar;
    HeaderLabel: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Footer: TToolBar;
    StyleBook1: TStyleBook;
    Grid: TStringGrid;
    StringColumn1: TStringColumn;
    StringColumn2: TStringColumn;
    StringColumn3: TStringColumn;
    StringColumn4: TStringColumn;
    MBConn: TMBConnection;
    MBA: TMBAccessor;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Table: TMBTable;
    function FetchDataPage(aMBA: TMBAccessor; aSQL: string; PageNo: integer; NumberPerPage: integer;
       var AllRecords: integer; var Table: TMBTable): boolean;
    procedure ShowPage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    AllRecords,PageSize,AllPages,CurrentPage: integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

//
// 调用存储过程,得到一页数据的函数...
function TForm1.FetchDataPage(aMBA: TMBAccessor; aSQL: string; PageNo: integer; NumberPerPage: integer;
   var AllRecords: integer; var Table: TMBTable): boolean;
var
   ParamParcel: TMBParcel;
   DatasetCount: integer;
begin
   ParamParcel:=TMBParcel.create;
   ParamParcel.PutStringGoods('@sqlstr',aSQL,gdInput);
   ParamParcel.PutIntegerGoods('@currentpage',PageNo,gdInput);
   ParamParcel.PutIntegerGoods('@pagesize',NumberPerPage,gdInput);
   ParamParcel.PutIntegerGoods('@AllRecords',0,gdInputOutput);
   if aMBA.ReadStoredProcDataset('PagingQuery',ParamParcel,DatasetCount) then
      begin
         AllRecords:=ParamParcel.GetIntegerGoods('@allrecords');
         result:=aMBA.GetStoredProcDataset(1,Table);
      end
   else
      begin
         AllRecords:=0;
         result:=false;
      end;
   FreeAndNil(ParamParcel);
end;

//
// 表格列宽自适应...
procedure TForm1.FormResize(Sender: TObject);
begin
   StringColumn1.Width:=49/384*Form1.ClientWidth;
   StringColumn2.Width:=152/384*Form1.ClientWidth;
   StringColumn3.Width:=92/384*Form1.ClientWidth;
   StringColumn4.Width:=88/384*Form1.ClientWidth;
end;

//
// 显示一页数据的过程...
procedure TForm1.ShowPage;
var
   i: integer;
begin
   if not FetchDataPage(MBA,'Select * from customers order by customerid',CurrentPage,PageSize,AllRecords,Table) then
      begin
         Grid.RowCount:=0;
         edit1.Text:='';
         edit2.Text:='';
         ShowMessage('从服务器读取一页数据失败!');
         exit;
      end;
   AllPages:=AllRecords div PageSize;
   if AllPages*PageSize<AllRecords then
      inc(AllPages);
   Table.First;
   Grid.BeginUpdate;
   Grid.RowCount:=Table.RecordCount;
   i:=0;
   while not Table.Eof do
      begin
         Grid.Cells[0,i]:=Table.GetAsString('CustomerId');
         Grid.Cells[1,i]:=Table.GetAsString('CompanyName');
         Grid.Cells[2,i]:=Table.GetAsString('Phone');
         Grid.Cells[3,i]:=Table.GetAsString('Fax');
         inc(i);
         Table.Next;
      end;
   Table.Close;
   Grid.EndUpdate;
   Edit1.Text:=inttostr(AllPages);
   edit2.Text:=inttostr(CurrentPage);
end;

//
// 转首页...
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
   if CurrentPage<>1 then
      begin
        CurrentPage:=1;
        ShowPage;
      end;
end;

//
// 回退一页...
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
   if CurrentPage>1 then
      begin
        Dec(CurrentPage);
        ShowPage;
      end;
end;

//
// 前进一页...
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
   if CurrentPage<AllPages then
      begin
        Inc(CurrentPage);
        ShowPage;
      end;
end;

//
// 转尾页...
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
   if CurrentPage<>AllPages then
      begin
        CurrentPage:=AllPages;
        ShowPage;
      end;
end;

//
// 退出...
procedure TForm1.Button1Click(Sender: TObject);
begin
  if messagedlg('是否确认退出本测试程序?', TMsgDlgType.mtConfirmation, mbYesNo,0)<>mrYes then
     exit;
   halt;
end;

//
// 连接服务器...
procedure TForm1.Button2Click(Sender: TObject);
begin
   if mbconn.connect then
      begin
         PageSize:=20;
         CurrentPage:=1;
         ShowPage;
      end
   else
      ShowMessage('连接应用服务器失败!');
end;
//
// 与服务器断开...
procedure TForm1.Button3Click(Sender: TObject);
begin
   mbconn.disconnect;
   Grid.RowCount:=0;
   ShowMessage('与应用服务器断开!');
end;

end.
此帖子包含附件:
JPEG 图像
大小:87.6K
----------------------------------------------
樵夫的大马甲
作者:
男 ww66 (wzs) ★☆☆☆☆ -
普通会员
2014/3/27 14:12:29
7楼: 支持c++builder吗?
----------------------------------------------
http://www.inteLi7.cn
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/27 14:59:09
8楼: 桌面部分支持RAD STUDIO
移动部分,不清楚哦
----------------------------------------------
樵夫的大马甲
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2014/3/28 14:21:44
9楼: 最近樵夫挺积极啊,这个东西从未了解过,学起来麻烦吗?
还有,如果我买一套QuickBurro,这些2ccc上的例子都有源码Demo吗?这样学起来快一些
----------------------------------------------
-
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
2014/3/28 14:22:50
10楼: 另外,不知道速度怎样,我用XE5+Datasnap做数据,貌似速度很一般
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2014/3/28 15:35:35
11楼: 这些都是demo,都包含在演示包里
成为正式用户的话,另外还会送一些更实用的代码

在Internet上运行速度不错的,可以体验一下俺在QQ群里发的那个“房产管理系统”的客户端,服务端在北京
----------------------------------------------
樵夫的大马甲
作者:
男 njknb (njknb) ▲△△△△ -
注册会员
2017/11/14 9:41:28
12楼: Open stored procedure dataset error:[EOleException]-找不到存储过程
'PagingQuery'
----------------------------------------------
njknb
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲△△ -
注册会员
2017/11/14 11:15:01
13楼: 我靠,这么古老的帖子都被你挖出来了呀!
存储过程代码在:vclsdk\sqlpagequery.txt里

QuickBurro太强大,下图是梦幻般的开发环境:)
.
此帖子包含附件:
PNG 图像
大小:91.5K
----------------------------------------------
樵夫的大马甲
作者:
男 xingyunze (xingyunze) ▲△△△△ -
注册会员
2018/4/14 1:00:34
14楼: led operating lamp
operating lamp
medical operating lamp
shadowless operating lamp
shadowless operating lights
operating operating lamp
operating surgical lamp

shadowless lamp
operating table
operating bed
medical bed
hospital bed
medical pendant
Electric medical bed
medical led operating lamp
shadowless led operating lamp


operating lamp for sales
operating lamp in china
operating table for sales
operating bed for sales
medical bed for sales
hospital bed for sales
shadowless lamp for sales
shadowless lamp in china

medical pendant for sales
operating table in china
operating bed in china
medical bed in china
hospital bed in china
medical pendant in china
medical equipment in china
medical equipment for sales



手术床
手术台
手术灯
无影灯
手术无影灯
医用手术床
电动手术台
医用手术台
LED手术无影灯
医用手术灯
电动手术床
LED无影灯
医用无影灯

多功能手术台
多功能手术床
LED手术灯
医用手术灯
液压手术台
机械手术台
电动病床
医用吊塔
医用病床
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行62.5毫秒 RSS