cfs43210
发表于 2014-7-17 21:11:28
回复 16# kk_lee69
谢谢你!有点不明白!
$RS.open ("SELECT * FROM表一");
;$ListArray=$conn.Execute ("SELECT ClassID,ClassName FROM comFundStyle").GetRows
While (Not $RS.eof And Not $RS.bof);迴圈讀表
MsgBox(0, "欄位一", $RS.Fields (0).value,5);顯示第一個欄位 資料
$RS.movenext;跳出迴圈
WEnd;結束迴圈讀表
$RS.close;關閉數據分表
上面没建立預存程序查询
$conn.Execute("EXECPROGRAM1");建立預存程序.这个是怎么查询数据,如果有条件查询,语句要怎么写,谢谢!
kk_lee69
发表于 2014-7-17 21:20:05
回复 17# cfs43210
我只是舉例子 我並沒有全部寫給你看
你自己也要學呀別的不說 先別 說 AU3
你先隨便寫個 SQL 語法建立預存程序 給我看 可以嗎
寫好了 我就寫 AU3 的建立給你看
cfs43210
发表于 2014-7-17 21:44:24
回复 18# kk_lee69
Dim $sServer = '192.168.0.168', $sUsername = 'sa', $sPassword = '', $sDatabase = 'hz_Pers' ;四个变量分别是连接数据库用的地址、账号、密码及所使用数据库名
$Comm = ObjCreate("ADODB.Command") ;建一个command对象
With $Comm
.ActiveConnection = "DRIVER={SQL Server};SERVER=" & $sServer & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";Database=" & $sDatabase & "" ;建立连结
.CommandText = 'getPers' ;定义command 对象调用名称,即存储过程名称
.CommandType = 4 ;设置command调用类型是存储过程
.Prepared = True ;将SQL命令先行编译
EndWith
$Rs = $Comm.Execute ;存储过程取得的记录集赋给$Rs
MsgBox(0,0,$Rs.Fields (2).value)
$Rs.Close;关闭记录集对象
这个是我参考别人的,已建军立了存储过程getPers,$Rs.Fields (2).value可以读取,但是我要有条件查询,语句不知道怎么写
kk_lee69
发表于 2014-7-17 22:08:48
回复 19# cfs43210
請參考一下我寫的教學~~~
http://www.autoitx.com/thread-30083-1-1.html
理論上我的用法 都不用到 UDF而你剛剛上面的用法是人家的 有使用 UDF 的操作方法
我覺得哪種方法 有點難以理解~~~
看看我的文章 就可以 知道~~ 連接數據庫 不需要任何的UDF 就可以直接連接
置於 你的問題~~~ 我想 你應該先告訴我怎麼在SQL下面 建立 預存程序
我就能告訴你 建立預存程序 這段 AU3 怎麼寫
kk_lee69
发表于 2014-7-17 22:14:47
回复 19# cfs43210
或者 你把你的需求說清楚點順便把你要查詢的東西 寫出來
說的清楚 我就寫個範例給你
我覺得你應該不是要 操作預存程序
cfs43210
发表于 2014-7-17 22:29:19
本帖最后由 cfs43210 于 2014-7-17 22:30 编辑
回复 20# kk_lee69
我是没用UDF,是直接连接的,现在用你的法方建的
Dim $sServer = '192.168.0.168', $sUsername = 'sa', $sPassword = '', $sDatabase = 'hz_Pers';四个变量分别是连接数据库用的地址、账号、密码及所使用数据库名
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("driver={SQL Server};server="&$sServer&";uid="&$sUsername&";pwd="&$sPassword&";database=" & $sDatabase & "");主机名IP127.0.0.1,UID=用户,PWD=密码,database=数据库名
$RS.ActiveConnection = $conn ; 设定RS 是 conn 的集合 重要的部份
$RS.open("SELECT * FROMPers");
While (Not $RS.eof And Not $RS.bof);迴圈讀表
MsgBox(0, "欄位一", $RS.Fields(2).value, 5);顯示第一個欄位 資料
$RS.movenext;跳出迴圈
WEnd;結束迴圈讀表
$RS.close;關閉數據分表
上面可以读取表 Pers
预存已建名为:getPers
$Rs.Open("Select * from Pers where PERSID='44130' and Name='张三2000000'")
MsgBox(0, 0, $Rs.Fields(2).value);这是条件查询的如果用预存名查询怎么写
kk_lee69
发表于 2014-7-17 22:35:10
回复 22# cfs43210
预存已建名为:getPers
請問這個的內容是什麼告訴我因為 執行結果的返回 會關乎到 使用的語法
cfs43210
发表于 2014-7-17 22:39:54
本帖最后由 cfs43210 于 2014-7-17 22:41 编辑
回复 23# kk_lee69
CREATE PROCEDURE getPers
as
set nocount on
begin
select * from Pers
end
go
预存名getPers 在SQL查询分析器用上面语句,Pers是表,
cfs43210
发表于 2014-7-17 22:46:28
回复 23# kk_lee69
getPers是Pers表,有编码,姓名等...
kk_lee69
发表于 2014-7-17 22:48:50
回复 24# cfs43210
你看看你自己寫的 其實你寫死了~~~這個預存程序 從頭到尾執行後只會秀出
select * from Pers
所以這個預存程序 是死的這樣寫是不對的我幫你改一下好了
CREATE PROCEDURE getPers (@變數1,@變數2)
as
宣告@變數1變數類型
宣告@變數2變數類型
set nocount on
begin
select * from Pers where PERSID=@變數一and Name=@變數二
end
go
我直接用中文表示句型語法因為 不常用 所以其實要查一下晚點 我可以上個實際的語法
如果 你看的懂我的意思 就應該知道問題在哪了
當你 把 預存程序 變成 上面的樣子
用 $Rs.Open("EXEC getPers( '44130','张三2000000')")
這樣就可以 使用預存程序 查到你要的東西了
cfs43210
发表于 2014-7-17 22:48:58
回复 23# kk_lee69
是不是我建预存名错了
kk_lee69
发表于 2014-7-17 22:51:41
回复 27# cfs43210
不是名稱的問題
預存程序 有沒有建立 在資料庫的管理介面裡面 可以看到 預存程序 存不存在
cfs43210
发表于 2014-7-17 22:55:44
回复 28# kk_lee69
在预存程序有我建的名存在,但你说的这个内容是什么我不明白
kk_lee69
发表于 2014-7-17 22:56:32
回复 29# cfs43210
CREATE PROCEDURE getPers (@變數1,@變數2)
as
宣告@變數1變數類型
宣告@變數2變數類型
set nocount on
begin
select * from Pers where PERSID=@變數一and Name=@變數二
end
go
這段不明白嗎??
kk_lee69
发表于 2014-7-17 23:04:06
回复 29# cfs43210
既然叫做 預存程序顧名思義 就是 是先把程式寫好在 SQL 中
等需要用的時候叫出來用
你原本的 getPers排除建立程序需要的語法你裡面的語法最終只有 select * from Pers
可是這樣的東西是死的 最終不能做任何的應用~~~~ 到目前為止 都只是SQL 的邏輯跟概念
因為你的預存程序 一執行下去就只會 select * from Pers 沒有辦法從外部改變 預存程序的內部
所以你有兩條路第一條修改預存程序 把裡面的select * from Pers改成 Select * from Pers where PERSID='44130' and Name='张三2000000'
第二條路 就是 你把預存程序 變成活的 加兩個參數 進去以便你可以利用這兩個參數 可以隨時更換想查詢的東西
也就是 把 getPers變成 getPers (參數1,參數2) 當你查詢的時候 直接帶入參數
這樣就可以查詢到 你要的東西而不用修改 預存程序