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

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

 火... [复制链接]
发表于 2016-4-20 17:00:21 | 显示全部楼层
好教程,收藏了
发表于 2016-4-20 17:22:46 | 显示全部楼层
回复  gaoan000

這兩句 不就等同
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider= ...
kk_lee69 发表于 2016-4-20 16:43


这样,您可能误解我的意思了,连接语句这个我还是知道,在 连接函数 和 读取数据函数 里面我都没找到创建记录集的语句 "ObjCreate("ADODB.Recordset")" ,我想问下这个语句是不是可以通过别的办法隐式创建?
我前面发的两个函数我单独拿出来可以用,可以读取表格数据显示出来
 楼主| 发表于 2016-4-20 17:53:56 | 显示全部楼层
回复 108# gaoan000

理論上 可以省略
你看看第一次發給我裡面有句
$quer = $oConnectionObj.execute($str)

$oConnectionObj.execute($str)
執行SQL 語句後的東西 設到  $quer

$quer 就是個 紀錄集
发表于 2016-4-20 18:27:12 | 显示全部楼层
回复  gaoan000

理論上 可以省略
你看看第一次發給我裡面有句
$quer = $oConnectionObj.execute($st ...
kk_lee69 发表于 2016-4-20 17:53


这样啊,我明白了.真是太谢谢您了
发表于 2016-4-24 23:03:59 | 显示全部楼层
本帖最后由 zhaoceshi 于 2016-4-24 23:06 编辑

大神,我想要把查询语句返回的结果全部显示出来,该怎么写?
#include <GuiListView.au3>
Dim $Server = "." ;SQL主机名称
Dim $ID = "sa" ; 登入数据库主机的账号  一般都会用sa
Dim $pw = "123" ;登入数据库主机的密码
Dim $Company = "123" ;数据库名称

$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")

$conn.Open("driver={SQL Server};server=" & $Server & ";uid=" & $ID & ";pwd=" & $pw & ";database=" & $Company) ;主机名IP127.0.0.1,UID=用户,PWD=密码,database=数据库名
$RS.ActiveConnection = $conn ; 设定RS 是 conn 的集合 重要的部份

;标准的 读取数据 循环模式语法
;几乎 所有的查询都只要套用这个模式就可以了......

$RS.open(" SELECT * FROM SendSMSRecord ") ;
;MsgBox(0, "字段一", $RS.Fields(8).value, 5) ;显示第一个字段 资料 ,AU3返回的数据通常 都是不含 原本的 字段名称  要取的字段名称需要其它方法
;MsgBox(0, "字段二", $RS) ;显示第二个字段 资料
后面的msgbox只能显示第一行的某个字段
 楼主| 发表于 2016-4-24 23:07:03 | 显示全部楼层
回复 111# zhaoceshi

請問你要寫是在哪邊?? 是畫面上的 LISTVIEW 還是 EDIT 控件 還是甚麼??

還是 彈出 訊息對話框即可

你要先了解你要做甚麼事情
发表于 2016-4-24 23:10:37 | 显示全部楼层
本帖最后由 zhaoceshi 于 2016-4-24 23:11 编辑

回复 112# kk_lee69

   把SELECT * FROM SendSMSRecord  这句查询语句返回的结果显示出来即可,显示方法无所谓,
 楼主| 发表于 2016-4-24 23:14:28 | 显示全部楼层
回复 113# zhaoceshi

注意看這句話
MsgBox(0, "字段一", $RS.Fields(8).value, 5)

假設你的  資料表為  姓名  住址  電話

$RS.Fields(0).value  表示 資料表的第一個欄位值 (姓名)
$RS.Fields(1).value  表示 資料表的第二個欄位值 (住址)
$RS.Fields(3).value   表示  資料表的 第三個 欄位值 (電話)

你要顯示再一起 不就

MsgBox(0, "字段一", $RS.Fields(0).value&" "& $RS.Fields(1).value&" "& $RS.Fields(3).value, 5)
发表于 2016-4-25 00:41:06 | 显示全部楼层
不错的教程
发表于 2016-4-25 09:35:39 | 显示全部楼层
回复 114# kk_lee69


    这样也只是显示一行吧,如果是多行的呢?
 楼主| 发表于 2016-4-25 09:49:16 | 显示全部楼层
回复 116# zhaoceshi

還有 你改了  我的 語法  我原本的語法是
;标准的 读取数据 循环模式语法
;几乎 所有的查询都只要套用这个模式就可以了......
 
$RS.open ("  请注意 这里存放的是 刚刚打好的 SQL 语法 ...请注意 前后都有加上 双引号  ");
While (Not $RS.eof And Not $RS.bof);循环读表 有资料就跑回圈  没资料就会跳出
        
        MsgBox(0, "字段一", $RS.Fields (0).value,5);显示第一个字段 资料 ,AU3返回的数据通常 都是不含 原本的 字段名称  要取的字段名称需要其它方法 
        MsgBox(0, "字段二", $RS.Fields (1).value);显示第二个字段 资料 
                
        If StringIsDigit($RS.Fields(1).value)=0 Then   ;这边可以加上判断
 
        EndIf
                
        $RS.movenext;下一笔资料
WEnd;结束循环读表
$RS.close;关闭数据分表 当使用 RS 查询之后 整个纪录读取完毕后  必须要关闭 RS


這個是 有循環的 即使 你的資料筆數 有一千萬筆 他也會循環 一千萬次   你每筆資料都會跑一次 MsgBox
发表于 2016-9-7 08:17:39 | 显示全部楼层
大神,操作oracle数据库也类似吗?
 楼主| 发表于 2016-9-7 11:43:40 | 显示全部楼层
回复 118# ysping


但是  oracle 理論上 應該要在ODBC 上裝驅動   只要可以透過 ODBC 的 都可以用上面的方法
发表于 2016-9-7 23:07:10 | 显示全部楼层
不错,学习了,谢谢分享
发表于 2016-9-21 15:18:45 | 显示全部楼层
How can i get five
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-1 15:12 , Processed in 0.070051 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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