VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

sqlexec() 可否一次送出 2 道以上的 select 命令

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
h580920



註冊時間: 2005-02-28
文章: 35


第 1 樓

發表發表於: 星期三 四月 29, 2009 6:03 pm    文章主題: sqlexec() 可否一次送出 2 道以上的 select 命令 引言回覆

最近因為要將以前的程式改寫成使用 SPT 的寫法, 所以實驗了一 SPT 函數, 產生如下的疑問, 煩請前輩指教
1. SQLEXEC() 好像可以一次送出 2 道以上的 Select , 但是我實驗時這樣寫 SQLEXEC(m.han, "Select * From a1 ; select * from a2", "tmp1"), , 結果都回傳 -1, 只有一道時是 ok 的, 另外有嚐試 SQLEXEC(m.han, "Select * From a1 "+chr(10)+"select * from a2", "tmp1") 也是失敗

2. SQLPREPARE() 會先在server端編譯 sql 命令, 所以效率會比較好, 但是我執行下列的測試碼, 感覺好像沒差, 所以不知 SQLPREPARE() 的真正用途 ?
M_SECONDS = SECONDS()
M_NAME1="TEST"
SQLPREPARE(m.han, "INSERT INTO TEST1 (NO1, NAME1) VALUES (?M_NO1, ?M_NAME1)")
FOR M_I=1 TO 1000
M_NO1 = TRANSFORM(M_I, "@L 99999")
M_OK = SQLEXEC(m.han)
ENDFOR
MESSAGEBOX(SECONDS() - SECONDS)
執行後後 SQLEXEC() 皆有回傳 1, 但是我和直接在 SQLEXEC() 中下 Select 字串的方式比較好像沒差

3. 我要連線到 mysql 一定都要安裝對應的 ODBC 驅動嗎 ?

以上請各位能否解惑 ?
VFP是9.0, 使用 MySQL
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 2 樓

發表發表於: 星期三 四月 29, 2009 6:58 pm    文章主題: 引言回覆

1.設定 CLIENT_MULTI_STATEMENTS 參考 http://twpug.net/docs/mysql-5.1/apis.html
2.沒用過,不知道
3.要安裝odbc
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
chilin



註冊時間: 2003-10-01
文章: 79
來自: Taipei,Taiwan

第 3 樓

發表發表於: 星期三 四月 29, 2009 8:29 pm    文章主題: 引言回覆

VFP 使用 CLIENT_MULTI_STATEMENTS 連接 MyODBC
MYSQL_IP='127.0.0.1'
MYSQL_DB='mydb'
MYSQL_USER='myuser'
MYSQL_PASSWORD='****'

MYSQL_OPTION=1+2048+67108864
SQLSETPROP(0,"DispLogin",3)
SQL_LINK=sqlstringconnect([DRIVER=MySQL ODBC 5.1 Driver;SERVER=]+MYSQL_IP+[;UID=]+MYSQL_USER+[; PWD=]+MYSQL_PASSWORD+[;DATABASE=]+MYSQL_DB+[;OPTION=]+ALLTRIM(STR(MYSQL_OPTION)))

SQL_STR=[SET @ID='70';SELECT * FROM TABLE WHERE ID=@ID;]
SQLEXEC(SQL_LINK,SQL_STR,[TC])
BROW
SQLDISCONNECT(0)
CLEAR ALL

MYODBC3.51.25 OR MYODBC 5.1.4
OPTION:
1: If the client wants the real width of the column (實際欄寬)
2048: Use the compressed server/client protocol (資料壓縮)
67108864: CLIENT_MULTI_STATEMENTS (多行命令執行)

_________________
一個喜愛Latte的男人
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
h580920



註冊時間: 2005-02-28
文章: 35


第 4 樓

發表發表於: 星期三 四月 29, 2009 8:36 pm    文章主題: 引言回覆

感謝 2 位, 第一個問題, 我有實驗成功了
OPTION:
1: If the client wants the real width of the column (實際欄寬)
2048: Use the compressed server/client protocol (資料壓縮)
67108864: CLIENT_MULTI_STATEMENTS (多行命令執行)
以上的設定, 其中的 1 和 2048 不曉得是甚麼意思 ?
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1645


第 5 樓

發表發表於: 星期三 四月 29, 2009 9:06 pm    文章主題: 引言回覆

option 的訂義,請看 myodbc 的 help 或
http://lists.mysql.org/myodbc/2576
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作