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

DBF轉MYSQL OR MARIDB資料庫

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



註冊時間: 2005-11-27
文章: 38


第 1 樓

發表發表於: 星期日 八月 04, 2019 11:37 pm    文章主題: DBF轉MYSQL OR MARIDB資料庫 引言回覆

各位前輩好
我都用DBF資料做為開發,因為客戶的檔案太大了,銷貨檔1年就100mb,近期想把資料轉到MYSQL OR MARIDB上面,
請問我該要怎麼做?
我的程式需變動很多嗎?
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 2 樓

發表發表於: 星期一 八月 05, 2019 9:28 am    文章主題: 引言回覆

要改不少

站內搜尋 MYSQL + SPT, 或其中之一

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

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



註冊時間: 2014-08-24
文章: 212


第 3 樓

發表發表於: 星期四 八月 08, 2019 7:47 am    文章主題: 引言回覆

建議:買ms sql 就好,支源度比較好,也不貴,5user (3-5萬ntd),多個users,另外買即可!
另外可先用180天試用版!
效能為dbf 的 百倍以上,更不容易壞,現上不需離線可定期排程,自動備份!
修改為: spt
例原本:APPEND BLANK,改為 SQL 的 INSERT INTO XXXXX
原本的 REPL CUST_NO WITH M.CUST_NO,改為 UPDATE XXXX SET FILEDS=?M.VAR_NAME WHERE KEY_NUM=?YOUR_ONLY_KEY

原本的 DELETE 改為 DELETE XXXX WHERE KEY_NUM=?YOUR_ONLY_KEY


原本的SELECT * FROM ....改成SPT寫法,一樣SELECT * FROM XXX WHERE ...
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 4 樓

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

大部分情況來說,
免費的 sql express 就夠用了.
以 sql express 2017 來說, 資料庫檔案可以到 10GB (所有TABLE 加在一起,或是想辦法分成不同資料庫)
支援 1.4 GB 執行記憶體,及最高用到單顆4核心CPU


另外可以參考這篇:
https://dotblogs.com.tw/jamesfu/2019/04/10/sqlexpress

[SQL]SQL Server Express 使用注意事項

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

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



註冊時間: 2005-11-27
文章: 38


第 5 樓

發表發表於: 星期五 八月 09, 2019 11:50 am    文章主題: 引言回覆

CPS0204 寫到:
建議:買ms sql 就好,支源度比較好,也不貴,5user (3-5萬ntd),多個users,另外買即可!
另外可先用180天試用版!
效能為dbf 的 百倍以上,更不容易壞,現上不需離線可定期排程,自動備份!
修改為: spt
例原本:APPEND BLANK,改為 SQL 的 INSERT INTO XXXXX
原本的 REPL CUST_NO WITH M.CUST_NO,改為 UPDATE XXXX SET FILEDS=?M.VAR_NAME WHERE KEY_NUM=?YOUR_ONLY_KEY

原本的 DELETE 改為 DELETE XXXX WHERE KEY_NUM=?YOUR_ONLY_KEY


原本的SELECT * FROM ....改成SPT寫法,一樣SELECT * FROM XXX WHERE ...




可否再請教一個問題,支前在DBF上面,我都沒有開主建值,請問在SQL上面要開啟嗎?
我都是利用客戶存檔的時候,才產生單據號碼,那麼在SQL上面怎麼做?
還有單號怎麼控制布重富的問題
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



註冊時間: 2014-08-24
文章: 212


第 6 樓

發表發表於: 星期五 八月 09, 2019 8:41 pm    文章主題: 引言回覆

0.主鍵值壹定需要開!
1.主鍵值只要唯一即可,組成例:登入的帳號(例:001)+登錄次數最後一碼(0到9)+sys(2015)+機台mac號,如沒有機台號,將機台號=SYS(2015)即可
即浪費一點CHAR空間,組成 UNIQ KEY
2.考慮單號不重覆的問題,在網路多人版,只要是dbf 或novell 的file-server型態,就不會100%克服,一定會重覆發生,即使機率很低!
3.步驟: 新增時,先去SQL最後一筆單號流水號+1 (此為假像,一切依實際寫入成功為準)!
按(存檔)鈕寫入時,再SELECT 一次最後單號+1,此時成功率約90%

