 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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 |
|
|
回頂端 |
|
 |
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 次修改 |
|
回頂端 |
|
 |
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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
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你的貼文,回文時看一下吧 |
|
回頂端 |
|
 |
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也有 |
|
回頂端 |
|
 |
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 30 樓
|
發表於: 星期五 八月 09, 2013 10:02 am 文章主題: |
|
|
saint 寫到: |
這是mssql 提供的功能,我相信mysql也有 |
沒錯,Mysql 也有,所以我才會請樓主先去把書看一遍,不用急著動手。
又,即使是做成 .sql 檔,它的內容,還是以做成
insert into successtime.invoice01 (....) values (....),(....),(....),(....)
這個方式為佳,如果資料量大的話,效率差了幾百倍 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|