10分钟10行代码开发APP(delphi 应用案例)

摘要:
将以下代码添加到DSServerClass1事件处理程序:PersistentClass:=ServerMethodsUnit。TDSServerModule_演示数据;1.4运行DataSnap服务右键单击DataSnapServerProject Exe并选择“运行而不调试”。TDSProviderConnection控件将SQLConnection属性设置为SQLConnection1.L将ProviderName属性设置为DataSetProvider_login

总结一下用到的知识(开发环境安装配置不计算在内):

  • 第六章 使用不同风格的按钮;
  • 第十七章 让布局适应不同大小与方向的窗体;
  • 第二十五章使用 dbExpress访问 InterBase ToGo
  • 第二十九章 从移动客户端连接到企业数据库;

以下是具体制作步骤:

1、创建DataSnap服务VCL应用程序

1.1 创建服务程序

新建一个项目:Delphi Projects >DataSnap Server > DataSnap Server

10分钟10行代码开发APP(delphi 应用案例)第1张

1. 第一步,选择Forms Application项目类型。

10分钟10行代码开发APP(delphi 应用案例)第2张

2. 第二步,VCL Application应用程序类型。

10分钟10行代码开发APP(delphi 应用案例)第3张

3. 第三步,在服务器功能列表是选择TCP/IP协议、Server Methods ClassSample Methods

10分钟10行代码开发APP(delphi 应用案例)第4张

4. 第四步,保留默认的TCP/ IP通信端口211。这将确保客户端和服务器之间的通信将通过默认 DataSnap 端口。

10分钟10行代码开发APP(delphi 应用案例)第5张

5. 选择服务器继承至TDSServerModule

10分钟10行代码开发APP(delphi 应用案例)第6张

6. 保存窗体单元为DataSnapServerUnit

7. 切换到DataSnapServerUnit,并将窗体的Name属性更改为DSServerForm

8. 保存服务器方法单元 (默认情况下,通过该向导所创建︰ServerMethodsUnit1)作为ServerModuleUnit

9. 保存服务器容器单元 (默认情况下,通过该向导所创建︰ServerContainerUnit1)作为ServerContainerUnit

10. 将新项目保存为DataSnapServerProject

11. 在Project Manager选择 ProjectGroup1,并将项目另存为DataSnapTutorialProjectGroup.groupproj.

10分钟10行代码开发APP(delphi 应用案例)第7张

1.1定义DataSnap 服务器上的数据集

1. 切换到ServerContainerUnit.pas文件把implementation下的uses子句替换成:usesWinapi.Windows,ServerModuleUnit。

10分钟10行代码开发APP(delphi 应用案例)第8张

2. 切换到ServerModuleUnit.pas文件。

3. 在窗体设计器,更改Name属性为DSServerModule_Demodata

10分钟10行代码开发APP(delphi 应用案例)第9张

4. 在服务器模块(ServerModule)配置以下属性:

(1)拖放 TSQLConnection 控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为SQLConnection_Demodata.
  • 设置 LoginPrompt 属性为 False.
  • 设置 Driver 属性为 InterBase Server.
  • 展开 Driver节点,设置 DataBase属性为:G:demoDataSnapdatabaseDEMO_DATA.GDB.(本机数据文件位置。)
  • 更改 Connected属性为 True。

10分钟10行代码开发APP(delphi 应用案例)第10张

(2)拖放TSQLDataSet控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 SQLConnection_login.
  • 设置SQLConnection 属性为SQLDataSet_Demodata.
  • 设置CommandType属性为 ctQuery.
  • 设置 CommandText属性为 select CASE count(id) when 1 then 1else 0 end as coufrom T_USER where user_name=:user_nameand pass=:pass

10分钟10行代码开发APP(delphi 应用案例)第11张

  • 点击Params后面[…]按钮,设置参数类型如下:

10分钟10行代码开发APP(delphi 应用案例)第12张

10分钟10行代码开发APP(delphi 应用案例)第13张

  • 更改 Active 属性为 True。

(3)拖放TdataSetProvider控件到服务器模块,并设置以下属性:

  • 设置 Name属性为 DataSetProvider_login.
  • 设置 DataSet属性为 SQLDataSet_login:

10分钟10行代码开发APP(delphi 应用案例)第14张

(4)拖放TSQLDataSet控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 SQLDataSet_city.
  • 设置SQLConnection 属性为SQLConnection_Demodata.
  • 设置CommandType属性为 ctTable.
  • 设置CommandText属性为 T_CITY.
  • 设置Active 属性为 True。

10分钟10行代码开发APP(delphi 应用案例)第15张

(5)拖放TdataSetProvider控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 DataSetProvider_city.
  • 设置 DataSet 属性为 SQLDataSet_city:

10分钟10行代码开发APP(delphi 应用案例)第16张

1.3暴露DataSnap 服务器数据集

1. 在窗体设计器中,打开ServerContainerUnit.

2. 选择DSServerClass1,并更新OnGetClass事件的现有事件处理程序。DSServerClass1事件处理程序中添加以下代码:

PersistentClass := ServerMethodsUnit.TDSServerModule_Demodata;

1.4运行 DataSnap 服务

右键单击DataSnapServerProject.exe并选择Run Without Debugging

10分钟10行代码开发APP(delphi 应用案例)第17张

运行效果如下:

10分钟10行代码开发APP(delphi 应用案例)第18张

2、 创建连接到DataSnap服务器的移动应用程序

1. 在 ProjectManager,右键点击DataSnapTutorialProjectGroup,选择Add New Project

