xtanxin 发表于 2009-12-11 01:07:11

上网本BUG,与AU3 mysql udf 冲突的错误有办法解决吗?


#include <array.au3>
#include <mysql.au3>

_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "")
$MysqlConn = _MySQL_Init()
$connected = _MySQL_Real_Connect($MysqlConn,"服务器IP","账户","密码","数据库名称")
If $connected = 0 Then
        $errno = _MySQL_errno($MysqlConn)
        MsgBox(0,"Error:",$errno & @LF & _MySQL_error($MysqlConn))
        If $errno = $CR_UNKNOWN_HOST Then MsgBox(0,"Error:","$CR_UNKNOWN_HOST" & @LF & $CR_UNKNOWN_HOST)
Endif

$query = "select * from notice ";SQL查询语句
_MySQL_Real_Query($MysqlConn, $query) ;进行SQL查询
$res = _MySQL_Store_Result($MysqlConn) ;获取查询结果的集合
$rows = _MySQL_Num_Rows($res) ;将查询结果的行数赋值
$fields = _MySQL_Num_Fields($res) 将查询结果的列数赋值
MsgBox(0, "查询行列数量", $rows & "-----" & $fields) ;显示查询结果的行列数量

;大哥们呀,我就毁在行赋值上面,正常应该显示是1行,但是在我的上网本上面显示是4294967296行
;真他妈的不知道是谁错了.系统重新安装过2个不同的,AU3版本也换过2个.台式机上运行没有问题,上网本就计算出错.
;郁闷呀,再也不敢用上网本学习了AU3了.


_MySQL_Free_Result($res)

; Verbindung beenden
_MySQL_Close($MysqlConn)
; MYSQL beenden
_MySQL_EndLibrary()

yorker0503 发表于 2009-12-16 22:42:00

我使用也有这个问题,而且笔记本和台式机都这样,我用的都是深度xp 不知道啥原因

yorker0503 发表于 2009-12-16 23:13:08

mysql.au3 里面的函数 修改成

Func _MySQL_Num_Rows($result)
        Local $rows = DllCall("libmysql.dll", "uint64", "mysql_num_rows", "ptr", $result)
        If @error Then Return SetError(1, 0, 0)
        ;MsgBox(0,0,$rows)
        Return $rows
        ;Return __MySQL_ReOrderULONGLONG($rows)
EndFunc   ;==>_MySQL_Num_Rows

测试就ok了, 看来是__MySQL_ReOrderULONGLONG() 调用的问题

8772602 发表于 2009-12-28 01:54:58

我改完就好用了

xtanxin 发表于 2010-1-5 15:35:37

可是,我换过2个不同的系统,另一台台式机就OK.
并且,如果你在本机去掉那个乘数了,会不会在其他电脑上面就出错了.??

wuweixian 发表于 2010-3-17 12:31:13

:face (7):看得头大
页: [1]
查看完整版本: 上网本BUG,与AU3 mysql udf 冲突的错误有办法解决吗?