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