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

vfp to mysql
前往頁面 上一頁  1, 2, 3, 4  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
saint



註冊時間: 2003-07-14
文章: 211


第 16 樓

發表發表於: 星期三 八月 07, 2013 3:25 pm    文章主題: 引言回覆

我個人覺得也許可以試試下面的方式,只是不知道DBF是否有支援,已經很久沒有用DBF
代碼:

SELECT
   A.MONTH
   ,A.AMOUNT AS 發票A
   ,B.AMOUNT AS 發票B
   ,A.AMOUNT + BA.AMOUNT AS TOTAL
FROM(
   Select
      date_format(inv_date,'%M/%Y') As Month
      , sum(amount) As amount
   from inv1 group by Month)A INNER JOIN
   (
   Select
      date_format(inv_date,'%M/%Y') As Month
      , sum(amount) As amount
   from inv2 group by Month
   )B ON A.MONTH = B.MONTH
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 17 樓

發表發表於: 星期三 八月 07, 2013 4:36 pm    文章主題: 引言回覆

aforangel 寫到:
卡在 vfp data 上移到 mysql 那個步驟, 在不停找尋方法中....


這個應該沒這麼難吧.

用afield() 取得欄位陣列,再做成 create table 命令就可以了.
上面提示的stru2mysql 就是這樣做的.

直接寫 create table 命令也可以,不可能沒有檔案結構表吧.


table 做好了,
看你喜歡自己做 逐筆 insert ,還是用 spt 方法一次處理一個table.


----
mysql 應該有個工具 mysql migration toolkit 可以做 異質資料庫轉入 mysql 動作, google 一下教學

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙


syntech 在 星期三 八月 07, 2013 4:51 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 18 樓

發表發表於: 星期三 八月 07, 2013 4:49 pm    文章主題: 引言回覆

如果要用正常的sql server,又不想花錢,
明明就有 m$ sql server express 可用呀.
也不見得就要用mysql吧,
這應該也是一種迷思. ^^;;;

vfp 上移精靈也可以用.
m$ sql server express 2012 提供的容量也夠中小型企業使用.
雖然接 php 比較麻煩, m$ 故意把 php driver 寫爛,
但是應用上是差不多的.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 19 樓

發表發表於: 星期三 八月 07, 2013 4:59 pm    文章主題: 引言回覆

jerryclt 寫到:
請教ckp6250兄,
演算法放到後端的實際效用為何?
小弟愚魯,
一直以為無論是在後端或前端演算,
在演算的過程中,
使用者應該還是會乖乖地等待結果出爐不是嗎?
還是說在後端演算時,
前端會作其它作業,
然後等後端將結果送到前端再用一個機制打斷目前作業,
來顯示演算結果?

請不吝指教, 謝謝 ^^


看你是要搞 single thread 的循序作業方式 (一個運算完再處理下一個運算),
還是要搞成 multi-thread 的平行作業方式 (同時發動一堆運算,利用某種機制檢查結果完成再顯示)


例如,統計12個月的資料,
你可以一次處理一個月份,也可以同時發出12次要求.
這個例子比較簡單,不涉及資料處理先後會造成的影響.

這個例子中,如果sql server 夠力的話,
循序作業等待時間會比平行作業等待的時間長得多.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



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


第 20 樓

發表發表於: 星期三 八月 07, 2013 10:31 pm    文章主題: 引言回覆

saint 的語法不太保險
會有資料失漏的可能
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
ckp6250



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


第 21 樓

發表發表於: 星期三 八月 07, 2013 10:41 pm    文章主題: 引言回覆

syntech 寫到:
如果要用正常的sql server,又不想花錢,
明明就有 m$ sql server express 可用呀.
也不見得就要用mysql吧,
這應該也是一種迷思. ^^;;;


想用Mysql,也不單單只是為了『不想花錢』這個理由而己。
如果單單不用錢這個理由的話,
以微軟的普及率及windows平台的獨佔優勢,
那麼不用錢的m$ sql server express應該會打遍天下無敵手才對
怎麼還有MySql的生存空間呢?

環肥燕瘦,各有所好
不管選那一套,只要好好用心學下去,都會有好處
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 22 樓

發表發表於: 星期四 八月 08, 2013 11:29 am    文章主題: 引言回覆

因為想到"免費",就會想到 LINUX, MYSQL,PHP,Apache web server,OPEN OFFICE, ^_^

M$ 從 MSDE 一路放寬功能限制,大家還是MYSQL, MYSQL 的喊個不停.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



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


第 23 樓

發表發表於: 星期四 八月 08, 2013 12:04 pm    文章主題: 引言回覆

syntech 寫到:
M$ 從 MSDE 一路放寬功能限制,大家還是MYSQL, MYSQL 的喊個不停.


既然MSDE一路放寬功能限制了,
為什麼『大家還是MYSQL, MYSQL 的喊個不停?』

Mysql 自然有它的迷人之處,