10分钟10行代码开发APP(delphi 应用案例)第19张

2. 在Delphi Projects页选择Multi-Device Application

10分钟10行代码开发APP(delphi 应用案例)第20张

3. 保存新单元为DataSnapClientUnit

4. 保存新项目为DataSnapClientProject

5. 打开DataSnapClientUnit,更改Name属性为DSClientForm

6. 拖放以下控件到窗体设计器:

(1)TSQLConnection控件(SQLConnection1)

  • 设置Driver属性为DataSnap.
  • 展开Driver属性,并设置HostName属性为DataSnap服务器的主机名或IP。
  • 设置 LoginPrompt 属性为 False。
  • 设置 Connected 属性为 True。

10分钟10行代码开发APP(delphi 应用案例)第21张

(2)TDSProviderConnection控件(DSProviderConnection1)

  • 设置 SQLConnection 属性为 SQLConnection1。
  • 设置 ServerClassName为 TDSServerModule_demodata。此名称应匹配 DataSnap服务器的服务器模块中类的名称。
  • 设置 Connected 属性为 True。

10分钟10行代码开发APP(delphi 应用案例)第22张

(3)TClientDataSet控件(ClientDataSet1)

l 设置 Name属性为ClientDataSet_login。

l 设置 RemoteServer属性为 DSProviderConnection1。

l 设置 ProviderName属性为:DataSetProvider_login。这个名称必须与DataSnap服务器提供者的名称匹配。

10分钟10行代码开发APP(delphi 应用案例)第23张

  • 点击Params后面[…]按钮,设置参数类型如下:

10分钟10行代码开发APP(delphi 应用案例)第24张

10分钟10行代码开发APP(delphi 应用案例)第25张

  • 设置 Active 属性为 True。

(4)TListView控件

  • 设置 Align 属性为 Client。
  • 其他设置如下属性:

10分钟10行代码开发APP(delphi 应用案例)第26张

(5)TLayout控件

  • 设置 Align 属性为Center.

(6)两个Tlabel,两个TEDIT,一个按钮控件放入Tlayout中;

  • 分别设置Tlabel的属性Text为用户名、密码;.
  • 设置EDIT2 属性PassWord为True;
  • 设置按钮Text属性为登录;

7. 打开LiveBindings Designer连接数据的用户界面,如下所示:

(1)点击BindSourceDB1中的 COU,拖动到ListView1中Visible;

(2)点击BindSourceDB1中的 COU,拖动到BindSourceDB2中Active;

(3)点击BindSourceDB2中的 CITY_NAME,拖动到ListView1中Item.Detail;

10分钟10行代码开发APP(delphi 应用案例)第27张

(3)选中LinkFillControlToField1,设置下图三个属性;

10分钟10行代码开发APP(delphi 应用案例)第28张

8. 双击按钮,在代码编辑器中输入如入代码:

if not((Edit1.Text.IsEmpty()) or(Edit2.Text.IsEmpty())) then
  begin
    ClientDataSet_login.Active :=False;
    ClientDataSet_login.ParamByName('user_name').Value :=Edit1.Text;
    ClientDataSet_login.ParamByName('pass').Value :=Edit2.Text;
    ClientDataSet_login.Active :=True;
    Layout1.Visible :=not(ClientDataSet_login.FieldByName('cou').AsInteger=1);
  end
  else
    ShowMessage('用户名或密码不能为空。');
---------------------

9. 所有开发完成,可编译运行。发布IOS模拟器前需要部署MIDAS库,具体部署方法可参看Delphi XE8开发iOS和Android移动应用开发教程[完整中文版]》内的介绍

免责声明:文章转载自《10分钟10行代码开发APP(delphi 应用案例)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇合理作差法构造辅助函数[unity菜鸟] controller.SimpleMove(transform .forward); 无法移动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单

{================================================================= 功 能: 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式 参 数: FileName : 快捷方式执行文件名 Description : 快捷方式描述信息 Arguements...

Delphi连接Oracle控件ODAC的安装及使用

Delphi ODAC 控件下载 ODAC 64位客户端 12.1.0.2.4 http://down-ww3.7down.net/pcdown/soft/xiazai/odac-x64.rar Delphi连接Oracle有很多种方式,但大多要在客户机上安装Oracle那庞大的客户端,比较不方便,使用ODAC控件连接Oracle则免去了这些麻烦。ODAC...

Delphi调用IE打开网页

//调用相应程序打开   uses ShellAPI;   procedure TForm1.Button1Click(Sender: TObject);   begin   //用IE打开   ShellExecute(Handle, 'open', 'IExplore.EXE', 'about:blank', nil, SW_SHOWNORMAL);...

Delphi 条件判断那些事

技术交流,DH讲解. 之前照着天书夜读,用Delphi来弄了下循环体,现在就来弄一下条件判断吧.首先肯定是我们经常看见的IF语句咯. Var I: Integer; Begin I:= 99; If (I> 0)And (I< 0) Then Writeln('I>0') Else If (I> 10)...

request和response简介

Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象、和代表响应的response对象。 既然request对象代表http请求,那么我们获取浏览器提交过来的数据,找request对象即可。response对象代表http响应,那么我们向浏览器输出数据,找response对象即可。 http响应由状态行、实体内容...

【sql server镜像】SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)

SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guocreatetime:2019-03-26 1、概念 1.1、服务器概念 ◆ 主体服务器(Principal Server) 其中一个实例为客户端提供服务,这个实例称为"主体服务器"。该服务器"扮演"主体角色",其数据库副本为当前的"主体数据库"。 ◆ 镜像服务器(Mirr...