我有一个使用 DataAbstract 和 RemObjects 构建的客户端/服务器应用程序,其中客户端正在传输二进制变量以供服务器放入数据库中。服务器功能如下所示
function SetItemContent(const anItemId: UnicodeString; const anItemContent: Binary): Boolean;
但我不知道从服务器访问表以将该二进制变量保存在 blob 中的热度。我在 DA 文档中也找不到任何参考。
我有一个使用 DataAbstract 和 RemObjects 构建的客户端/服务器应用程序,其中客户端正在传输二进制变量以供服务器放入数据库中。服务器功能如下所示
function SetItemContent(const anItemId: UnicodeString; const anItemContent: Binary): Boolean;
但我不知道从服务器访问表以将该二进制变量保存在 blob 中的热度。我在 DA 文档中也找不到任何参考。
您可以在服务实现模块上使用 TDALocalDataAdapter,并连接 TDAMemDataTable。然后,您可以使用 Dynamic Where(或参数化的 DataTable)使用普通的 TDataset 技术查找和更新您的记录。(即插入、编辑、发布)
您应该用事务包围任何更新。使用 Connection.BeginTransaction、RollbackTransaction 和 CommitTransaction。
编辑 ====
您还可以使用 IDASQLCommand:使用 Connection.NewCommand 方法。您可以直接将此 SQL 作为参数提供,或者(更好的是恕我直言 ++)提供您在 Schema 中创建的参数化更新/插入 SQL 命令的名称。
我想您仍然必须知道是否插入/更新,以便您可以使用 Connection.NewDataset 方法中的 IDADataset 使用 MyDataset.IsEmpty 来建立它。首先在 Schema 中创建一个 Dataset 或传递 SQL。
关于使用事务的观点仍然适用于这种方法。
++ 更好,因为这允许您通过对每个数据表或命令对象使用多个语句来更好地支持多个 DB 后端。