這麼說好了,就算今天正式的 MsSql 都免費了
我相信還是會有很多人『MYSQL, MYSQL 的喊個不停』

至少小弟就是其中一個。
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
aforangel



註冊時間: 2010-05-24
文章: 117


第 24 樓

發表發表於: 星期四 八月 08, 2013 3:09 pm    文章主題: 引言回覆

我想嘗試寫程式送data上SQL, 這樣能嗎?

store sqlstringconnect("dsn=MySQL_TEST; userid=root; pwd=123456") to xconnhandle
if xconnhandle < 0
else
SQLEXEC(xconnhandle, 'use successtime')
select invoice01
go top
if !eof()
nN = fcount()
nM = ""
do while !eof()
nM = ""
for nI = 1 to nN
nA = field(nI)
nB = vartype(&nA)
do case
case nB == "C"
nA = "'"+alltrim(&nA)+"'"
case nB == "D"
nA = dtoc(&nA)
case nB == "T"
nA = dtoc(&nA)+" 12:00:00 AM"
case nB == "N"
nA = alltrim(str(&nA))
otherwise
endcase
nM = nM + nA +","
next nI
nL = len(nM)-1
nM = left(nM,nL)
nC = "insert into successtime.invoice01 values ("+nM+")"
sqlexec(xconnhandle,nC) **執完後沒error, 但也沒新增檔案, 請問要怎改

skip
enddo
endif
endif
sqlcancel(xconnhandle)
sqldisconnect(xconnhandle)
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 25 樓

發表發表於: 星期四 八月 08, 2013 4:09 pm    文章主題: 引言回覆

建議不要使用 dsn 的方式
所有的欄位植,都比照文字欄位, 前後都加上 "'"
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
aforangel



註冊時間: 2010-05-24
文章: 117


第 26 樓

發表發表於: 星期四 八月 08, 2013 5:30 pm    文章主題: 引言回覆

do while !eof()
nM = ""
nC = ""
for nI = 1 to 4
nA = field(nI)
nB = vartype(&nA)
do case
case nB == "C"
nA = "'"+alltrim(&nA)+"'"
case nB == "D"
nA = "'"+dtoc(&nA)+"'"
case nB == "T"
nA = "'"+dtoc(&nA)+" 12:00:00 AM"+"'"
case nB == "N"
nA = "'"+alltrim(str(&nA))+"'"
otherwise
endcase
nM = nM + nA +","
next nI
nL = len(nM)-1
nM = left(nM,nL)
nC = "insert into successtime.invoice01 (inv_no,inv_date,cust_code,custlname) values (" + nM +")"
y = sqlexec(xconnhandle,nC)
?y
skip
enddo

ckp大大, 依你所言, 全部比照文字欄位, 前後加上"'", 成功了....但是, ...為何如果這個dbf有5筆record, 每一次執行, 也只能把第一筆record 推上sql server, 永遠第一筆record傳回給 y 是1, 其餘4筆紀錄都傳回-1....

另請教..為何我在原文有做縮行, 送出之後都變並排, 害大家看得這麼辛苦
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



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


第 27 樓

發表發表於: 星期四 八月 08, 2013 6:19 pm    文章主題: 引言回覆

不要一筆一筆上傳,這樣效率太差
把所有 record 整理成一個字串,
再上傳

像這樣子
nc="insert into successtime.invoice01 (....) values (....),(....),(....),(....)"
sqlexec(xconnhandle,nC)

一次搞定!

建議:先別急著上移資料,
把 Mysql 的一些基本特性都看一遍吧
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
saint



註冊時間: 2003-07-14
文章: 211


第 28 樓

發表發表於: 星期五 八月 09, 2013 8:52 am    文章主題: 引言回覆

引言回覆:
另請教..為何我在原文有做縮行, 送出之後都變並排, 害大家看得這麼辛苦


因為你沒有用到CODE 來MARK你的貼文,回文時看一下吧
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
saint



註冊時間: 2003-07-14
文章: 211


第 29 樓

發表發表於: 星期五 八月 09, 2013 9:17 am    文章主題: 引言回覆

ckp 的解法是一種
我常做的方式是,把它們整理成一個 filename.sql
再利用
代碼:

sqlcmd -U ID -P PW -S (local)\sqlexpress -i d:\path\filename.sql


這是mssql 提供的功能,我相信mysql也有
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
ckp6250



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


第 30 樓

發表發表於: 星期五 八月 09, 2013 10:02 am    文章主題: 引言回覆

saint 寫到:

這是mssql 提供的功能,我相信mysql也有


沒錯,Mysql 也有,所以我才會請樓主先去把書看一遍,不用急著動手。

又,即使是做成 .sql 檔,它的內容,還是以做成
insert into successtime.invoice01 (....) values (....),(....),(....),(....)

這個方式為佳,如果資料量大的話,效率差了幾百倍
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2, 3, 4  下一頁
2頁(共4頁)

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


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