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 主機 本身會有暫存檔存在記憶體中

所以你第二次查就很快
页: 1 2 [3]
查看完整版本: [己解决]SQL2000操作存储过程!