### XE4+QuickBurro移动三层架构编程指南 #### 一、基础知识 **1.1 字段类型及属性** 在QuickBurro框架下,为了实现高效的数据传输和存储,开发者需要了解各种字段类型的特性及其在移动应用中的应用场景。例如,`TMBIntegerField`用于整数型数据,`TMBStringField`则适用于字符串类型的数据存储。 **1.2 数据序列化与打包** 数据序列化是将对象的状态转换为可存储或传输的格式的过程。QuickBurro提供了`TMBParcel`类来帮助完成这个过程。开发者可以通过调用`WriteInteger`, `WriteString`等方法将数据写入`TMBParcel`实例中,从而实现数据的序列化和打包。例如: ```pascal var Parcel: TMBParcel; begin Parcel := TMBParcel.Create; try Parcel.WriteInteger(123); Parcel.WriteString('Hello'); // 其他数据写入操作 finally Parcel.Free; end; end; ``` **1.3 数据解包与反序列化** 数据解包即是从已序列化的数据中恢复出原始对象的过程。同样地,`TMBParcel`类提供了读取数据的方法,如`ReadInteger`, `ReadString`等,以实现数据的解包和反序列化。 ```pascal var Parcel: TMBParcel; begin Parcel := TMBParcel.Create; try // 假设Parcel已经包含序列化后的数据 ShowMessage(IntToStr(Parcel.ReadInteger)); ShowMessage(Parcel.ReadString); finally Parcel.Free; end; end; ``` **1.4 使用TMBParcel类的完整示例** 这里提供一个完整的示例来展示如何使用`TMBParcel`进行数据的序列化和反序列化: ```pascal procedure SerializeAndDeserialize; var Parcel: TMBParcel; IntegerValue: Integer; StringValue: string; begin Parcel := TMBParcel.Create; try // 序列化数据 Parcel.WriteInteger(123); Parcel.WriteString('Hello'); // 反序列化数据 IntegerValue := Parcel.ReadInteger; StringValue := Parcel.ReadString; // 输出结果 ShowMessage(IntToStr(IntegerValue)); ShowMessage(StringValue); finally Parcel.Free; end; end; ``` #### 二、寻址与连接 **2.1 TMBConnection控件** `TMBConnection`控件用于实现客户端与服务端之间的连接。它提供了丰富的属性和事件,以满足不同场景下的需求。 **2.1.1 控件属性** - **Server**: 服务器地址。 - **Port**: 服务器监听的端口号。 - **Connected**: 表示当前是否已建立连接。 - **LoginPrompt**: 是否显示登录提示对话框。 **2.1.2 控件事件** - **OnConnect**: 在连接成功时触发。 - **OnDisconnect**: 在断开连接时触发。 - **OnLogin**: 当用户登录时触发。 **2.1.3 控件方法** - **Connect**: 主动发起连接。 - **Disconnect**: 断开连接。 - **SendData**: 发送数据到服务器。 **2.2 TMBFinder控件** `TMBFinder`控件主要用于在局域网内查找其他设备上的服务。 **2.2.1 控件属性** - **ServiceType**: 要查找的服务类型。 - **LocalAddress**: 本地地址。 - **Timeout**: 查找超时时间。 **2.2.2 控件事件** - **OnFindService**: 在找到服务时触发。 - **OnFindComplete**: 查找完成后触发。 **2.2.3 控件方法** - **StartFind**: 开始查找服务。 - **StopFind**: 停止查找服务。 #### 三、数据库访问 QuickBurro框架支持对移动设备上的本地数据库进行访问和管理。 **3.1 TMBAccessor属性** - **Database**: 数据库名称。 - **TableName**: 表名。 - **Active**: 表示连接是否活跃。 - **SQL**: 最近执行的SQL语句。 **3.2 TMBAccessor事件** - **OnExecute**: 在执行SQL语句前触发。 - **OnExecuteError**: 执行SQL语句时发生错误时触发。 - **OnRecordChanged**: 记录发生变化时触发。 **3.3 TMBAccessor方法** **3.3.1 简单读写方法** - **Open**: 打开数据表。 - **Close**: 关闭数据表。 - **First**: 移动到第一条记录。 - **Last**: 移动到最后一条记录。 - **Next**: 移动到下一条记录。 - **Prior**: 移动到上一条记录。 **3.3.2 记录插入与修改** - **Append**: 添加新记录。 - **Edit**: 编辑当前记录。 - **Post**: 提交编辑或新增记录。 - **Cancel**: 取消编辑或新增操作。 **3.3.3 Blob字段处理方法** - **BlobCreate**: 创建新的Blob字段。 - **BlobLoadFromStream**: 从流中加载Blob数据。 - **BlobSaveToStream**: 将Blob数据保存到流中。 **3.3.4 ClientDataset集中提交** - **ApplyUpdates**: 应用更新到数据库。 **3.3.5 存储过程调用** - **ExecSQL**: 执行SQL语句。 - **ExecQuery**: 执行查询语句并返回结果集。 **3.3.6 键值生成** - **GenerateKey**: 生成新的键值。 **3.3.7 多数据集读写** - **Clone**: 创建数据集副本。 - **Sync**: 同步两个数据集。 **3.3.8 组合任务** - **BeginTrans**: 开始事务。 - **CommitTrans**: 提交事务。 - **RollbackTrans**: 回滚事务。 #### 四、文件目录访问 **4.1 TMBFiles属性** - **FileName**: 文件名。 - **Directory**: 目录路径。 **4.2 TMBFiles事件** - **OnFileCreated**: 文件创建后触发。 - **OnFileDeleted**: 文件删除后触发。 **4.3 TMBFiles方法** - **CreateFile**: 创建文件。 - **DeleteFile**: 删除文件。 - **CopyFile**: 复制文件。 - **MoveFile**: 移动文件。 - **GetFileSize**: 获取文件大小。 #### 五、消息发送 **5.1 TMBPoster属性** - **Message**: 要发送的消息内容。 - **Destination**: 目标地址。 - **Priority**: 消息优先级。 **5.2 TMBFiles事件** - **OnMessageSent**: 消息发送成功后触发。 - **OnMessageFailed**: 消息发送失败时触发。 **5.3 TMBFiles方法** - **SendMessage**: 发送消息。 - **CancelMessage**: 取消正在发送的消息。 #### 六、消息接收 对于消息接收部分,虽然文档中没有给出详细的信息,但可以推测`TMBPoster`控件不仅支持消息发送也支持消息接收。通常情况下,消息接收会涉及到以下方面: - **设置监听器**:通过设置监听器来捕获收到的消息。 - **消息队列**:管理接收到的消息,以便按顺序处理。 - **事件处理**:定义消息到达时的回调函数,用于处理具体的逻辑。 总结以上内容,我们可以看到QuickBurro框架提供了非常全面且强大的功能来支持移动应用开发中的各种需求,从基本的数据处理到复杂的网络通信和数据库访问都有相应的解决方案。开发者可以根据自己的项目需求选择合适的组件和方法来进行高效的应用程序开发。
剩余52页未读,继续阅读
- bllsbgw2013-07-08比较有帮助,讲的也比较详细
- 粉丝: 4
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助