4. 然後,可將單據號碼,在 sql server 中的資料表格的索引檔中,設為 (唯一的索引健),然後模擬多人同時寫入sql server時,讓SQL server 機制做最後把關, 若後面的人insert into 不成功,SQLEXEC() 回傳值 =-1, 則再重抓一次新單號+1,再寫入一次(一直LOOP直到成功)!,一般多人版,RUN個2-4次都會成功!不會同時有那麼多人寫入相同的單據號碼!(約耗時0.01-0.5秒),人沒啥感覺DELAY!

5.在SQL SERVER 中,如果你沒有主KEY,例:在出貨單身500萬筆中,請問你怎作單一小筆的 UPDATE,或DELETE?
小技巧,將此主KEY設為 ,索引檔的主鍵值(不可空白+不可重覆),在UPDATE及DELETE 會加快很多(類似RUSH MORE)!

所以SQL SERVER 每個TABLE都要一個主鍵值,一定會用到!
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 446
來自: 台南市

第 7 樓

發表發表於: 星期六 八月 24, 2019 9:44 am    文章主題: Re: DBF轉MYSQL OR MARIDB資料庫 引言回覆

新人類 寫到:
各位前輩好
我都用DBF資料做為開發,因為客戶的檔案太大了,銷貨檔1年就100mb,近期想把資料轉到MYSQL OR MARIDB上面,
請問我該要怎麼做?
我的程式需變動很多嗎?


一年才 100mb 算小吧, 你若為了效率問題, 可以改存在 SSD
10年了不起 1.5G, 10年我看都讓換系統了
趁現在規劃轉到 sql 也是對的

my sql , ms sql 各有優缺點, 不要因為為了省錢, 先了解兩者的差異再決定
大部份語法都是相通的

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
syntech



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

第 8 樓

發表發表於: 星期一 八月 26, 2019 12:38 am    文章主題: 引言回覆

新人類 寫到:

可否再請教一個問題,支前在DBF上面,我都沒有開主建值,請問在SQL上面要開啟嗎?
我都是利用客戶存檔的時候,才產生單據號碼,那麼在SQL上面怎麼做?
還有單號怎麼控制布重富的問題



有些公司的作法
另外用一個欄位當pk ,例如隨便編一個yyyymmddhhmmssss當欄位值,
或是使用"AUTO INCREMENT 自動累加"欄位, ms sql 上稱為自動編號(identity)
通常這個不會重複,
然後你的單據號碼照以前的方法取.

技術上來說,
你以前就應該會發生單號重複的問題,
只是沒遇到或是用其他方式迴避.

我用在公司的方法在dbf時代就100%不會重現重複,
搬到sql上也會是100%不會重現重複.
而這個方法實際上在上個世紀90年代以前那時就已經有人說明及使用了,
不是一個新方法,


當然sql也可以不使用pk,
只是你要自己迴避某些問題

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

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



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

第 9 樓

發表發表於: 星期一 八月 26, 2019 12:52 am    文章主題: 引言回覆

CPS0204 寫到:

5.在SQL SERVER 中,如果你沒有主KEY,例:在出貨單身500萬筆中,請問你怎作單一小筆的 UPDATE,或DELETE?
小技巧,將此主KEY設為 ,索引檔的主鍵值(不可空白+不可重覆),在UPDATE及DELETE 會加快很多(類似RUSH MORE)!

所以SQL SERVER 每個TABLE都要一個主鍵值,一定會用到!



sql 上都有 timestamp 時間戳記 欄位,
精度看各家系統的設計,
只要精度夠,
在500萬筆中一樣可以找到指定的那筆.
但vfp(odbc)的timestamp 時間戳記 欄位的精度與 sql server的精度不一樣,
所以要小心使用

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

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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