0

我想做一个查询插入:

插入 A_TABLE (BLOB_FIELD) 值(MY_BLOB_VAL)

但我在delphi中只有字符串值,例如:

procedure INSERT_BLOB_QUERY
  var
    query:String;
    my_blob_val:String;
begin
   my_blob_val := 'a blob string to be inserted';
   query := 'INSERT INTO A_TABLE (BLOB_FIELD) VALUES(' + my_blob_val + ')';
   // to execute a query....
end;

出现的问题是字符串到 blob 的转换。

那么如何在 interbase blob 字段中插入字符串???

4

1 回答 1

5

像这样:

procedure INSERT_BLOB_QUERY;
begin
  query.SQL.Text := 'INSERT INTO A_TABLE (BLOB_FIELD) VALUES (:VAL)';
  query.ParamByName('VAL').AsString := 'a blob string to be inserted';
end;

您的代码不起作用,因为您没有将字符串作为参数传递,而是将其作为查询的一部分传递。如果你这样做,你显然需要引用它:你这样做的方式 Interbase 将尝试将其解释为 SQL 命令,而不是插入到 db 列中的文字字符串。

尽管如此,不要去引用。使用参数总是更好,更安全!

于 2011-03-20T17:24:14.510 回答