本帖最后由 macran 于 2017-1-12 16:04 编辑
回复 10# heroxianf
sqlite 可以把数据库文件放在公共盘,这样也可以多人访问。效率可能差些,我当时是在连接数据库之前,做一个连接数据库界面,提示所谓的连接数据库,其实是复制公共盘的数据库到个人的temp文件夹下面。这样每个人操作的就是他自己电脑下的数据库了。每次登陆都判断文件修改时间来决定是否需要更新数据库。虽然给人的感觉也想多人同时操作数据库一样,但数据库文件越来越大。复制时间太长。所以我现在改成mysql了。
mysql的用法论坛上很多。;其他的#include 省略 .........
#include <mysql.au3>
_MySQL_InitLibrary() ;注意下你的mysql版本,可能的话需要修改mysql_version.au3里面的版本信息:
;Global Const $MYSQL_SERVER_VERSION = "5.7.7"
;Global Const $MYSQL_BASE_VERSION = "mysqld-5.7"
$MysqlConn = _MySQL_Init()
$connected = _MySQL_Real_Connect($MysqlConn,"127.0.0.1","username","password","datebasename")
;"127.0.0.1"是服务器的IP地址,默认是127.0.0.1 也就是locathost (你自己的电脑)如果mysql
;数据库装别人电脑,就填别人电脑的IP地址。当然mysql需要设置让你访问。可以设置任何远程都可
;访问,也可以指定某个ip可访问。这些是需要mysql服务器上操作的。后面的几个含义不用我解释了
;吧。比如“ root”, “1234567”,“test ” test是你建的数据库的名字。
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
;以上就是数据库连接,下面就可以查询,删除,插入,等操作了。
_mysql_set_character_set($MysqlConn,"GBK") ;设置一下数据库字符集为GBK ,否则显示中文是乱码-----这个是个坑,好多人痛苦在这里,因为AUTOIT不支持显示mysql的UTF8字符集,当然autoit本身是支持utf8的。
$query="SELECT * FROM payments where 1=1 and (fkmc like'%" &$hkdw&"%' ) and (jyr between " & $qishiriqi & " and "&$jieshuriqi& " ) and (checking like '%" & $pzhm & "%') and (zhaiyao like '%" & $zhaiyao & "%')"
$len = StringLen(_StringToHex($query)) /2 ;又一个坑,因为字符集的原因。需要转换一下,否则查询不了。记住,无论执行什么sql语句之前都这么写一下。
_MySQL_Real_Query($MysqlConn,$query,$len)
$res = _MySQL_Store_Result($MysqlConn)
$fields = _MySQL_Num_Fields($res)
$rows = _MySQL_Num_Rows($res)
Dim $aNames[$rows][$fields]
For $k = 1 To $rows
$mysqlrow = _MySQL_Fetch_Row($res,$fields)
$lenthsStruct = _MySQL_Fetch_Lengths($res)
For $i = 1 To $fields
$length = DllStructGetData($lenthsStruct, 1, $i)
$fieldPtr = DllStructGetData($mysqlrow, 1, $i)
$data = DllStructGetData(DllStructCreate("CHAR[" & $length & "]", $fieldPtr), 1)
$aNames[$k - 1][$i - 1] = $data
Next
Next
;这样数组$aNames中存着你要的查询结果数据了。怎么显示就自己结合listview写。
|