0

クエリを挿入したい:

INTO A_TABLE (BLOB_FIELD) 値 (MY_BLOB_VAL) に挿入

しかし、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 フィールドに文字列を挿入するにはどうすればよいでしょうか?

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は、db列に挿入されるリテラル文字列としてではなく、SQLコマンドとして解釈しようとします。

それでも、引用に行かないでください。パラメータを使用することをお勧めします。より安全です。

于 2011-03-20T17:24:14.510 に答える