VB不在行,在C API中有一个mysql_escape_string()转义函数,它对要操作的query中的二进制数据进行转义,然后就可以正确存储了!

解决方案 »

  1.   

    因为两个程序使用一个数据库,另一个程序使用CB编写,
    用C的数据流的方法可以存储,但用VB就不可以,如果用转换的方法,存储的数据就不一致了
      

  2.   

    :)转义的结果只是让mysql执行query的时候对数据正确处理,不会造成存储不一致的!你可以做个简单的测试程序试试!不过我对VB如何操作二进制数据不清楚,所以我自己无法验证我的说法是否正确!帮你UP
      

  3.   

    所有的二进制数据可以被看成是一个长长的字符串,其中要注意的问题就是有某些字符需要进行必要的转义操作,也就是用 API 函数 mysql_escape_string()建议你看看 MySQL 参考手册 的 6.1.1.1 字符串 章节
      

  4.   

    所有的二进制数据可以被看成是一个长长的字符串,其中要注意的问题就是有某些字符需要进行必要的转义操作,也就是用 API 函数 mysql_escape_string()建议你看看 MySQL 参考手册 的 6.1.1.1 字符串 章节
      

  5.   

    我昨天用转义函数mysql_escape_string将二进制数组转换后,存入数据库,再从数据库读出后,这个二进制数组和转换后的一样,如果要使用,必须自己再编程转化,才能使用。
      

  6.   

    转义函数mysql_escape_string我了解,有什么办法不进行转义,直接进行存储吗?
      

  7.   

    这个可以从应用层开发语言来理解;不进行转义,你怎么把中间带中止符的一段数据完整赋值给query(即查询语句,API中以字符串体现,例如mysql_query(MYSQL* mysql, char* query))
      

  8.   

    类似的例子就像C语言中的printf()函数,要把反斜杠'\'打印出来,你必须对其转义!
      

  9.   

    谢谢各位的指导,我将ADO的记录集属性CursorLocation 设置为 adUseClient,不用进行传换就可以了存储。ADO的记录集属性CursorLocation 默认是 adUseServer。