马尔斯 发表于 2010-12-16 16:56:11

学习不错 有点体会

kodin 发表于 2010-12-17 19:32:53

MYSQL完全看不懂得飘过。。。

dwilly 发表于 2010-12-18 09:35:53

太复杂,要学的很多

Netfox 发表于 2011-2-10 20:02:16

强烈支持。。。。

yyotan 发表于 2012-4-16 11:54:44

留个脚印,我就要要这个 谢谢

bsjd120 发表于 2012-5-11 14:46:50

协作写哦这些横需要了

liusian0 发表于 2012-5-15 19:54:05

我也遇到类似问题,学习下。

andyloving 发表于 2012-7-31 10:05:57

谢谢分享!

wsfda 发表于 2012-12-20 22:21:43

回复 15# ceoguang


    请教:
if _MySQL_Real_Query($MysqlConn, $sMySqlStatement,StringLen($sMySqlStatement) * 2) <> $MYSQL_SUCCESS Then
中的StringLen($sMySqlStatement) * 2是什么意思呢,不加这个,是否可以有其他办法呢

ceoguang 发表于 2012-12-21 18:09:09

回复 25# wsfda
因为包含中文或其它双字节字符时StringLen依然解释成一个字符为一字节
例如StringLen("中文")返回的就是2,而实际应该是4(不包括\0)
如果只用内置函数,除了*2就别无选择了.当然,你可以用_WinAPI_WideCharToMultiByte,那样可以节省很多空间

wsfda 发表于 2012-12-21 18:24:57

回复 26# ceoguang

有点懂了,感谢前辈的指点,
还有一个疑问就是关于_MySQL_Real_Query这个函数的解释,E文太差翻译后也不能完全理解UDF中这个函数的各项参数意义
您在此函数后面追加StringLen($sMySqlStatement) * 2,相对于这个函数,是给他传递了什么样的一个参数呢,可能我的表达有点问题,不知您是理解,请见谅

ceoguang 发表于 2012-12-26 15:46:55

这个函数实际上调用的是MYSQL的C API
第一个参数是MYSQL*类型的指针(可以理解为一个句柄,实际为一个结构体),AU3的DLLCALL传入的类型为ptr
第二个参数是cont char*(字符串常量),DLLCALL可以直接用str作为参数的类型
第三个参数是第二个参数的空间大小,类型为ulong。因为mysql_real_query支持二进制据查询
与mysql_query不同的地方在于mysql指令不会被\0截断.因为它总是按照第三个参数提供的长度进行拷贝.

wsfda 发表于 2012-12-26 17:23:44

回复 28# ceoguang


    感谢前辈,解释的很到位,明白了,感谢!!!

scorpio1102 发表于 2013-12-1 16:06:40

好好好一定要试下

fcurrk 发表于 2013-12-1 16:39:47

学习一下,平时MYSQL少,MS多
页: 1 [2] 3
查看完整版本: [已解决]----Autoit+MYSQL中文支持范例(见15楼源代码)