【问题标题】:How can I update a blob field on the server如何更新服务器上的 blob 字段
【发布时间】:2023-03-16 10:35:01
【问题描述】:

我有一个使用 DataAbstract 和 RemObjects 构建的客户端/服务器应用程序,其中客户端正在传输二进制变量以供服务器放入数据库中。服务端函数是这样的

function SetItemContent(const anItemId: UnicodeString; const anItemContent: Binary): Boolean;

但我不知道如何从服务器访问表以将该二进制变量保存在一个 blob 中。我在 DA 文档中也找不到任何参考。

【问题讨论】:

    标签: database delphi remobjects anydac dataabstract


    【解决方案1】:

    您可以在服务实现模块上使用 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 后端。

    【讨论】:

    • 我期待一些更简单的事情:创建一个 TDAMemDataTable 对于这样一个简单的任务似乎需要做很多事情。如果没有人想出更好的方法,我会接受你的回答。
    • 经过一些测试,我得出了与您相同的结论。非常感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多