我想用型如:Insert into tableName (field1,field2,....) values (value1,value2,...) 来插入二进制流.
我知道ADO返回后可以用POST方法实现,关键是我不想用POST的方法来插入流
谢谢了

解决方案 »

  1.   

    当然可以,将变量转换为stream,然后Parameters.ParamByName('Field').LoadFromStream(Stream,ftblob);
      

  2.   

    我想说的是只用这两句来执行插入操作:
    Adoquery.sql.text:='Insert into tableName (field1,field2,....) values (value1,value2,...)';
    Adoquery.execsql;
      

  3.   

    用1楼的方法,然后用SQL 查询分析器之类的软件,看一下它的执行SQL语句是什么样的.再看看
      

  4.   

    var
       msa,msb:TmemoryStream;
    begin
       msa:= TmemoryStream.create;
       ...saveFromStream(msa)   With AdoQuery do
       Begin
         Sql.clear;
         Sql.Add('insert into tableName (field1,field2,....) values (:value1,:value2,...) ');
         paramaters.paramByName('Value1').Value := '';
         paramaters.paramByName('Value2').LoadFromStream(msa);
         execsql;
      end;
      msa.Free;   
    end;
      

  5.   

    再说一遍:
    只用两行代码:
    Adoquery.sql.text:= 'Insert into tableName (field1,field2,....) values (value1,value2,...) '; 
    Adoquery.execsql; 
      

  6.   

    大哥,如果你想用二进制流插入表中,必须先将数据转换成Stream,这是最关键的一步。就像你要吃饭而不拿碗,用什么盛饭啊。多几行代码而已,干嘛一定只要两行Code呢?