Как сделать запрос вставки со строкой в ​​виде BLOB-объекта в Delphi / Interbase - PullRequest
0 голосов
/ 20 марта 2011

Я бы хотел вставить запрос:

INSERT INTO A_TABLE (BLOB_FIELD) VALUES (MY_BLOB_VAL)

но у меня есть только строковые значения в delphi для ex:

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 между базами ???

1 Ответ

5 голосов
/ 20 марта 2011

Как это:

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.

Тем не менее, не надо цитировать. Всегда лучше использовать параметры, это безопаснее!

...