我想做一个查询插入:
插入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字段中插入字符串???
答案 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列的文字字符串。
尽管如此,不要去引用。使用参数总是更好,它更安全!