 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
tinwhang
註冊時間: 2009-11-08 文章: 104
第 91 樓
|
發表於: 星期四 十二月 10, 2009 6:52 pm 文章主題: |
|
|
呵呵,你如用反組譯回來的, 那真的就不是 "人文" 了 |
|
回頂端 |
|
 |
goodnight

註冊時間: 2008-10-13 文章: 473 來自: 台南市
第 92 樓
|
發表於: 星期五 十二月 11, 2009 1:34 pm 文章主題: |
|
|
ckp6250 寫到: | 有關轉移資料問題,可能要看運氣
大部份的設計師,應該都比較「正常」,檔名和欄名都會用『有意義』的名詞
比如,看到「Product.dbf」就知道是存貨品名檔
若看到「invoice_no」,十足是發票欄位,
依此類推∼
不過,日前看到某國內大型軟體公司的資料庫
一個資料庫,超過五百個 Table
Table 的名稱,全部都是 AA0001 , AA0002 , AA003 ...諸如此類,根本不知道是什麼檔?
打開 Table 一看,所有的欄位名稱,也都是 F0001 , F0002 , F0003 .......,也很難猜欄位用意
坦白說,我真的很佩服這家公司,幾百個 Table , 數千個 Field , 它有辦法用這種方式去管理,
您想移轉它?
死了心吧! |
我也是用這種方式, 這種方式的好處是, 沒人看得懂, 並且可以建立一個維護資料庫, 檔案重建時, 可以依這個維護檔來進行新檔案的維護, 因為所有結構都都在維護檔裡, 另一個好處是不用去想新欄位名稱, 就給它一直編下去
後來遇到 x新 的系統, 竟然也是用這個方法, 所以你只要能開啟這個護護檔, 天下就盡在你的手中了
檔案名稱 INVMB
MB001
MB002
MB002
缺點是, 萬一開了兩個
INVMB和DATMB
全都是 MB001 , 就不能用 SCATTER MEMVAR, 只能用 SCATTER TO INVMB
goodnight 在 星期五 十二月 11, 2009 1:44 pm 作了第 1 次修改 |
|
回頂端 |
|
 |
goodnight

註冊時間: 2008-10-13 文章: 473 來自: 台南市
第 93 樓
|
發表於: 星期五 十二月 11, 2009 1:38 pm 文章主題: |
|
|
saint 寫到: | 看了那麼多討論單號重復的問題,難不成大家現在都先給號?那如果先給號,不打了這一張號碼是空下來嗎?那空號要如何處置,找出來再給?
理想的做法不是存檔再給號嗎? |
我的經驗是直接刪除, 也就是會變跳號
sy 大的意思可能是留下單頭, 並且註記為作廢, 這是標準的erp做法, 爭議性較小
我比較不會花時間去補那個單號, 因為單號補了, 打單日期也會造成困擾, 程式也難寫多了, 空號正確說應該是空白資料, 就拿來填補新的單號啊, 這樣資料庫可以減少 pack, 但是 sql 好像沒差吧 |
|
回頂端 |
|
 |
goodnight

註冊時間: 2008-10-13 文章: 473 來自: 台南市
第 94 樓
|
發表於: 星期五 十二月 11, 2009 1:40 pm 文章主題: |
|
|
syntech 寫到: | 我是說,正航比較夠意思,
欄位名稱都用中文的. ^_^ |
因為 x航是用 access 寫的, 呵呵呵 |
|
回頂端 |
|
 |
tccvincent
註冊時間: 2003-05-26 文章: 54 來自: TAIPEI
第 95 樓
|
發表於: 星期六 十二月 19, 2009 11:14 am 文章主題: 回覆 |
|
|
您那家系統公司 應該叫作 宏麟 我們已經轉它的客戶不下20幾家 它的系統蠻不穩定 bug 又多 我們也是寫汽車材料管理 客戶 300 多家 用 vfp 開發 最大的用戶 總公司加全省8家分公司全部連線 沒用sql server 效率相當好從 vfp 3.0 到 9.0
開發 10 幾年 有興趣可以連絡我們 lt3@ms17.hinet.net |
|
回頂端 |
|
 |
pingoleo
註冊時間: 2004-04-12 文章: 92
第 96 樓
|
發表於: 星期一 十二月 21, 2009 12:17 am 文章主題: |
|
|
沒有sql 又能多點遠端連線 效率又好 不知道怎麼辦到的?
版主所遇到的問題可能可以用些小技巧來克服
只是效率如何就不知了 |
|
回頂端 |
|
 |
