delphi,sqlserver2000,两层,odbc,使用流将文件存入数据库中的image字段,取出后只有33k了,不知什么原因。查找了相关的帖子,里面的的流存取的方法都试过了,好像不是主要问题。高手指点!

解决方案 »

  1.   

    看过大富翁上的相关帖子,都是一些存取方法的说明,我试过了没有效果。字段大小sqlserver中无法调节。莫非在odbc中有设置?
      

  2.   

    sqlserver数据库设计的问题吧,我把窗体放到数据库中都没有问题
    你字段是什么数据类型?
      

  3.   

    我用ado直接连接测试了一下,问题依旧。提示“将截断字符串或者二进制数据”。
      

  4.   

    字段是image类型的,
    存取的方法如下:
    存:
    ...
    query.Parameters.ParamByName('doc').loadfromfile('C:\Documents and Settings\admin\My Documents\测试文档.doc',ftblob);
    query.execsql;
    ...
    取:
    ...
    OleStream:=TMemoryStream.Create;
    TBlobField(query.FieldByName('doc')).SaveToStream(OleStream);
    OleStream.SaveToFile('d:\tmp.doc');
    ...
      

  5.   

    用的是ADO还是BDE?如果是BDE的话,注意blobSize
      

  6.   

    我又测试了一下,还是不行。sqlserver2000 sp4也打上了,还是不行。有没有遇到同样问题的朋友,给点意见。。
      

  7.   

    感谢15楼得例子,我测试了adotable没有问题,就奇怪了,问题在那里呢?
      

  8.   

    估计是query读取数据库库中流数据的代码有问题,测试adoquery没有问题,query就出现上述问题。来不及了,要揭帖了,看来以后要用ado了。