找回密码
 加入
搜索
楼主: kk_lee69

[原创] 【原创】AU3 操作SQL 数据库…详细语法、参数…教学 课程(一) MSSQL入门

 火... [复制链接]
发表于 2014-8-22 14:41:52 | 显示全部楼层
感谢楼主分享 学到了
发表于 2014-8-23 19:44:29 | 显示全部楼层
这真是实用的好东东,AU3一下子变成网络数据平台了
发表于 2014-8-26 20:28:04 | 显示全部楼层
学习学习谢谢了
发表于 2014-8-29 23:41:03 | 显示全部楼层
真正懂的分享的人,真是好人
发表于 2014-11-16 22:11:06 | 显示全部楼层
谢谢楼主分享
发表于 2014-12-18 04:20:02 | 显示全部楼层
谢谢楼主分享,找了很久了!
发表于 2016-3-9 01:01:30 | 显示全部楼层
查询数据如何输入到表格呢?
发表于 2016-3-15 18:00:55 | 显示全部楼层
这算是最简洁有力的说明了 赞一个
发表于 2016-3-17 11:43:06 | 显示全部楼层
写的不错,学习了。谢谢分享
发表于 2016-4-14 17:47:25 | 显示全部楼层
湾湾辛苦了~
发表于 2016-4-20 15:54:44 | 显示全部楼层
本帖最后由 gaoan000 于 2016-4-20 16:00 编辑

我想问个问题, 我在论坛上下了个UDF,运行起来也没错 ,但是在源码里我没看到为了读取数据而创建的记录集,请问下为什么呢?

就是下面这句,我看过您的连接教程也有这句吧,虽说现在可以用,但是还是想弄明白些
  1. "$RS = ObjCreate("ADODB.Recordset")
  2. $RS.ActiveConnection = $conn;""
复制代码
发个函数源码,作者我忘记了
  1. Func _MSSQL_GetRecord($oConnectionObj, $sTable, $Columns = "*", $condition = "", $order = "")
  2.         Local $str, $quer, $aResult, $iColumns, $iRows
  3.         If IsObj($oConnectionObj) And Not @error Then
  4.                 If IsArray($Columns) Then
  5.                         If UBound($Columns, 2) - 1 <> 1 Then Return SetError(3, 0, 0)
  6.                         $str = "SELECT '"
  7.                         For $i = 1 To UBound($Columns) - 1
  8.                                 $str &= $Columns[$i] & "','"
  9.                         Next
  10.                         If $order = "" Then
  11.                                 $str = StringTrimRight($str, 2) & "FROM " & $sTable & " " & $condition & ";"
  12.                         Else
  13.                                 $str = StringTrimRight($str, 2) & "FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;"
  14.                         EndIf
  15.                         $quer = $oConnectionObj.execute($str)
  16.                         With $quer
  17.                                 If Not .EOF Then
  18.                                         $aResult = .GetRows()
  19.                                         If IsArray($aResult) And UBound($aResult, 2) > 1 Then
  20.                                                 $iColumns = UBound($aResult, 2)
  21.                                                 $iRows = UBound($aResult)
  22.                                                 ReDim $aResult[$iRows + 1][$iColumns]
  23.                                                 For $x = $iRows To 1 Step -1
  24.                                                         For $y = 0 To $iColumns - 1
  25.                                                                 $aResult[$x][$y] = $aResult[$x - 1][$y]
  26.                                                         Next
  27.                                                 Next
  28.                                                 For $i = 0 To $iColumns - 1
  29.                                                         $aResult[0][$i] = .Fields($i).Name
  30.                                                 Next
  31.                                         ElseIf IsArray($aResult) And UBound($aResult, 2) = 1 Then
  32.                                                 $iRows = UBound($aResult)
  33.                                                 Local $bResult[$iRows + 1]
  34.                                                 For $x = $iRows To 1 Step -1
  35.                                                         $bResult[$x] = $aResult[$x - 1][0]
  36.                                                 Next
  37.                                                 $bResult[0] = $iRows
  38.                                                 Return $bResult
  39.                                         Else
  40.                                                 Return SetError(2, 0, 0)
  41.                                         EndIf
  42.                                 Else
  43.                                         Return SetError(4, $str, 0)
  44.                                 EndIf
  45.                         EndWith
  46.                         Return $aResult
  47.                 Else
  48.                         If $order = "" Then
  49. ;~                                 If $Columns = "*" Then
  50.                                 $quer = $oConnectionObj.execute("SELECT " & $Columns & " FROM " & $sTable & " " & $condition & ";")
  51. ;~                                 Else
  52. ;~                                         $quer = $oConnectionObj.execute("SELECT '" & $Columns & "' FROM " & $sTable & " " & $condition & ";")
  53. ;~                                 EndIf
  54.                         Else
  55. ;~                                 If $Columns = "*" Then
  56.                                 $quer = $oConnectionObj.execute("SELECT " & $Columns & " FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;")
  57. ;~                                 Else
  58. ;~                                         $quer = $oConnectionObj.execute("SELECT '" & $Columns & "' FROM " & $sTable & " " & $condition & " ORDER BY " & $order & " ;")
  59. ;~                                 EndIf
  60.                         EndIf
  61.                         If Not $quer.EOF Then
  62.                                 $aResult = $quer.GetRows()
  63.                                 If IsArray($aResult) And UBound($aResult, 2) > 1 Then
  64.                                         $iColumns = UBound($aResult, 2)
  65.                                         $iRows = UBound($aResult)
  66.                                         ReDim $aResult[$iRows + 1][$iColumns]
  67.                                         For $x = $iRows To 1 Step -1
  68.                                                 For $y = 0 To $iColumns - 1
  69.                                                         $aResult[$x][$y] = $aResult[$x - 1][$y]
  70.                                                 Next
  71.                                         Next
  72.                                         For $i = 0 To $iColumns - 1
  73.                                                 $aResult[0][$i] = $quer.Fields($i).Name
  74.                                         Next
  75.                                 ElseIf IsArray($aResult) And UBound($aResult, 2) = 1 Then
  76.                                         $iRows = UBound($aResult)
  77.                                         Local $bResult[$iRows + 1]
  78.                                         For $x = $iRows To 1 Step -1
  79.                                                 $bResult[$x] = $aResult[$x - 1][0]
  80.                                         Next
  81.                                         $bResult[0] = $iRows
  82.                                         Return $bResult
  83.                                 Else
  84.                                         Return SetError(2, 0, 0)
  85.                                 EndIf
  86.                         Else
  87.                                 Return SetError(4, $str, 0)
  88.                         EndIf
  89.                         Return $aResult
  90.                 EndIf
  91.         EndIf
  92.         Return SetError(1, 0, 0)
  93. EndFunc   ;==>_MSSQL_GetRecord
