全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:974
推到 Plurk!
推到 Facebook!

关于单机版升级到网络版的技术要点

答題得分者是:Stallion
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-14 16:17:08 IP:222.184.xxx.xxx 未訂閱
承蒙各位前辈的指点,小弟开发的一单机版软件已基本设计运行成功,现欲将它改为网络版本,从ADO ACCESS 改为ADO SQL2000 不知道连接SQL数据库是如何连的,另外,原有的一些单机版的代码或控件要做哪些改动和变化。我想做的是C/S结构的网络版。
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-14 20:11:12 IP:211.22.xxx.xxx 未訂閱
ntjrr兄,你的問題似乎很廣,可能站上的先進與前輩無法三言兩語告知!在此小弟冒昧總結一下,其實ACESS轉成MSSQL的變動其實不會太大(包括元件部分),除了連線字串稍有不同,如果不知道怎麼做連線字串,在ADO很多元件裡都有CONNECTIONSTRING這個屬性,照著步驟來做就會明白了。 另外只要你是使用MSSQL伺服器也不用擔心鎖定的問題,這些問題基本上也被資料庫伺服器所控管,總之所有的作法(元件與語法)基本上都與LOCAL版本的差不多,差別只在於伺服器版的資料鎖定(其實也不必你負責)。 此外如要做三層式架構的話,那不同的地方就比較多了,也不是小弟的專業,不便置喙 ---------------------------------------------- We will either find a way, or make one. -Hannibal -。
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-14 21:54:32 IP:222.184.xxx.xxx 未訂閱
感谢Stallion 前辈的指点,那就是说从单机版改到C/S结构的网络版,技术上难度不是很大,这个问题确实问的是太广了,呵呵,主要我也不懂一时从哪问起,只有答一点问一点了,呵呵,那么按您所说,adoconnection连接SQL时如何连呢,和连ACCESS的区别在哪呢?ACCESS选的是JET4。0什么的,这个如何选?
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-14 23:11:38 IP:211.22.xxx.xxx 未訂閱
解說的不如給個範例! ServerConnectionString := 'Provider=SQLOLEDB.1;Password=''' UsersSQLAccountPasswordLabeledEdit.Text '''' ';Persist Security Info=True;User ID=''' UsersSQLAccountLabeledEdit.Text '''' ';Initial Catalog=SystemGateWay;Data Source=''' UsersSQLServerLabeledEdit.Text ''''; ps. UsersSQLAccountPasswordLabeledEdit.Text //登入伺服器的密碼 UsersSQLAccountLabeledEdit.Text //登入伺服器的帳號 SystemGateWay //在資料庫伺服器中的資料庫名稱 UsersSQLServerLabeledEdit.Text //資料庫伺服器的IP位址 ---------------------------------------------- We will either find a way, or make one. -Hannibal -。
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-15 21:11:28 IP:222.184.xxx.xxx 未訂閱
在前辈的指点下,我又完成了以下工作:SQL SEVER 2000服务器安装运行成功,ACCESS数据库升级到SQL成功,CONNECTION连接SQL成功,试着运行了软件中的一个菜单,增加了一下资料,居然成功了,不会网络版就这么简单的完成吧?疑惑之—:是不是CONNECTION换一下连接SQL数据库就好了,其它什么都不用变了?疑惑之二:并发的问题如何解决呢?要不要采取什么措施?疑惑之三:发布时候有哪些注意点呢?比如说数据库文件如何打包,如何能确定客户能在他所设置的SQL中找到我定义的数据库文件的位置呢?谢谢!
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-15 21:33:40 IP:211.22.xxx.xxx 未訂閱
1.是的,就是這樣,其實CONNECTIONSTRING裏面還有別的參數,包括SHARE模式等等,你可以查查資料(其實我也忘了!)。 > ----------------------------------------------
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-16 06:55:05 IP:222.184.xxx.xxx 未訂閱
2.開發就如你做一般資料庫程式一般,沒啥特別的。 Stallion前辈,这一个疑问可能是我没表达清晰,我问的是并发,就是几台客户机的数据在同时发生存储或者取出过程时,要不要在代码上做什么按排的?还是说SQL数据库自己会处理好这个数据并发的问题的?
------
我的编程起步于ktop,我将永远支持ktop
kevinguo
初階會員


發表:1
回覆:31
積分:31
註冊:2002-11-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-16 13:32:34 IP:61.30.xxx.xxx 未訂閱
ntjrr兄,您好:       Stallion兄,不好意思,我插花一下,別見怪< > 就單機版和網路版資料庫應用程式最大的不同在 > 這些都要想辦法去避免< >
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-16 17:31:05 IP:222.184.xxx.xxx 未訂閱
谢谢kevinguo前辈的指点,您所说的问题也就是我所指的数据并发的问题,我也是在担心这个问题,您在大体上指出了问题,使我知道我的担心不是多余的,客观上是真实存在的。 但我不知道您所说的问题在开发设计上如何解决呢?因为我初涉网络版,所以能否得到较具体一点的指点,谢谢!
------
我的编程起步于ktop,我将永远支持ktop
kevinguo
初階會員


發表:1
回覆:31
積分:31
註冊:2002-11-20

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-16 18:53:20 IP:61.30.xxx.xxx 未訂閱
ntjrr,您好: 我不是前輩,我也是新手,互相討論囉,請Stallion兄與其它先進多指點一下,我怕我誤導了ntjrr兄 1.資料新增部分,產生Key值在最後要Applyupdate的時候在產生,別在新增資料的時候就產生 2.資料修改,我提到的情況是在自己查詢資料,暫存在Client端,再去做一些商業邏輯運算,才需要去考慮資料過時的問題,如果你是直接用ADOTable之類的元件,直接存取資料,ADOTable會幫你處理這部份,給你一個資料列已被更新的錯誤.這是我所了解的部份 發表人 - kevinguo 於 2005/08/16 18:54:23
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-08-16 19:44:50 IP:211.22.xxx.xxx 未訂閱
不會~不會,kevinguo兄見外了,大家本來就是討論,不然「討論區」之名何來? 另外,我的看法是: > 另外,如何以程式設定 > ----------------------------------------------
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-08-16 20:21:10 IP:222.184.xxx.xxx 未訂閱
再问一下,问的不对之处请前辈勿见笑。 1您所说的TABLE的PK值也就是说的主键的意思吧?自动编号?我基本上每个字段都有的,关键的几个资料库中我都是在新增前做查询的,有重名的不让填入的。资料重复这个问题我不是太担心(因为有自动编号,总归不会有严重问题的?) 2。我担心的是减数字的问题,比如我做的是销售一块,有进销存的,销的时候如果发生两个人同时收了数量为2的相同物品,那么最终库存会减4吗?依kevinguo大大所说就是最终库存减的为2?Stallion大大您说的SQL数据库锁定,也就是能处理该问题了?
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-08-16 20:48:28 IP:211.22.xxx.xxx 未訂閱
引言: 再问一下,问的不对之处请前辈勿见笑。 1您所说的TABLE的PK值也就是说的主键的意思吧?自动编号?我基本上每个字段都有的,关键的几个资料库中我都是在新增前做查询的,有重名的不让填入的。资料重复这个问题我不是太担心(因为有自动编号,总归不会有严重问题的?) 2。我担心的是减数字的问题,比如我做的是销售一块,有进销存的,销的时候如果发生两个人同时收了数量为2的相同物品,那么最终库存会减4吗?依kevinguo大大所说就是最终库存减的为2?Stallion大大您说的SQL数据库锁定,也就是能处理该问题了?
1.PK = Primary Key. 2.如果你很擔心資料庫內定的鎖定功能不夠完善,那麼就使用「交易功能」,這個功能保證交易的過成如果不成功,就會將原值還原。請查一下BeginTrans,CommitTrans,Rollback.這三個SQL SERVER交易方法。 ---------------------------------------------- We will either find a way, or make one. -Hannibal -。
kevinguo
初階會員


發表:1
回覆:31
積分:31
註冊:2002-11-20

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-08-16 20:59:39 IP:59.113.xxx.xxx 未訂閱
剛剛試了一下,Stallion兄說的對,不需要擔心這個,我想太多了  只要避免寫出直接指定庫存數量的程式碼,就不用擔心那些問題,感謝
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-08-17 07:19:03 IP:222.184.xxx.xxx 未訂閱
感谢两位前辈的指点,关于这个较大的话题,我有了一些深入的认识了,下面在具体操作时再问比较细的,具体的问题,此问题就此结案,再一次感谢!
------
我的编程起步于ktop,我将永远支持ktop
系統時間:2024-06-24 20:35:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!