qwe4919705
发表于 2014-8-22 14:41:52
感谢楼主分享 学到了
xjlijia
发表于 2014-8-23 19:44:29
这真是实用的好东东,AU3一下子变成网络数据平台了
huangshan719
发表于 2014-8-26 20:28:04
学习学习谢谢了
消失的酱果
发表于 2014-8-29 23:41:03
真正懂的分享的人,真是好人
605284
发表于 2014-11-16 22:11:06
谢谢楼主分享
scared1
发表于 2014-12-18 04:20:02
谢谢楼主分享,找了很久了!
cashiba
发表于 2016-3-9 01:01:30
查询数据如何输入到表格呢?
gaoan000
发表于 2016-3-15 18:00:55
这算是最简洁有力的说明了 赞一个
stefcc
发表于 2016-3-17 11:43:06
写的不错,学习了。谢谢分享
Netfox
发表于 2016-4-14 17:47:25
湾湾辛苦了~
gaoan000
发表于 2016-4-20 15:54:44
本帖最后由 gaoan000 于 2016-4-20 16:00 编辑
我想问个问题, 我在论坛上下了个UDF,运行起来也没错 ,但是在源码里我没看到为了读取数据而创建的记录集,请问下为什么呢?
就是下面这句,我看过您的连接教程也有这句吧,虽说现在可以用,但是还是想弄明白些 "$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $conn;""发个函数源码,作者我忘记了Func _MSSQL_GetRecord($oConnectionObj, $sTable, $Columns = "*", $condition = "", $order = "")
Local $str, $quer, $aResult, $iColumns, $iRows
If IsObj($oConnectionObj) And Not @error Then
If IsArray($Columns) Then
If UBound($Columns, 2) - 1 <> 1 Then Return SetError(3, 0, 0)
$str = "SELECT '"
For $i = 1 To UBound($Columns) - 1
$str &= $Columns[$i] & "','"
Next
If $order = "" Then
$str = StringTrimRight($str, 2) & "FROM " & $sTable & " " & $condition & ";"
Else
$str = StringTrimRight($str, 2) & "FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;"
EndIf
$quer = $oConnectionObj.execute($str)
With $quer
If Not .EOF Then
$aResult = .GetRows()
If IsArray($aResult) And UBound($aResult, 2) > 1 Then
$iColumns = UBound($aResult, 2)
$iRows = UBound($aResult)
ReDim $aResult[$iRows + 1][$iColumns]
For $x = $iRows To 1 Step -1
For $y = 0 To $iColumns - 1
$aResult[$x][$y] = $aResult[$x - 1][$y]
Next
Next
For $i = 0 To $iColumns - 1
$aResult[$i] = .Fields($i).Name
Next
ElseIf IsArray($aResult) And UBound($aResult, 2) = 1 Then
$iRows = UBound($aResult)
Local $bResult[$iRows + 1]
For $x = $iRows To 1 Step -1
$bResult[$x] = $aResult[$x - 1]
Next
$bResult = $iRows
Return $bResult
Else
Return SetError(2, 0, 0)
EndIf
Else
Return SetError(4, $str, 0)
EndIf
EndWith
Return $aResult
Else
If $order = "" Then
;~ If $Columns = "*" Then
$quer = $oConnectionObj.execute("SELECT " & $Columns & " FROM " & $sTable & " " & $condition & ";")
;~ Else
;~ $quer = $oConnectionObj.execute("SELECT '" & $Columns & "' FROM " & $sTable & " " & $condition & ";")
;~ EndIf
Else
;~ If $Columns = "*" Then
$quer = $oConnectionObj.execute("SELECT " & $Columns & " FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;")
;~ Else
;~ $quer = $oConnectionObj.execute("SELECT '" & $Columns & "' FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;")
;~ EndIf
EndIf
If Not $quer.EOF Then
$aResult = $quer.GetRows()
If IsArray($aResult) And UBound($aResult, 2) > 1 Then
$iColumns = UBound($aResult, 2)
$iRows = UBound($aResult)
ReDim $aResult[$iRows + 1][$iColumns]
For $x = $iRows To 1 Step -1
For $y = 0 To $iColumns - 1
$aResult[$x][$y] = $aResult[$x - 1][$y]
Next
Next
For $i = 0 To $iColumns - 1
$aResult[$i] = $quer.Fields($i).Name
Next
ElseIf IsArray($aResult) And UBound($aResult, 2) = 1 Then
$iRows = UBound($aResult)
Local $bResult[$iRows + 1]
For $x = $iRows To 1 Step -1
$bResult[$x] = $aResult[$x - 1]
Next
$bResult = $iRows
Return $bResult
Else
Return SetError(2, 0, 0)
EndIf
Else
Return SetError(4, $str, 0)
EndIf
Return $aResult
EndIf
EndIf
Return SetError(1, 0, 0)
EndFunc ;==>_MSSQL_GetRecord
kk_lee69
发表于 2016-4-20 16:08:07
回复 102# gaoan000
你給我看的 應該只是一半吧
Func _MSSQL_GetRecord($oConnectionObj, $sTable, $Columns = "*", $condition = "", $order = "")
這個函數之前應該要先 調用一個開始的設定
這個函數中的 $oConnectionObj
其實 不就等同我的 語法中的 $RS
kk_lee69
发表于 2016-4-20 16:09:51
回复 98# cashiba
查詢到的資料 在 數組裡面我想請問 你應該如何把數組的 資料 放到 LISTIVEW 或者 EDIT 控件呢
gaoan000
发表于 2016-4-20 16:19:40
本帖最后由 gaoan000 于 2016-4-20 16:21 编辑
回复 103# kk_lee69 Func _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
Local $sqlCon
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
Return $sqlCon
EndFunc ;==>_MSSQL_Con这个是连接函数
我在连接函数里面没找到创建记录集之类的语句,对于ADO也不是很懂,打算恶补一下知识
;---------------------------------------------------------------------------------------------Func _MYSQL_ReadDataToList($sqlCon, $sTable)
Local $sText
_GUICtrlListView_BeginUpdate($ListView1)
GUICtrlSendMsg($ListView1, 4105, 0, 0)
$aRecord = _MSSQL_GetRecord($sqlCon, $sTable)
For $i = 1 To UBound($aRecord) - 1
For $z = 0 To 5
$sText &= $aRecord[$i][$z] & '|'
Next
GUICtrlCreateListViewItem($sText, $ListView1)
$sText = ''
Next
_GUICtrlListView_EndUpdate($ListView1)
EndFunc ;==>_MYSQL_ReadDataToList这个好像也是作者写得一个测试函数
kk_lee69
发表于 2016-4-20 16:43:24
回复 105# gaoan000
這兩句 不就等同
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
$conn = ObjCreate("ADODB.Connection")
$conn.Open ("driver={SQL Server};server="&$Server&";uid="&$ID&";pwd="&$pw&";database="&$Company);主机名IP127.0.0.1,UID=用户,PWD=密码,database=数据库名
只是 別人做成 UDF我直接拿出來用我的方式直覺式的沒有其他套來套去 的函數引用問題
页:
1
2
3
4
5
6
[7]
8
9
10