如何在delphi / interbase中使用string作为blob进行插入查询

时间:2011-03-20 16:40:06

标签: string delphi blob interbase

我想做一个查询插入:

插入A_TABLE(BLOB_FIELD)值(MY_BLOB_VAL)

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

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字段中插入字符串???

1 个答案:

答案 0 :(得分: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列的文字字符串。

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