上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
darma
註冊時間: 2003-09-20 文章: 6 來自: taipei
第 1 樓
|
發表於: 星期一 九月 29, 2003 6:11 pm 文章主題: vfp 透過 spt 與 MySQL 連接 |
|
|
在本版文章區中看到兩篇使用 PHP 連結 MySQL 文章,其實 VFP 可以透過 SPT 直接使用 MySQL
1.至 www.MySQL.com 下載
MySQL 4.0 版以後版本(提供 InnoDB 檔案型態可以支援 Transaction)
MySQL ODBC 3.51 Driver
MySQL Control Center 0.9.3 版(一個類似 MS SQL Enterprise Manager 的工具)
2.在 Widows 2000 或 XP 下一路安裝上述三個套件
3.連接範例
* 取得 MySQL server 連結
function getMySqlConnect
local cSqlDriver,cNetLib,nSqlHandle,cSqlstring
nSqlHandle=0
cSqlDriver = "MySQL ODBC 3.51 Driver"
cSqlserver = "192.168.1.20"
cSqlUser = "darma"
cSqlPwd = "Your Password"
cNetLib = "dbnetlib" &&用戶端網路程式庫 for Tcp/Ip
cSqlstring="DRIVER="+cSqlDriver+";SERVER="+cSqlServer+";UID="+cSqlUser+";PWD="+cSqlPwd+";DATABASE="+cSqlDbc+";NETWORK="+cNetLib
=sqlsetprop(0,"DispLogin",3)
nSqlHandle = sqlstringconnect("&cSqlString.")
return nSqlHandle
4.連接後即可使用 sqlexec(nSqlHandle,"Your statement") 作更新查詢等動作 |
|
回頂端 |
|
|
jam
註冊時間: 2003-07-14 文章: 6
第 2 樓
|
發表於: 星期五 十月 03, 2003 12:02 am 文章主題: |
|
|
補充一下這行改成如下
cSqlstring="DRIVER="+cSqlDriver+";SERVER="+cSqlServer+";UID="+cSqlUser+";PWD="+cSqlPwd+";DATABASE="+cSqlDbc+";NETWORK="+cNetLib+";OPTION=515;"
會好一點,為什麼哪,因為沒設 OPTION=515 由 mysql 下載至 vfp 的資料會把空白
的地方切掉,如原本是 200 個字元,但下載資料這個欄位最大只有 100 個字元,這個
欄位會自動改 100 個字元,這是odbc 預設的功能.. |
|
回頂端 |
|
|
darma
註冊時間: 2003-09-20 文章: 6 來自: taipei
第 3 樓
|
發表於: 星期六 十月 04, 2003 12:28 pm 文章主題: |
|
|
謝謝 jam 補充,要不要加 option 需要看 client 如何運用,因為會影響速度
再補充兩個 news
1.MySQL 4.1 版開始增加 suquery 支援 (測試版已經出來)
2.MySQL 5.0 版將支援 store procedure
如此一來 MySQL 功能就稱得上完備了 |
|
回頂端 |
|
|
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 4 樓
|
|
回頂端 |
|
|
darma
註冊時間: 2003-09-20 文章: 6 來自: taipei
第 5 樓
|
發表於: 星期日 十月 05, 2003 7:29 pm 文章主題: |
|
|
目前我使用 4.0.12 版沒有發現這個問題,不過 MySQL 資料型態與 VFP 或 MS SQL 不儘相同,例如 bit 在 MySQL 中以 TINYINT 替代,因此如果直接用 REMOTE VIEW 恐怕會有問題 |
|
回頂端 |
|
|
darma
註冊時間: 2003-09-20 文章: 6 來自: taipei
第 6 樓
|
|
回頂端 |
|
|
jam
註冊時間: 2003-07-14 文章: 6
第 7 樓
|
發表於: 星期二 十月 07, 2003 2:19 pm 文章主題: |
|
|
to darma
你該使用了 mysql 長時間了,想請問你一個問題,我的 mysql 是裝在 linux 上的
有一個問題不佑如何解決..在 mysql 資料庫的中文如果是 *許* 這個中文字會有
沖碼的狀況,該如果避免這個問題哪!謝謝.. |
|
回頂端 |
|
|
zlabsoft
註冊時間: 2003-10-18 文章: 22
第 8 樓
|
發表於: 星期日 十月 19, 2003 12:00 am 文章主題: |
|
|
Hi,
try following code to convert string before transfer to mysql using SPT:
LPARAMETERS lcStr, llNoDelimiter
*
* String convertor for MYSQL Ver 1.3
*
*** Input :
*
* lcStr - String to be convert
*
*** Output : Converted string
*
*
* Description : MYSQL require special handling for following characters:
* CHR(0) -> \0
* CHR(127) -> \b
* CHR(10) -> \n
* CHR(13) -> \r
* CHR(9) -> \t
* \ -> \\
* ' -> \'
* " -> \"
* So any string / binary data must be converted before transfer to MYSQL server
*
* 20/05/2003 1.3 - Code optimize a bit
* 30/05/2002 1.2 - Optional remove the delimiter
* 12/03/2002 1.1 - Modified by Tommy Tsang to handle full character set
* dd/mm/yyyy 1.0 - Draft by Bob Lee
*
* By: Tommy Tsang
*
LOCAL lcDelimiter
lcDelimiter = IIF(llNoDelimiter, [], ['])
Return lcDelimiter+STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(lcStr,[\],[\\]),['],[\']),["],[\"]),CHR(0),[\0]),CHR(13),[\n]),CHR(10),[\r]),CHR(09),[\t]),CHR(127),[\b])+lcDelimiter |
|
回頂端 |
|
|
jam
註冊時間: 2003-07-14 文章: 6
第 9 樓
|
發表於: 星期二 十月 21, 2003 1:00 pm 文章主題: |
|
|
謝謝 zlabsoft 回應!我已有轉換過了,問題我找到了,是 *許* 這個字碼有內含 "\"
字元,所以解決方式是用
Xch="許功效"
if at("\",Xch) > 0
...在許後面加上一個 "\"
endif
這樣就可以了....謝謝 |
|
回頂端 |
|
|
ylong
註冊時間: 2003-07-30 文章: 115
第 10 樓
|
發表於: 星期五 七月 23, 2004 4:57 pm 文章主題: |
|
|
oops: 可否請問jam,假如我的MySQL是裝在Linux,而我想用VFP去連接,請問我該如設定,因為我每次設定都出現下列的態狀,煩請不吝賜教 |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 11 樓
|
發表於: 星期六 七月 24, 2004 9:29 am 文章主題: |
|
|
看起來是 MySQL server 設定的問題
Linux 的 MySQL 為了安全起見,預設值通常只讓 localhost 本機端可以連線
請參考 MySQL 手冊或 Help 去修改設定
應該就可以了~~ |
|
回頂端 |
|
|
OLDSTONE
註冊時間: 2003-09-30 文章: 29
第 12 樓
|
發表於: 星期五 七月 30, 2004 9:46 am 文章主題: |
|
|
cSQLDBC 沒有定義
請問cSQLDBC 如何定義??
THANKS!! |
|
回頂端 |
|
|
OLDSTONE
註冊時間: 2003-09-30 文章: 29
第 13 樓
|
發表於: 星期五 七月 30, 2004 9:58 am 文章主題: |
|
|
請問::
cNetLib = "dbnetlib" &&用戶端網路程式庫 for Tcp/Ip
要如何設定??
我是win2000+mysql5.0
要如何設定才連的上? |
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2157
第 14 樓
|
發表於: 星期一 八月 02, 2004 9:52 am 文章主題: |
|
|
如果要知道SPT的連接字串很簡單, 只要你在專案中的資料庫中的連接新增一個連接, 點選"連接字串", 再點輸入連接字串的右邊 ... 去選要透過那個ODBC連接, 只要正確, 電腦會自己產生連接字串, 你可以拿來用於 sqlstringconnect( ). _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
ylong
註冊時間: 2003-07-30 文章: 115
第 15 樓
|
發表於: 星期一 八月 02, 2004 11:59 am 文章主題: 煩請高手指導 |
|
|
我已把VFP與Linux上的MySQL連線了,但是下一步又使我的腳步停留下來,因為
不知該如何把何表單上的資料與MySQL上的資料比對,如何把表單上的資料作新
增修改到MySQL,或是從MySQL上刪除資料,或是把MySQL的資料顯示到目前
的表單上,煩請各位高手不吝嗇賜教 |
|
回頂端 |
|
|
|