【求助】对于SQL的操作有个问题
$addfld = ObjCreate("ADODB.Connection")$addfld.Open("driver={SQL Server};server=10.1.56.220;uid=sa;pwd=123456;database=ceshi")
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("Select * From 测试库")
$nid=$RS.Fields(0).value
MsgBox(4096, "yes", $nid)
$RS.close
$addfld.Close
这样只能返回第一行的数据,请问怎么返回第二三四行的? 回复 1# ac5474012
循环啊! 回复 2# hzxymkb
能给个例子吗? 回复 4# ac5474012
$RS.open ("select * from SMA");
While (Not $RS.eof And Not $RS.bof);迴圈讀表
MsgBox(0, "欄位一", $RS.Fields (0).value,5);顯示第一個欄位 資料
MsgBox(0, "欄位二", $RS.Fields (1).value);顯示第二個欄位 資料
$RS.movenext;下一筆
WEnd;結束迴圈讀表
$RS.close;關閉數據分表
本帖最后由 tsys 于 2012-1-6 11:32 编辑
回复 4# ac5474012
以下代码根据此贴修改http://www.autoitx.com/forum.php?mod=viewthread&tid=27079&highlight=access
由于本例用于access数据库,不当之处自行修改
使用while循环逐个读取Func _SQL_to_Array($mdb_data_path,$mdb_data_pwd,$tblname)
Local $aArray,$P = 1,$i = 0
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path& ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open ("Select "&$T & " From " & $tblname )
while Not $RS.eof And Not $RS.bof
if @error =1 Then ExitLoop
$aArray[$i] = $RS.Fields (0).value
$aArray[$i] = $RS.Fields (1).value
$i += 1
$P += 1
ReDim $aArray[$P]
$rs.movenext
WEnd
$rs.close
$addfld.Close
Return $aArray
EndFunc 还有一种方法就是先获取列内的数据总数,然后使用循环读取就可以了:$RS.Open ("Select count("&$FieldName&") From "&$tblname) 回复 4# ac5474012
楼上的例子都正确的! 回复 5# kk_lee69
回复ac5474012
kk_lee69 发表于 2012-1-6 11:31 http://www.autoitx.com/images/common/back.gif
请问我要是想直接返回第2行的数据要怎么写? 回复 8# ac5474012
第二行還是第二筆資料
$RS.Fields (0).value表示第一行資料
$RS.Fields (1).value 表示第二行資料
第二筆資料就得跑循環了..... $RS.Open ("Select count("&$FieldName&") From "&$tblname)
这个能行吗?? 回复 8# ac5474012
我没有技术啊,只会说正解!
页:
[1]