哎~~~~~~我的mysql也是这样。可能是二进制的问题,所以我只能用编码把它转成字符串存在TEXT类型的字段了算了~~~~~~~

解决方案 »

  1.   

    TO NNE998
    你的意思是把可执行文件先保存成字符串文件???!!!这样可以吗?还能够把可执行文件导出并能够执行吗?不明白的太多,能够详细说明一下吗?谢谢.呵呵...
      

  2.   

    当然可以,例如可以用象邮件附件一样,用base64编码你的文件,
    产生的就是字符串啦然后就可以保存入TEXT字段里,,,,取出时就解码就是咯,,,
      

  3.   

    比较一下前后的两个exe,
    看看有什么不同
    (可用utralEdit)
      

  4.   

    TO NNE998,LUOWEICAISD:
    嗯,你提供的的确是一个好思路,能够说一下怎么对可执行文件编码吗?是不是要用到一些控件?最好能够提供代码我试试,呵呵,谢谢!TO STLONT
    我用utralEdit比较过一个可执行文件,这个文件有800多K,发现只是多了一个字符串,我将此字符串删除后则可以正常执行了,但另外一个PB编写的文件就没有如此好的好的运气了,首先,它们之间没有不同,但是仍然不能执行.
    还有什么别的办法吗?
      

  5.   

    我用的sql 7 ,字段类型为image,用ado保存.exe文件,导出后好使的。
    看看有什么不同吗?
      

  6.   

    关注这个问题,仔细比较以下呵呵!我没有oracle没办法试验!
      

  7.   

    我采用过直接存取数据库,流存取,BUFFER存取等,都不行. 
        仔细比较一下后发现我存在数据库中的原文件如果是28000字节,则导出时会多出一个字节,刚保存完毕用BLOBSIZE就可以发现字节多了.
        但如果这个文件比较小,如只能数K,则不会多一个字节.这个字节不一定在末尾,有可能在中间,也不一定是00,有时候是8E.
        我于是想把这个文件采用BASE64格式进行编码,作为文本文件保存,可问题又来了:
        1、这个可执行文件只有28K,在ENCODE时非常快,也能够正常保存到数据库中,但将其DECODE时非常慢,需要数分钟。不知道什么原。
        2、我在用STREAM时,没有用TFILESTREAM,因为用其创建对象时提示我不能打开文件,而我的文件是用DIALOGOPENFILE控件打开的,应该没有问题,所以我改用了TMEMORYSTREAM。不知道为什么不能创建,有什么要注意的吗?
        3,最严重的问题是,我DECODE那个字符集以后,发现其比原来的可执行文件少了几个字节,自然是无法执行了,以前直接SAVETOFILE时只会多字节的,现在不知道什么原因会变少呢?现在的问题是:不知道为什么会多出这个字节?是在什么时候多出的?请高手帮助解决!