tien-chao
註冊時間: 2008-04-19 文章: 1
第 97 樓
|
發表於: 星期日 十二月 27, 2009 3:49 pm 文章主題: |
|
|
To goodnight大大: 請問這CASE還需找人手嗎?我以前有寫IE MRP6(公司已没了),專案開發AP及維護X新 ERP和利用其SQL撰寫MES程式.有興趣了解,可mail: st.chao@hotmail.com 連絡. thank _________________ FOXPRO-的支持者 |
|
回頂端 |
|
 |
xjliaos
註冊時間: 2007-11-20 文章: 87 來自: guan dong
第 98 樓
|
發表於: 星期二 一月 12, 2010 11:40 am 文章主題: |
|
|
保存的時候檢驗一遍單號是否存在,我現在是這么處理的 |
|
回頂端 |
|
 |
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 99 樓
|
發表於: 星期二 一月 19, 2010 6:29 am 文章主題: |
|
|
goodnight 寫到: | 我比較有興趣想知道如何避開重號後的蓋號
就是假設 A 和 B USER 取得相同的單號後, A 先按了存檔, 然後又 B 再按存檔, 把 A 的資料蓋掉了
先決就是要讓兩個人必須在同一時間取得不同單號, 但是又有個問題, 如果 A 放棄新, B 存檔, 鐵定產生跳號
所以如何有效避開上述三個問題點 |
參考看看:
1.嚐試去鎖定一個無關緊要的資料表格,此表格僅供儲存新記錄時使用
2.如果設定的秒數內無法鎖定該表格,提示使用者稍候再儲存(防呆機制),流程回到1.
3.鎖定後回到本體取得最後一號(例20100119001)並+1儲存新記錄(20100119002),再解鎖該表格
4.由於解鎖了,另一個使用者抓本體最後一號時為20100119002,+1是為20100119003,已經達到不重號的目的
這種做法的好處是,
不會去鎖到本體的資料表格......
實例:
------------------------ 本體 ------------------------
_prog_code="客戶訂單.EXE" && 本體程式名,存於[判定用表格.DBF]中
.
.
.
IF 新增記錄
SET REFRESH TO 5,1
IF !check_lock()
SELECT 本體資料表格
RETURN .F.
ENDIF
SELECT 本體資料表格
thisform.getserno
DO WHILE SEEK(單號欄位)
thisform.getserno && 如果目前訂號已存在,再抓一次最後單號(防呆用)
ENDDO
APPEND BLANK
ENDIF
DO WHILE !RLOCK()
ENDDO
GATHER FROM 欄位陣列
UNLOCK
.
.
.
* ---------------------------------------------------
* 檢查_prog_code指向的資料檔是不是可以被鎖住以供存檔判別
* 傳回值 == (L) => .T.:可鎖 .F.:不可鎖
* ---------------------------------------------------
FUNCTION check_lock
SELECT 判定用表格
IF SEEK(_prog_code) && 此例個人是以本體的執行程式名為鎖定目標
_stcnt=INT(SECOND())
_encnt=_stcnt
_unlock=.T.
_dolock=.F.
DO WHILE !RLOCK()
_dolock=.T.
IF INT(SECOND())-_encnt=1
DO showmess WITH "其他使用者存檔中,請稍候......("+ALLTRIM(STR(INT(SECOND())-_stcnt))+")",0,0
_encnt=INT(SECOND())
ENDIF
IF INT(SECOND())-_stcnt>=3 && 等待鎖定超過3秒
_unlock=.F.
ENDIF
ENDDO
WAIT CLEAR
IF !_unlock
DO errmess WITH "資料被鎖住了,請稍候再試一次!"
RETURN .F.
ENDIF
IF _dolock
_stcnt=INT(SECOND())
DO WHILE INT(SECOND())-_stcnt<2
ENDDO
ENDIF
ENDIF
RETURN .T.
ENDFUNC
* ---------------------------------------------------
PROCEDURE getserno
cnt1=0
GO BOTTOM
cnt1=VAL(單號欄位)
單號欄位=STR(cnt1+1)
ENDPROC
p.s. 有誤的話請指教,上述截自於個人的程式片段中稍做修改,也許有漏了什麼的...... |
|
回頂端 |
|
 |
saint
註冊時間: 2003-07-14 文章: 211
第 100 樓
|
發表於: 星期二 一月 19, 2010 10:35 am 文章主題: |
|
|
那可以利用 try catch 去做,如果單號有設PK,再去檢查ERROR MSG。這樣會不會比鎖表格簡單一點? |
|
回頂端 |
|
 |
raylian

註冊時間: 2006-08-09 文章: 25
第 101 樓
|
發表於: 星期六 二月 06, 2010 4:54 pm 文章主題: |
|
|
要保存才產生參考單號, 不然多人打單就有沖突可能...... |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|