找回密码
 加入
搜索
查看: 5580|回复: 14

[系统综合] sql server 操作查询

 火.. [复制链接]
发表于 2013-11-20 17:25:00 | 显示全部楼层 |阅读模式
本帖最后由 lin6163 于 2013-11-21 08:37 编辑
#NoTrayIcon
$SqlServer = "192.168.0.5"               ;地址
$SqlUID = "sa"         ;用户
$SqlPWD = "123"       ;密码
$SqlDataBase = "bxldy"   ;数据库

$Conn = ObjCreate("ADODB.Connection");首先要建立ADODB.Connection类
$Conn.open("DRIVER={SQL Server};SERVER=" & $SqlServer & ";UID=" & $SqlUID & ";PWD=" & $SqlPWD & ";");使用open方法连接数据库
If @error Then Exit;如果程序没有退出,说明成功连接上了数据库
$Conn.Execute("wx2004mem")
$Conn.open("SELECT scom FROM dbo.tstat")
MsgBox(0, "已经找到信息了!", "找到的信息内容为:"&$Conn.Fields (1).value)                             
$Conn.Close;操作结束后,关闭数据库连接
这样为什么会出错
请求动作失败(请求于对象)
发表于 2013-11-20 18:55:17 | 显示全部楼层
#include<mysql.au3>
#include<excel.au3>
$dic=ObjCreate("scripting.dictionary")
$oexcel=ObjCreate("excel.application")
$oexcel.visible=True
$sUsername="XX"
$sPassword="xxxxxx"
$sDatabase="ixxxxxx"
$sServer="192.168.xxxxx"
$sDriver="{MySQL ODBC 3.51 Driver}"
$oconnectionobj= _MySQLConnect($sUsername, $sPassword, $sDatabase, $sServer, $sDriver)
MsgBox(0,"",$oconnectionobj)
$1=_CountTables($oConnectionObj)   ;测试下数据库是否正常连接
MsgBox(0,"",$1);测试结果读出数据库包含正确的tables数说明已正常连接
发表于 2013-11-20 18:55:29 | 显示全部楼层
希望有帮助
发表于 2013-11-20 18:56:00 | 显示全部楼层
只看MQL部分 请忽略 excel调用的内容
发表于 2013-11-20 20:11:55 | 显示全部楼层
学习了...
 楼主| 发表于 2013-11-21 08:33:57 | 显示全部楼层
不行
返回0
发表于 2013-11-21 23:42:39 | 显示全部楼层
$Conn.open("DRIVER={SQL Server};SERVER=" & $SqlServer & ";UID=" & $SqlUID & ";PWD=" & $SqlPWD & ";");使用open方法连接数据库

这句好像少了数据库吧~~就地址帐号和密码~~~~
发表于 2013-11-23 13:49:32 | 显示全部楼层
回复 1# lin6163


   请使用ObjCreate("ADODB.Recordset")
Func _ReadTableDb($Conn, $sql);读取数据
                Local $RS, $iStep = 10000
                $RS = ObjCreate("ADODB.Recordset");创建记录集对象
                $RS.ActiveConnection = $Conn;设置记录集的激活链接属性来自$Conn
                If @error Then Return False
                $RS.Open($sql);执行Sql语句
                If @error Then
                        Return False
                EndIf
                Dim $Select_Db[1][1] = [[0]];定义一个数组来接收查询到的数据
                Dim $Count = 1;定义一个变量用来记录查询到的数据行数
                While Not $RS.eof And Not $RS.bof;当记录指针处于第一条记录和最后一条记录之间时,执行while循环
                        If @error = 1 Then ExitLoop
                        If $Select_Db[0][0] = 0 Then;当数组二维$Select_Db[0][0]为0时,重定义数组的第二维大小等于记录集查询到的字段数
                                ReDim $Select_Db[1][$RS.Fields.Count + 1];$RS.Fields.Count为记录集查询到的字段数
                                For $i = 0 To $RS.Fields.Count - 1
                                        $Select_Db[0][$i + 1] = $RS.Fields($i).Name;$RS.Fields($i).Name为字段名,把字段名存入数组
                                Next
                        EndIf
                        If UBound($Select_Db, 1) <= $Select_Db[0][0] + 1 Then ReDim $Select_Db[UBound($Select_Db, 1) + $iStep][$RS.Fields.Count + 1] ;每次都redim会很慢
;~                 ReDim $Select_Db[$Count + 1][$RS.Fields.Count + 1];数组第一维大小加1,用于存放数据
                        $Select_Db[0][0] = $Count;$Select_Db[0][0]存放查询到的数据行数
                        For $i = 0 To $RS.Fields.Count - 1
                                $Select_Db[$Count][$i + 1] = $RS.Fields($i).Value;$RS.Fields($i).Value字段数据
                        Next
                        $Count += 1;行数加1
                        $RS.movenext;将记录指针从当前的位置向下移一行
                WEnd
                $RS.Close;关闭记录集对象
                ReDim $Select_Db[$Select_Db[0][0] + 1][UBound($Select_Db, 2)]
                Return $Select_Db
        EndIf
EndFunc   ;==>_ReadTableDb
发表于 2013-11-24 18:47:24 | 显示全部楼层
可以一步一步的调试。
发表于 2013-11-27 11:56:16 | 显示全部楼层
学习了...[img][/img]
发表于 2013-12-8 11:38:46 | 显示全部楼层
一步一步的调试,找出是哪个函数没有用对
发表于 2013-12-8 11:44:35 | 显示全部楼层
一步一步的调试,找出是哪个函数没有用对
发表于 2013-12-26 16:14:44 | 显示全部楼层
学习了。非常感谢
发表于 2014-1-9 17:32:30 | 显示全部楼层
发表于 2014-1-10 14:31:16 | 显示全部楼层
看看 有关SQL的操作
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 23:42 , Processed in 0.087763 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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