 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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 樓
|
|
回頂端 |
|
 |
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 樓
|
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|