cfs43210
发表于 2014-7-17 23:10:51
回复 30# kk_lee69
出错!
服务器: 消息 170,级别 15,状态 1,过程 getPers,行 1
第 1 行: ',' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,过程 getPers,行 8
必须声明变量 '@變數1'。
kk_lee69
发表于 2014-7-17 23:13:15
回复 32# cfs43210
看來 你真不懂等我一下 我正在改
待會給你 符合你資料庫的語法
cfs43210
发表于 2014-7-17 23:14:31
回复 33# kk_lee69
好的,谢谢!
kk_lee69
发表于 2014-7-17 23:22:50
本帖最后由 kk_lee69 于 2014-7-17 23:24 编辑
回复 32# cfs43210
首先 把你 原本的 getPers砍掉變成下面這個
CREATE PROCEDURE getPers
(
@SA nvarchar(100),@SB nvarchar(100)
)
as
set nocount on
begin
Select * from Pers where PERSID=@SAand Name=@SB
end
go
成功後 就可以在 AU3 裡面 使用
$RS.open ("EXEC getPers '44130','张三2000000'")
While (Not $RS.eof And Not $RS.bof);迴圈讀表
MsgBox(0, "欄位一", $RS.Fields (0).value,5);顯示第一個欄位 資料
$RS.movenext;跳出迴圈
WEnd;結束迴圈讀表
$RS.close;關閉數據分表
接下來以後想查詢其他人
只要更改'44130','张三2000000' 這兩個值隨時可以利用 預存程序查到你要的東西
cfs43210
发表于 2014-7-17 23:24:17
回复 31# kk_lee69
那预存程序不是对我没什么用 '44130' '张三2000000'不是固定的
Select * from Pers where PERSID='44130' and Name='张三2000000'
因为我用这个语句返回慢,以为预存会快点
kk_lee69
发表于 2014-7-17 23:25:56
回复 36# cfs43210
預存程序 只是為了方便調用
不是為了快 ~~ 如果 慢 得了解資料庫為何慢 慢在哪
才能治本
kk_lee69
发表于 2014-7-17 23:27:36
回复 36# cfs43210
能否說明 你實際上到底要做什麼事情困難在哪 也許可以給你建議
我對資料庫熟些
cfs43210
发表于 2014-7-17 23:39:54
回复 37# kk_lee69
明白了,谢谢你这么耐心帮我讲解,不知道是什么原因就是第一次读取慢.我再查查看,预存我就用不上了,收获学习预存.谢谢了哥们!
kk_lee69
发表于 2014-7-17 23:49:17
回复 39# cfs43210
注意幾個
1. 查詢條件的 欄位最好選 有建立索引的
2. 資料庫常用的 欄位最好都要建立索引這樣速度會有差別的
cfs43210
发表于 2014-7-18 00:00:30
回复 38# kk_lee69
谢谢!因为我是远程写入数据,写入数前先查询数据是否存在,如果存在就返回消息,就是返回消息慢,要7秒左右,这个问题好象只是第一次会慢,第二个就不会,好象读取过一次后返回就不会慢,这个问题在SQLite数据库我也碰到这个问题.不知道是什么原因.
kk_lee69
发表于 2014-7-18 02:01:55
回复 41# cfs43210
當然 因為 當你第一次要查詢查詢完畢後 其實 SQL 主機 本身會有暫存檔存在記憶體中
所以你第二次查就很快