复制代码
 楼主| 发表于 2016-4-20 16:08:07 | 显示全部楼层
回复 102# gaoan000

你給我看的 應該只是一半吧
Func _MSSQL_GetRecord($oConnectionObj, $sTable, $Columns = "*", $condition = "", $order = "")

這個函數之前應該要先 調用一個開始的設定

這個函數中的 $oConnectionObj

其實 不就等同我的 語法中的 $RS
 楼主| 发表于 2016-4-20 16:09:51 | 显示全部楼层
回复 98# cashiba

查詢到的資料 在 數組裡面  我想請問 你應該如何把數組的 資料 放到 LISTIVEW 或者 EDIT 控件呢
发表于 2016-4-20 16:19:40 | 显示全部楼层
本帖最后由 gaoan000 于 2016-4-20 16:21 编辑

回复 103# kk_lee69
  1. Func _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
  2.         Local $sqlCon
  3.         $sqlCon = ObjCreate("ADODB.Connection")
  4.         $sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
  5.         Return $sqlCon
  6. EndFunc   ;==>_MSSQL_Con
复制代码
这个是连接函数
我在连接函数里面没找到创建记录集之类的语句,对于ADO也不是很懂,打算恶补一下知识

;---------------------------------------------------------------------------------------------
  1. Func _MYSQL_ReadDataToList($sqlCon, $sTable)
  2.         Local $sText
  3.         _GUICtrlListView_BeginUpdate($ListView1)
  4.         GUICtrlSendMsg($ListView1, 4105, 0, 0)
  5.         $aRecord = _MSSQL_GetRecord($sqlCon, $sTable)
  6.         For $i = 1 To UBound($aRecord) - 1
  7.                 For $z = 0 To 5
  8.                         $sText &= $aRecord[$i][$z] & '|'
  9.                 Next
  10.                 GUICtrlCreateListViewItem($sText, $ListView1)
  11.                 $sText = ''
  12.         Next
  13.         _GUICtrlListView_EndUpdate($ListView1)
  14. EndFunc   ;==>_MYSQL_ReadDataToList
复制代码
这个好像也是作者写得一个测试函数
 楼主| 发表于 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  我直接拿出來用  我的方式  直覺式的  沒有其他套來套去 的  函數引用問題
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-9-28 03:05 , Processed in 0.060233 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表