| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:vb6 调用mysql_real_escape_string函数的问题!请教!
只看楼主 加入收藏
seawaycao
Rank: 2
等 级:论坛游民
帖 子:11
专家分:42
注 册:2013-12-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
vb6 调用mysql_real_escape_string函数的问题!请教!
最近在研究用VB6操作mysql数据库的项目,基本的操作功能已经完成。就是发现一个问题,若SQL语句中包含了C(C++)中的转义字符(例如:\t\n)或二进制数据时,就会出现字符丢失或乱码的情况,百度了很多资料,问题出在mysql_real_escape_string的上面,但实际使用这个函数时一直出错,还没有错误提示,VB6直接崩溃!

我的引用为:
程序代码:
Public Declare Function mysql_real_escape_string Lib "libmySQL" (ByVal lMysql As Long, _
                                                                 ByRef lTo As String, _
                                                                 ByVal lFrom As String, _
                                                                 ByVal lLength As Long) As Long

mysql源码中对该函数的定义如下:
程序代码:
/*
  Add escape characters to a string (blob?) to make it suitable for a insert
  to should at least have place for length*2+1 chars
  Returns the length of the to string
*/

ulong STDCALL
mysql_escape_string(char *to,const char *from,ulong length)
{
  return (uint) escape_string_for_mysql(default_charset_info, to, 0, from, length);
}

ulong STDCALL
mysql_real_escape_string(MYSQL *mysql, char *to,const char *from,
             ulong length)
{
  if (mysql->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES)
    return (uint) escape_quotes_for_mysql(mysql->charset, to, 0, from, length);
  return (uint) escape_string_for_mysql(mysql->charset, to, 0, from, length);
}


大家帮忙看看,在VB6中怎么调用mysql_real_escape_string函数呢?万分感谢!
搜索更多相关主题的帖子: 百度 数据库 二进制 mysql 项目 
2013-12-29 12:23
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:20 
程序代码:
Public Declare Function mysql_real_escape_string Lib "libmySQL" (ByVal lMysql As Long, _
                                                                 byval lTo As string, _
                                                                 ByVal lFrom As String, _
                                                                 ByVal lLength As Long) As Long
试试吧。不行的话就。下面
程序代码:
Public Declare Function mysql_real_escape_string Lib "libmySQL" (ByVal lMysql As Long, _
                                                                 byval lTo As long, _
                                                                 ByVal lFrom As String, _
                                                                 ByVal lLength As Long) As Long

dim stmp as string
stmp = string$(256,vbnullchar)
mysql_real_escape_string ( [..], byval strptr(stmp), [..], [..] )
debug.print strconv(stmp,vbunicode)
2013-12-29 19:56
快速回复:vb6 调用mysql_real_escape_string函数的问题!请教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031964 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved