第一篇:有關(guān)VS2010數(shù)據(jù)庫(kù)項(xiàng)目開發(fā)的總結(jié)
有關(guān)學(xué)習(xí)VS2010數(shù)據(jù)庫(kù)項(xiàng)目開發(fā)的總結(jié)
其實(shí)我們這個(gè)學(xué)期所學(xué)的主要是一個(gè)從兩層架構(gòu)開發(fā)到簡(jiǎn)單的三層架構(gòu)開發(fā)的過程,前面老師所說的都是為了后面的三層架構(gòu)做準(zhǔn)備,可以說兩層開發(fā)是三層架構(gòu)的基礎(chǔ)吧。
一個(gè)完整的項(xiàng)目開發(fā)的流程:(SQL+VS)
1.數(shù)據(jù)庫(kù)設(shè)計(jì)(SQL server2008)(1)數(shù)據(jù)庫(kù)分析(2)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)(3)數(shù)據(jù)庫(kù)和數(shù)據(jù)表的創(chuàng)建(4)根據(jù)系統(tǒng)需要?jiǎng)?chuàng)建存儲(chǔ)過程 2.系統(tǒng)設(shè)計(jì)(VS2010)(1)界面設(shè)計(jì)(窗體+控件)
(2)創(chuàng)建相關(guān)類文件(編寫相關(guān)功能代碼)(3)系統(tǒng)打包部署生成
前面基礎(chǔ)知識(shí)的總結(jié):
1.用 ADO.NET 連接數(shù)據(jù)庫(kù)
使用 Connection連接數(shù)據(jù)庫(kù)
1.2 使用 Command 連接數(shù)據(jù)庫(kù)
2.用 ADO.NET 查詢和操作數(shù)據(jù)庫(kù)
2.1 使用 DataReader 對(duì)象檢索數(shù)據(jù)
2.2 使用 Command 對(duì)象操作數(shù)據(jù)
3.DataSet 數(shù)據(jù)集的用法
4.DataGridView的用法
5.帶參數(shù)的存儲(chǔ)過程調(diào)用
6.數(shù)據(jù)類型轉(zhuǎn)換
顯示轉(zhuǎn)換
隱式轉(zhuǎn)換
用戶自定義轉(zhuǎn)換
(1)隱式轉(zhuǎn)換:一般是低類型向高類型轉(zhuǎn)化,能夠保證值不發(fā)生變化。隱式數(shù)值轉(zhuǎn)換: 如數(shù)值型之間從低數(shù)值范圍向高范圍值轉(zhuǎn)換
隱式枚舉轉(zhuǎn)換:隱式枚舉轉(zhuǎn)換允許將十進(jìn)制整數(shù) 0 轉(zhuǎn)換為任何枚舉類型。
隱式引用轉(zhuǎn)換
派生類向基類轉(zhuǎn)換
隱式引用轉(zhuǎn)換是指一類引用類型之間的轉(zhuǎn)換,這種轉(zhuǎn)換總是可以成功,因此不需要在運(yùn)行時(shí)進(jìn)行任何檢查。
裝箱轉(zhuǎn)換
裝箱轉(zhuǎn)換允許將值類型隱式轉(zhuǎn)換為引用類型。(2)顯示轉(zhuǎn)換:也稱強(qiáng)制類型轉(zhuǎn)換。不能保證數(shù)據(jù)的正確性。(type)(表達(dá)式)
用System.Convert類:值類型。將一個(gè)基本數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)基本數(shù)據(jù)類型。使用Parse方法
大部份預(yù)定義值類型都有這個(gè)靜態(tài)方法,用來(lái)將相應(yīng)的文本轉(zhuǎn)化為相應(yīng)的值類型。
Convert.ToInt32()與int.Parse()的區(qū)別
(1)這兩個(gè)方法的最大不同是它們對(duì)null值的處理方法:
Convert.ToInt32(null)會(huì)返回0而不會(huì)產(chǎn)生任何異常,但int.Parse(null)則會(huì)產(chǎn)生異常。沒搞清楚Convert.ToInt32和int.Parse()的細(xì)細(xì)微區(qū)別時(shí)千萬(wàn)別亂用,否則可能會(huì)產(chǎn)生無(wú)法預(yù)料的結(jié)果,舉例來(lái)說:假如從url中取一個(gè)參數(shù)page的值,我們知道這個(gè)值是一個(gè)int,所以即可以用Convert.ToInt32(Request.QueryString[“page”]),也可以用,int.Parse(Request.QueryString[“page”]),但是如果page這個(gè)參數(shù)在url中不存在,那么前者將返回0,0可能是一個(gè)有效的值,所以你不知道url中原來(lái)根本就沒有這個(gè)參數(shù)而繼續(xù)進(jìn)行下一下的處理,這就可能產(chǎn)生意想不到的效果,而用后一種辦法的話沒有page這個(gè)參數(shù)會(huì)拋出異常,我們可以捕獲異常然后再做相應(yīng)的處理,比如提示用戶缺少參數(shù),而不是把參數(shù)值當(dāng)做0來(lái)處理。(2)還有一點(diǎn)區(qū)別就是
a.Convert.ToInt32(double value)如果 value 為兩個(gè)整數(shù)中間的數(shù)字,則返回二者中的偶數(shù);即 3.5轉(zhuǎn)換為4,4.5 轉(zhuǎn)換為 4,而 5.5 轉(zhuǎn)換為 6。不過4.6可以轉(zhuǎn)換為5,4.4轉(zhuǎn)換為4 b.int.Parse(“4.5”)
直接報(bào)錯(cuò):“輸入字符串的格式不正確”.c.int(4.6)= 4 Int轉(zhuǎn)化其他數(shù)值類型為Int時(shí)沒有四舍五入,強(qiáng)制轉(zhuǎn)換
其它轉(zhuǎn)換用運(yùn)算符 as
as 運(yùn)算符用于執(zhí)行引用類型的顯式類型轉(zhuǎn)換。如果要轉(zhuǎn)換的類型與指定類型兼容,轉(zhuǎn)換就會(huì)成功;如果類型不兼容,則返回null。
表達(dá)式as 類型
as 運(yùn)算符類似于類型轉(zhuǎn)換,所不同的是,當(dāng)轉(zhuǎn)換失敗時(shí),as 運(yùn)算符將返回null,而不是引發(fā)異常。示例: object o1=”SomeString”;
object o2=5;string s1=o1 as string;//類型兼容 s1=”SomeString”
string s2=o2 as string;//s2=null is
is 運(yùn)算符用于檢查對(duì)象的類型是否與給定類型兼容(對(duì)象是該類型,或是派生于該類型)。
表達(dá)式 is 類型
i 示例: int i=10;if(i is object)//true {} sizeof
sizeof 運(yùn)算符用于獲得值類型的大小(以字節(jié)為單位)。
sizeof(type)
sizeof 運(yùn)算符僅適用于值類型,而不適用于引用類型。sizeof 運(yùn)算符僅可用于 unsafe 模式。示例:
unsafe { Console.WriteLine(“{0}”,sizeof(int));
}
Convert.ToInt32()與int.Parse()的區(qū)別
(1)這兩個(gè)方法的最大不同是它們對(duì)null值的處理方法:
Convert.ToInt32(null)會(huì)返回0而不會(huì)產(chǎn)生任何異常,但int.Parse(null)則會(huì)產(chǎn)生異常。沒搞清楚Convert.ToInt32和int.Parse()的細(xì)細(xì)微區(qū)別時(shí)千萬(wàn)別亂用,否則可能會(huì)產(chǎn)生無(wú)法預(yù)料的結(jié)果,舉例來(lái)說:假如從url中取一個(gè)參數(shù)page的值,我們知道這個(gè)值是一個(gè)int,所以即可以用Convert.ToInt32(Request.QueryString[“page”]),也可以用,int.Parse(Request.QueryString[“page”]),但是如果page這個(gè)參數(shù)在url中不存在,那么前者將返回0,0可能是一個(gè)有效的值,所以你不知道url中原來(lái)根本就沒有這個(gè)參數(shù)而繼續(xù)進(jìn)行下一下的處理,這就可能產(chǎn)生意想不到的效果,而用后一種辦法的話沒有page這個(gè)參數(shù)會(huì)拋出異常,我們可以捕獲異常然后再做相應(yīng)的處理,比如提示用戶缺少參數(shù),而不是把參數(shù)值當(dāng)做0來(lái)處理。(2)還有一點(diǎn)區(qū)別就是
a.Convert.ToInt32(double value)如果 value 為兩個(gè)整數(shù)中間的數(shù)字,則返回二者中的偶數(shù);即 3.5轉(zhuǎn)換為4,4.5 轉(zhuǎn)換為 4,而 5.5 轉(zhuǎn)換為 6。不過4.6可以轉(zhuǎn)換為5,4.4轉(zhuǎn)換為4 b.int.Parse(“4.5”)
直接報(bào)錯(cuò):“輸入字符串的格式不正確”.c.int(4.6)= 4 Int轉(zhuǎn)化其他數(shù)值類型為Int時(shí)沒有四舍五入,強(qiáng)制轉(zhuǎn)換
int.Parse是轉(zhuǎn)換String為int Convert.ToInt32是轉(zhuǎn)換繼承自O(shè)bject的對(duì)象為int的.你得到一個(gè)object對(duì)象,你想把它轉(zhuǎn)換為int,用int.Parse就不可以,要用Convert.ToInt32.個(gè)人總結(jié):(1)Convert.ToInt32的參數(shù)比較多,Int.Parse只能轉(zhuǎn)換string類型的.(2)Parse就是把String轉(zhuǎn)換成int,char,double....等,也就是*.Parse(string)括號(hào)中的一定要是string.(3)Convert可以提供多種類型的轉(zhuǎn)換,也就是Convert.*()括號(hào)中可以為很多種類型(包括string).(4)至于效率上的區(qū)別可以看看這遍文章:《細(xì)說Convert和Parse到底那個(gè)效率高》 http://
有關(guān)三層架構(gòu)
關(guān)于
三層架構(gòu)(3-tier application)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UIL)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)、數(shù)據(jù)存儲(chǔ)層(DBL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。
1、表現(xiàn)層(UIL):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候他的所見所得。
2、業(yè)務(wù)邏輯層(BLL):針對(duì)具體問題的操作,也可以說是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。簡(jiǎn)單地說,處理事務(wù)的過程就叫業(yè)務(wù)邏輯
3、數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增、刪、改、查。
概述
在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或成為領(lǐng)域?qū)樱?、表示層?/p>
三層結(jié)構(gòu)原理:
3個(gè)層次中,系統(tǒng)主要功能和業(yè)務(wù)邏輯都在業(yè)務(wù)邏輯層進(jìn)行處理。
所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫(kù)之間加入了一個(gè)“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡(jiǎn)單地放置三臺(tái)機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。
三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫(kù)進(jìn)行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫(kù)進(jìn)行交互。
表示層
位于最外層(最上層),離用戶最近。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。
業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層(Business Logic Layer)無(wú)疑是系統(tǒng)架構(gòu)中體現(xiàn)核心價(jià)值的部分。它的關(guān)注點(diǎn)主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實(shí)現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計(jì),也即是說它是與系統(tǒng)所應(yīng)對(duì)的領(lǐng)域(Domain)邏輯有關(guān),很多時(shí)候,也將業(yè)務(wù)邏輯層稱為領(lǐng)域?qū)印@鏜artin Fowler在《Patterns of Enterprise Application Architecture》一書中,將整個(gè)架構(gòu)分為三個(gè)主要的層:表示層、領(lǐng)域?qū)雍蛿?shù)據(jù)源層。作為領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的先驅(qū)Eric Evans,對(duì)業(yè)務(wù)邏輯層作了更細(xì)致地劃分,細(xì)分為應(yīng)用層與領(lǐng)域?qū)?,通過分層進(jìn)一步將領(lǐng)域邏輯與領(lǐng)域邏輯的解決方案分離。
業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對(duì)于上層而言是“無(wú)知”的,改變上層的設(shè)計(jì)對(duì)于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計(jì)時(shí),遵循了面向接口設(shè)計(jì)的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個(gè)支持可抽取、可替換的“抽屜”式架構(gòu)。正因?yàn)槿绱?,業(yè)務(wù)邏輯層的設(shè)計(jì)對(duì)于一個(gè)支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因?yàn)樗缪萘藘蓚€(gè)不同的角色。對(duì)于數(shù)據(jù)訪問層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實(shí)現(xiàn)依賴關(guān)系的解耦,則是除了實(shí)現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計(jì)師的任務(wù)。
數(shù)據(jù)層
數(shù)據(jù)訪問層:有時(shí)候也稱為是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問,可以訪問數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、文本文檔或是XML文檔。
簡(jiǎn)單的說法就是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會(huì)包括對(duì)象和數(shù)據(jù)表之間的mapping,以及對(duì)象實(shí)體的持久化。規(guī)則
三層結(jié)構(gòu)的程序不是說把項(xiàng)目分成DAL, BLL, WebUI三個(gè)模塊就叫三層了, 下面幾個(gè)問題在你的項(xiàng)目里面:
1.UILayer里面只有少量(或者沒有)的SQL語(yǔ)句或者存儲(chǔ)過程調(diào)用, 并且這些語(yǔ)句保證不會(huì)修改數(shù)據(jù)?
2.如果把UILayer拿掉, 你的項(xiàng)目還能在Interface/API的層次上提供所有功能嗎?
3.你的DAL可以移植到其他類似環(huán)境的項(xiàng)目嗎?
4.三個(gè)模塊, 可以分別運(yùn)行于不同的服務(wù)器嗎?
如果不是所有答案都為YES, 那么你的項(xiàng)目還不能算是嚴(yán)格意義上的三層程序.三層程序有一些需要約定遵守的規(guī)則:
1.最關(guān)鍵的, UI層只能作為一個(gè)外殼, 不能包含任何BizLogic的處理過程
2.設(shè)計(jì)時(shí)應(yīng)該從BLL出發(fā), 而不是UI出發(fā).BLL層在API上應(yīng)該實(shí)現(xiàn)所有BizLogic, 以面向?qū)ο蟮姆绞?/p>
3.不管數(shù)據(jù)層是一個(gè)簡(jiǎn)單的SqlHelper也好, 還是帶有Mapping過的Classes也好, 應(yīng)該在一定的抽象程度上做到系統(tǒng)無(wú)關(guān)
4.不管使用COM+(Enterprise Service), 還是Remoting, 還是WebService之類的遠(yuǎn)程對(duì)象技術(shù), 不管部署的時(shí)候是不是真的分別部署到不同的服務(wù)器上, 最起碼在設(shè)計(jì)的時(shí)候要做這樣的考慮, 更遠(yuǎn)的, 還得考慮多臺(tái)服務(wù)器通過負(fù)載均衡作集群
所以考慮一個(gè)項(xiàng)目是不是應(yīng)該應(yīng)用三層/多層設(shè)計(jì)時(shí), 先得考慮下是不是真的需要? 實(shí)際上大部分程序就開個(gè)WebApplication就足夠了, 完全沒必要作的這么復(fù)雜.而多層結(jié)構(gòu), 是用于解決真正復(fù)雜的項(xiàng)目需求的。
圖(下面圖源自Bruce Zhang博客)
一、三個(gè)層之間的關(guān)系
1. 代碼訪問流程(類之間的調(diào)用)類之
類之間的調(diào)用是單向的。2. 數(shù)據(jù)訪問流和(雙向)
3. 解決方案中,各項(xiàng)目引用(1)數(shù)據(jù)層被邏輯層引用(2)邏輯層被他對(duì)應(yīng)的界面層引用(3)主界面層引用所有子界面層
第二篇:ORACLE數(shù)據(jù)庫(kù)開發(fā)經(jīng)驗(yàn)總結(jié)
ORACLE數(shù)據(jù)庫(kù)開發(fā)經(jīng)驗(yàn)總結(jié)
----ORACLE數(shù)據(jù)庫(kù)作為大型數(shù)據(jù)庫(kù)管理系統(tǒng),近年來(lái)一直占有世界上高端數(shù)據(jù)庫(kù)的最大 份額,其強(qiáng)大而完善的數(shù)據(jù)庫(kù)管理功能,以及ORACLE公司推陳出新的不斷努力,一直成 為IT業(yè)界矚目的焦點(diǎn)。嶺澳核電站的數(shù)據(jù)庫(kù)平臺(tái)采用了ORACLE7.3作為后端平臺(tái),前端選 擇了ORACLE公司的DEVELOPER 2000 及DESIGNER 2000作為開發(fā)工具,采用了目前流行的
CLIENT/SERVER模式。本人在ORACLE系統(tǒng)的開發(fā)中,就ORACLE的整套開發(fā)工具提出一些自
己的體會(huì),供同行參考。
----一.ORACLE SQL PLUS 使用技巧:----①查找重復(fù)記錄:
SELECT DRAWING,DSNO FROM EM5_PIPE_PREFAB WHERE ROWID!=(SELECT MAX(ROWID)FROM EM5 _PIPE_PREFAB D WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);----執(zhí)行上述SQL語(yǔ)句后就可以顯示所有DRAWING和DSNO相同且重復(fù)的記錄。----刪除重復(fù)記錄:
DELETE FROM EM5_PIPE_PREFAB WHERE ROWID!=(SELECT MAX(ROWID)FROM EM5 _PIPE_PREFAB D WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);----執(zhí)行上述SQL語(yǔ)句后就可以刪除所有DRAWING和DSNO相同且重復(fù)的記錄。----② 快速編譯所有視圖
----當(dāng)在把數(shù)據(jù)庫(kù)倒入到新的服務(wù)器上后(數(shù)據(jù)庫(kù)重建),需要將視圖重新編譯一遍,因 為該表空間視圖到其它表空間的表的連接會(huì)出現(xiàn)問題,可以利用PL/SQL的語(yǔ)言特性,快 速編譯。
SQL >SPOOL ON.SQL SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
COMPILE;’ FROM TAB;SQL >SPOOL OFF 然后執(zhí)行ON.SQL即可。
SQL >@ON.SQL 當(dāng)然,授權(quán)和創(chuàng)建同義詞也可以快速進(jìn)行,如:
SQL >SELECT ‘GRANT SELECT ON ’ ||TNAME||’ TO USERNAME;’ FROM TAB;SQL >SELECT ‘CREATE SYNONYM
‘||TNAME||’ FOR USERNAME.’||TNAME||’;’ FROM TAB;③ 用外聯(lián)接提高表連接的查詢速度
在作表連接(常用于視圖)時(shí),常使用以下方法來(lái)查詢數(shù)據(jù): SELECT PAY_NO, PROJECT_NAME FROM A WHERE A.PAY_NO NOT IN(SELECT PAY_ NO FROM B WHERE VALUE >=120000);----但是若表A有10000條記錄,表B有10000條記錄,則要用掉30分鐘才能查完,主要因 為NOT IN要進(jìn)行一條一條的比較,共需要10000*10000次比較后,才能得到結(jié)果。該用外
聯(lián)接后,可以縮短到1分左右的時(shí)間: SELECT PAY_NO,PROJECT_NAME FROM A,B WHERE A.PAY_NO=B.PAY_NO(+)AND B.PAY_NO IS NULL AND B.VALUE >=12000;----④ 怎樣讀寫文本型操作系統(tǒng)文件
----在PL/SQL 3.3以上的版本中,UTL_FILE包允許用戶通過PL/SQL讀寫操作系統(tǒng)文件。如下: DECALRE FILE_HANDLE UTL_FILE.FILE_TYPE;BEGIN
FILE_HANDLE:=UTL_FILE.FOPEN(‘C:’,’TEST.TXT’,’A’);
UTL_FILE.PUT_LINE(FILE_HANDLE,’ HELLO,IT’S A TEST TXT FILE’);UTL_FILE.FCLOSE(FILE_HANDLE);END;----相關(guān)UTL_FILE數(shù)據(jù)庫(kù)包詳細(xì)信息可以參見相關(guān)資料。----⑤ 怎樣在數(shù)據(jù)庫(kù)觸發(fā)器中使用列的新值與舊值
----在數(shù)據(jù)庫(kù)觸發(fā)器中幾乎總是要使用觸發(fā)器基表的列值,如果某條語(yǔ)句需要某列修改 前的值,使用:OLD就可以了,使用某列修改后的新值,用:NEW就可以了。如:OLD.DEPT_ NO,:NEW.DEPT_NO。
----二.ORACLE DEVELOPER 2000使用技巧:
----① 改變FORM(FMX模塊)運(yùn)行時(shí)的Runform4.5的題頭:
----DEVELOPER2000中FMX默認(rèn)題頭為:Developer/2000 Forms Runtime for Windows
/ NT 你可以改為自己定義的標(biāo)題,----1.在Form級(jí)觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE----2.在此觸發(fā)器中寫如下代碼:
set_window_property(FORMS_MDI_WINDOW,TITLE,'POINT SYSTEM 歡迎使用');----② 如何隱藏菜單中的window選項(xiàng):
----在創(chuàng)建自己的菜單時(shí),最后選項(xiàng)總有window項(xiàng),下面介紹如何去掉它,----1.創(chuàng)建一個(gè)Menu
----2.在Menu中建立一個(gè)Item,命名為WINDOW。----3.設(shè)置該Item屬性如下:----
Menu Item Type:Magic Command Type:Null Magic Item:Window Lable:為空
----③ 怎樣創(chuàng)建動(dòng)態(tài)下拉列表List
----Developer 2000 中的列表是通過設(shè)置相關(guān)屬性而完成數(shù)據(jù)項(xiàng)的列表設(shè)置的,但那
只是靜態(tài)的,有時(shí)你想讓某項(xiàng)成為動(dòng)態(tài)的列表,隨輸入數(shù)據(jù)的改變而改變,就需要?jiǎng)邮?去編個(gè)小程序。下面詳細(xì)介紹怎樣去做:----有塊EBOP_CABLE_ACCOUNT,下有SPECIFICATION數(shù)據(jù)項(xiàng),當(dāng)一進(jìn)入該模塊時(shí),就將
SPECIFICATION項(xiàng)在數(shù)據(jù)庫(kù)中存儲(chǔ)的值動(dòng)態(tài)顯示出來(lái),先在Form4.5中建立一個(gè)PRCEDURE,命名為DYN_LIST: PROCEDURE DYN_LIST IS
CURSOR C1 IS
SELECT DISTINCT(SPECIFICATION)FROM EBOP_CABLE_ACCOUNT;CNT NUMBER;i NUMBER;TNAME EBOP_CABLE_ ACCOUNT.SPECIFICATION%TYPE;BEGIN
CLEAR_LIST('EBOP_CABLE_ ACCOUNT.SPECIFICATION');SELECT COUNT(DISTINCT
(SPECIFICATION))INTO CNT FROM EBOP _CABLE_ACCOUNT;open C1;FOR i IN 1..CNT LOOP
FETCH C1 INTO TNAME;EXIT WHEN C1%NOTFOUND OR C1%NOTFOUND IS NULL;ADD_LIST_ELEMENT('EBOP_CABLE_ACCOUNT.SPECIFICATION',i,TNAME,TNAME);END LOOP;DELETE_LIST_ELEMENT('EBOP_CABLE_ACCOUNT.SPECIFICATION',CNT+1);CLOSE C1;END;然后在FORM的WHEN-NEW
-FORM-INSTANCE觸發(fā)子中加入一行: DYN_LIST;----這樣一進(jìn)入該FMX,就會(huì)動(dòng)態(tài)刷新該列表。除此之外,SPECIFICATION數(shù)據(jù)項(xiàng)改為列 表項(xiàng)。
----④ 當(dāng)顯示多條記錄且數(shù)據(jù)項(xiàng)特別多時(shí),如何組織錄入及顯示界面:----如上圖所示,PRN代碼及設(shè)備代碼在畫布1(CONTENT型)上,其它數(shù)據(jù)項(xiàng)在畫布2(ST ACK型)上,所有數(shù)據(jù)項(xiàng)為一個(gè)表的列或一個(gè)塊的數(shù)據(jù)項(xiàng)。在拉動(dòng)水平滾動(dòng)條時(shí)或用TAB或 敲回車鍵時(shí),將看到全部數(shù)據(jù)項(xiàng)。這種排布方法適用于數(shù)據(jù)項(xiàng)特別多又想顯示多條記錄 時(shí)用。主要制作順序?yàn)椋合冉蓚€(gè)畫布,畫布1(CONTENT型),畫布2(STACK型),然后
建立塊,選畫布時(shí)用畫布1,這樣所有項(xiàng)都顯示在畫布1上,然后選中除PRN代碼及設(shè)備代 碼之外的所有數(shù)據(jù)項(xiàng),選TOOLS菜單下的PROPERTIES選項(xiàng),將這些數(shù)據(jù)項(xiàng)的CANVAS屬性選
為畫布2(STACK型),然后調(diào)整整體位置就可以了。----⑤ 如何在FORM的受限觸發(fā)子中提交保存數(shù)據(jù)
----在FORM中很多觸發(fā)子是不能用COMMIT WORK語(yǔ)句的,當(dāng)你在該觸發(fā)子中使用了UPDA
TE,DELETE等操作并想立即存盤時(shí),就需要COMMIT WORK語(yǔ)句了。首先在服務(wù)器端建立D B_SQL_COMMIT這個(gè)過程(采用ORACLE7.3數(shù)據(jù)庫(kù)),PROCEDURE DB_SQL_COMMIT IS source_cursor integer;ignore integer;V7 NUMBER :=2;BEGIN
source_cursor:=dbms_sql.open_cursor;dbms_sql.parse(source_cursor,'COMMIT WORK',V7);ignore:=dbms_sql.execute(source_cursor);DBMS_SQL.CLOSE_CURSOR(source_cursor);END;----然后在FORM中該觸發(fā)子中調(diào)用過程DB_SQL_COMMIT;就可以了,當(dāng)然你可以根據(jù)自己
需要將該過程加入?yún)?shù),這樣通過參數(shù)可以得到執(zhí)行DML語(yǔ)句的權(quán)限。----⑥ 如何在FORM中實(shí)現(xiàn)某數(shù)據(jù)項(xiàng)自動(dòng)按記錄序號(hào)加一操作
----設(shè)塊名為VO,要操作的數(shù)據(jù)項(xiàng)為VO_ID,在該塊中建立塊級(jí)觸發(fā)子WHEN-CREATE-REC
ORD,加入如下代碼:
:VO_ID:=:System.Trigger_Record;----這樣每當(dāng)生成新記錄時(shí)VO_ID就會(huì)自動(dòng)加一了。
----⑦ 如何在一個(gè)FORM中調(diào)用另一個(gè)FORM,或在一個(gè)塊中調(diào)用另一個(gè)塊時(shí)顯示特定的 記錄有時(shí)用戶會(huì)要求在調(diào)用另一個(gè)FORM時(shí),只顯示相關(guān)的記錄,舉例如下,在一個(gè)FORM 的塊中有一個(gè)按鈕,在按鈕觸發(fā)子中加入如下代碼: DECLARE PM PARAMLIST;BEGIN
PM:=GET_PARAMETER_LIST('PM');IF NOT ID_NULL(PM)THEN
DESTROY_PARAMETER_LIST('PM');END IF;PM:=CREATE_PARAMETER_LIST('PM');......................ADD_PARAMETER(PM,'THE_WHERE', TEXT_PARAMETER,'EM_NAME=''EM4'' AND EM_PROJECT_NAME=''支架預(yù)制''');OPEN_FORM('PAYMENT',ACTIVATE,SESSION,PM);END;
----其中EM_NAME,EM_PROJECT_NAME為本FORM某塊的數(shù)據(jù)項(xiàng),PAYMENT為要調(diào)用的FORM 模塊。這樣通過傳遞參數(shù)列表就可以得到想要的結(jié)果。在FORM PAYMENT.FMB中,建立一 參數(shù)THE_WHERE,CHAR型,長(zhǎng)1000,然后在PAYMENT.FMB中建立FORM級(jí)觸發(fā)子WHEN-NEW-F ORM-INSTANCE,在該觸發(fā)子中加入以下語(yǔ)句:
IF :PARAMETER.THE_WHERE IS NOT NULL THEN SET_BLOCK_PROPERTY('PAYMENT', DEFAULT_WHERE,:PARAMETER.THE_WHERE);END IF;----其中PAYMENT為要顯示的塊,這樣通過參數(shù)傳遞就得到想要的某些特定條件的數(shù)據(jù) 了。
----⑧ 在FORM中當(dāng)有主從塊時(shí),連續(xù)輸入記錄如何避免被不斷的提示保存:
----每輸入一條主記錄和若干條該主記錄的從記錄后,此時(shí)再導(dǎo)航到主塊輸下一條記錄,F(xiàn)ORM就會(huì)提示你是否要保存記錄,而你并不希望FORM提示,讓它自動(dòng)保存,此時(shí)你可 以到Program Units中找到過程PROCEDURE Clear_All_Master_Details,然后在這個(gè)過程 中找到語(yǔ)句
Clear_Block(ASK_COMMIT);----將其改為Clear_Block(DO_COMMIT);就可以了。----⑨ 在Report開始時(shí)選擇排序項(xiàng):
----在報(bào)表開始的Parameter Form中選擇報(bào)表按哪個(gè)數(shù)據(jù)項(xiàng)排序,----1.先在USER PARAMETER 中創(chuàng)建SORT參數(shù),為字符型,長(zhǎng)20。
----2.初始值選’責(zé)任方’,然后將這四個(gè)值輸入到DATA SELECTION中,形成列表。----3.然后處理QUERY中的SQL語(yǔ)句: select CHARGER,FCO_NO,EM_NAME,FCO _NO,DESCRIPTION, FCR_POINT from FCR_MAIN ORDER BY DECODE(:SORT,'責(zé)任方',CHARGER,'FCO號(hào)', FCO_NO,'FCR號(hào)',FCR_NO,'FCR號(hào)',EM_NAME)----⑩ 在Developer 2000中如何讀寫操作系統(tǒng)文件
----在用Developer 2000的開發(fā)工具開發(fā)應(yīng)用程序時(shí),經(jīng)常碰到需要讀寫外部文件的問
題,可以用ORACLE 帶的包TEXT_IO來(lái)完成這項(xiàng)需求。例如: DECLARE
IN_FILE TEXT_IO.FILE_TYPE;OUT_FILE TEXT_IO.FILE_TYPE;LINE_BUFER VARCHAR2(80);/*若不用IN_FILE,可以將各字段聯(lián)接在一起賦值給此變量*/
BEGIN
IN_FILE:=TEXT_IO.FOPEN(‘C:TEMPTEST1.TXT’,’r’);OUT_FILE:=TEXT_IO.FOPEN(‘C:TEMPTEST2.TXT’,’w+’);
LOOP
TEXT_IO.GET_LINE(IN_FILE,LINE_BUFER);TEXT_IO.PUT(LINE_BUFER);TEXT_IO.NEW_LINE;TEXT_IO.PUT_LINE(OUT_FILE,LINE_BUFER);END LOOP;EXCEPTION
WHEN no_data_found THEN
TEXT_IO.PUT_LINE(‘CLOSING THE FILE ,PLEASE WAITING....’);TEXT_IO.FCLOSE(IN_FILE);TEXT_IO.FCLOSE(OUT_FILE);END;----三.數(shù)據(jù)庫(kù)管理
----① 在刪除一個(gè)表中的全部數(shù)據(jù)時(shí),須使用TRUNCATE TABLE 表名;因?yàn)橛肈ROP TAB
LE,DELETE * FROM 表名時(shí),TABLESPACE表空間該表的占用空間并未釋放,反復(fù)幾次DR OP,DELETE操作后,該TABLESPACE上百兆的空間就被耗光了。----② 數(shù)據(jù)庫(kù)文件的移動(dòng)方法
----當(dāng)想將數(shù)據(jù)庫(kù)文件移動(dòng)到另外一個(gè)目錄下時(shí),可以用ALTER DATABASE命令來(lái)移動(dòng)(比ALTER TABLESPACE適用性強(qiáng)):
----1.使用SERVER MANAGER關(guān)閉實(shí)例.SVRMGR > connect internal;SVRMGR > shutdown;SVRMGR >exit;----2.使用操作系統(tǒng)命令來(lái)移動(dòng)數(shù)據(jù)庫(kù)文件位置(假設(shè)這里操作系統(tǒng)為SOLARIS 2.6).在UNIX中用 mv命令可以把文件移動(dòng)到新的位置,#mv /ora13/orarun/document.dbf /ora12/orarun----3.裝載數(shù)據(jù)庫(kù)并用alter database命令來(lái)改變數(shù)據(jù)庫(kù)中的文件名.SVRMGR > connect internal;SVRMGR > startup mount RUN73;SVRMGR > alter database rename file
> ‘/ ora13/orarun/document.dbf’
> ‘/ ora12/orarun/document.dbf’;----4.啟動(dòng)實(shí)例.SVRMGR > alter database open;----ORACLE數(shù)據(jù)庫(kù)開發(fā)經(jīng)驗(yàn)總結(jié)
第三篇:8年項(xiàng)目開發(fā)總結(jié)
八年了,我就這么渾渾噩噩的過來(lái)了。。
8年前的平安夜,我踏上了南下的列車,和許多人不一樣的是,我并沒有懷太多的夢(mèng)想。。4年中專生活,只能用一個(gè)字來(lái)形容,那就是“混”。。學(xué)校就在火車站附近,每次回家都要經(jīng)過那,我總是很驚訝,這是我呆過4年的地方嗎?!怎么我腦海里就沒有殘留著一點(diǎn)它的美好回憶呢?!。。一直都認(rèn)為編程是件很高深的事情,從沒想過自己這輩子能當(dāng)上程序員,后來(lái)居然誤打誤撞的干上了,真的覺得挺幸運(yùn)的,也許是老天對(duì)我太眷戀了吧,呵呵。。剛出來(lái)那會(huì)對(duì)自己期望不高,因此也沒什么要求,任憑學(xué)校把我們送進(jìn)了深圳一家挺大的廠做員工,那時(shí)我們有幾個(gè)好姐妹都在一起,平時(shí)一塊上班,周末就一塊跑去超市抱一堆零食回來(lái)。。到了晚上,我那最最親愛的老山羊總是會(huì)輕輕的哼著催眠曲哄我入睡:“睡吧,睡吧,我親愛的山羊。?!钡?次有了自己的工作,第1次有幾個(gè)小錢,第1次感受異省他鄉(xiāng)的花花世界。。一切都覺得那么新奇,雖然那時(shí)工資才幾百塊,但每天都很開心。。真的很懷念那段無(wú)憂無(wú)慮的生活,很單純的快樂,如今的工資雖然已經(jīng)在后面加了個(gè)0了,但這種心境卻再也找不回來(lái)了。。
在這里呆的時(shí)間不長(zhǎng),有件小事情倒是記憶蠻深刻的:我們班長(zhǎng)是做了很多年的老油條,對(duì)我們同學(xué)幾個(gè)倒是挺照顧的,平常老愛跟我們嘮嗑嘮嗑,旁邊拉的班長(zhǎng)是剛畢業(yè)的大學(xué)生,看上去挺老實(shí)的,有1次他們拉的一臺(tái)機(jī)器的零件壞了,找主管換,主管把他狠狠訓(xùn)了一頓:“好好的零件到了你手里就壞了,下次再壞寫份檢討上來(lái)。?!保侨艘粋€(gè)勁的搓著衣角,唯唯喏喏的“是是。?!保杏X怪可憐的。后來(lái)我們拉的零件也壞了,班長(zhǎng)找到主管,一上去就理直氣壯一大堆牢騷:“什么破零件???用了這么多久了,早該壞了,到現(xiàn)在才壞。?!敝鞴芏挷徽f就給換了,還一臉的笑。。哎,這世道,都盡欺負(fù)老實(shí)人去了。。
雖覺著自己那時(shí)沒什么夢(mèng)想,但終究還是厭倦了那種枯燥的傻瓜式勞動(dòng)了,或許自己的骨子里本身就有著一股不服輸?shù)木髣虐??!于是不理?huì)班長(zhǎng)的一再勸說絕然的離開了那里。學(xué)了4年的計(jì)算機(jī)應(yīng)用,自信找份文職什么的還是可以的吧?!于是輾轉(zhuǎn)于深圳、東莞、中間還去過清遠(yuǎn),差點(diǎn)被同學(xué)騙去搞傳銷了,還好知道打個(gè)電話問老媽,表哥在旁邊聽到了,堅(jiān)決不讓我去(表哥在東莞開了個(gè)小廠,老媽在幫他帶小孩),幸好沒去,不然我的人生又將添上灰暗的一筆了。。廣東這鬼天氣,大熱天的暴曬,搞得個(gè)人跟個(gè)黑鬼似的,又沒經(jīng)驗(yàn),找來(lái)找去也沒什么滿意的,累了,泄氣了,想媽媽了,于是就回老媽那里了。。成天在表哥那白吃白喝加白住,時(shí)間長(zhǎng)了,媽媽急了,她就經(jīng)常會(huì)跑出去看看附近有沒有什么好公司招人,說來(lái)還挺有趣的,老媽還真找了個(gè),就是這個(gè)耗費(fèi)了我7年青春的地方。。面試我的是個(gè)香港人,PE部的經(jīng)理,挺和藹可親的,不會(huì)說普通話,他給了我一支筆,我們就這樣“紙上談面試”的,感覺聊得挺愉快的,后來(lái)我就如愿已償?shù)倪M(jìn)來(lái)了。。
剛進(jìn)來(lái)時(shí),我的工作就是登記單啊什么的,挺閑得慌的那種。。那時(shí)公司有個(gè)電腦部專門開發(fā)公司ERP,貌似剛成立不久吧,零零散散的到處寫的是小系統(tǒng)。我用的系統(tǒng)是電腦部經(jīng)理用Access寫的,他跟我們經(jīng)理是好朋友,經(jīng)常過來(lái),有時(shí)間順帶也教教我,我沒事也就瞎學(xué)學(xué),雖然不懂VBA,但終歸還是有一點(diǎn)點(diǎn)編程基礎(chǔ)的,再說微軟的東西別的不說,幫助文件肯定夠好夠詳細(xì),邊學(xué)邊摸,后來(lái)干脆什么要求我都自己改了,再后來(lái)我們部門和別的部門的小系統(tǒng)我全包了,什么工資核算,鋅版管理,預(yù)算表,合同進(jìn)出口什么的。。直至現(xiàn)在,我們的ERP系統(tǒng)經(jīng)歷到第3代了,6個(gè)公司同時(shí)在用,遍布了各個(gè)部門,但仍有個(gè)別部門的小啰啰們還死抱著這些小系統(tǒng)不撒手,害我老得維護(hù),挺郁悶的說。。BTW:提到電腦部經(jīng)理,那肯定得說說,我的伯樂,是個(gè)挺有思想的香港人,特愛畫八卦圖(流程圖),口才極好,特會(huì)“忽悠”人,我總是被他的天花亂墜整得一愣一愣的,走路時(shí)還老愛一跳一跳的,像個(gè)老頑童,特有趣。。是他發(fā)現(xiàn)了我有程序員的潛質(zhì),他在別的部門也帶過其它徒弟,不過貌似只有我是成器的,嘿嘿。。得意的笑一下下。。真的很慚愧,我過來(lái)時(shí)沒多久他就走
了,只知道師哥師姐們都挺崇拜他的。。那時(shí)我對(duì)技術(shù)方面的認(rèn)知少得可憐,對(duì)他的了解幾乎是一張白紙,寫得沒點(diǎn)內(nèi)容。。不過,我永遠(yuǎn)都不可能忘記有這么一個(gè)人曾經(jīng)引領(lǐng)著我走上了程序員這條道路,真的很感激他!
就這樣,我在一個(gè)部門干著另一個(gè)部門的事,電腦部經(jīng)理早有意調(diào)我過去,但我們經(jīng)理卻不同意,我有些生氣,就提出要辭職,可是我卻怎么也說不過人家那一套套的謬論,為了厚待我,給我招了好些個(gè)小MM過來(lái),我正式上任管家婆一職。一會(huì)要我負(fù)責(zé)派單,控制做單的進(jìn)度,一會(huì)要我管鋅版,一會(huì)又要我整別的,還這報(bào)表那報(bào)表的。。那時(shí)我們部門是剛從別的部門分出來(lái)的,貌似還參雜了一些部門之間的爭(zhēng)斗,感覺干什么都挺頭痛。。也不知道我當(dāng)時(shí)是怎么應(yīng)付過來(lái)的?!現(xiàn)在回想起來(lái),簡(jiǎn)直就是在催殘我幼小的心靈嘛!。。給我加工資,開始只加了兩百,我嫌少,又再加兩百,我還是嫌不夠,覺著委屈居然還哭起了鼻子,經(jīng)理拿我沒法子,又給我申請(qǐng)600元的獎(jiǎng)金,我這才罷休。。呵,感覺那時(shí)的我特別任性、幼稚可愛。。
后來(lái)我們經(jīng)理因?yàn)橐恍┰螂x開了公司,我也就如愿以償?shù)恼{(diào)到了電腦部。剛過去時(shí)也是打打雜,寫寫Access。那時(shí)感覺特不適應(yīng),偌大一個(gè)辦公室,二十多號(hào)人,個(gè)個(gè)都不吱聲,埋頭苦敲代碼,在以前部門吹水吹多了,一下沒人吹了,感覺找不到知己,特郁悶。。但時(shí)間長(zhǎng)了,慢慢的也融入到了這個(gè)團(tuán)隊(duì)了,發(fā)現(xiàn)程序員其實(shí)蠻可愛的。。在學(xué)校時(shí),學(xué)的都是FOXPRO、PASCAL、C什么的,根本不知道ASP為何物?也不知道SQL是數(shù)據(jù)庫(kù)。。那時(shí)(2003年)正好招了一批新的開發(fā)人員,于是我就跟經(jīng)理說我也想學(xué),經(jīng)理同意了,但是如果我學(xué)不好,還是要回到原來(lái)位置的(我知道其實(shí)他是故意激將我的)。為了證明我是可以的,在培訓(xùn)的那一個(gè)月時(shí)間里,我很努力,后來(lái)考核的時(shí)候,10個(gè)人里頭我的成績(jī)排第2。就這樣我踏上了我的開發(fā)之旅。。
寫了1年的ASP,后來(lái)改用ASP.NET,考慮到服務(wù)器壓力方面的問題,V3的時(shí)候就改成C/S開發(fā)模式。不過還是特別懷念寫網(wǎng)頁(yè),可以隨性的把界面寫得很漂亮,呵。。5年多的程序員歷程,感觸還是挺多的,可是卻很難用語(yǔ)言描述出來(lái),總之,有快樂也有辛酸。。程序員真是個(gè)很磨煉人的工作,沒有人會(huì)因?yàn)槟闶桥ⅲ涂梢员葎e人少干一點(diǎn),相反,我的“苦差事”總是顯得比別人要多。。很慶幸我剛接觸的時(shí)候才20歲,總是很執(zhí)著的埋頭苦干,從不計(jì)較太多的得與失,要是到了現(xiàn)在這浮躁的年代,恐怕我是沒有那個(gè)毅力堅(jiān)持下去的。。剛開始的時(shí)候,天天練習(xí)八卦圖,畫了一段時(shí)間開始寫界面,記得我的成名作是寫工藝路線界面,要實(shí)現(xiàn)工序間的自由拖動(dòng),還要支持工序的分支合并,對(duì)于當(dāng)時(shí)我這樣的菜菜菜鳥來(lái)說的確是挺難的,總之完成它是花了一番苦功夫的,后來(lái)得到了大家的一致好評(píng),都夸我JavaScript寫得好,當(dāng)時(shí)心里賊高興,沒料到從此我的“苦日子”就跟隨著而來(lái)了。。老大無(wú)論什么事情不管多難,總是一句話:你做事我放心,給你多少天時(shí)間你肯定能做得很好的。。啞巴吃黃連,唯有悶著頭苦干,感覺壓力挺大的,總是擔(dān)心交不了差,晚上睡覺滿腦子都是代碼。。那時(shí)的我好象很在乎別人對(duì)我的評(píng)價(jià),誰(shuí)說我一點(diǎn)點(diǎn)不好了,我就會(huì)難受好幾天,哪像現(xiàn)在,說什么都滿不在乎的,時(shí)不時(shí)的還能把人氣得夠嗆的,整個(gè)一女流氓(呵,有些夸張,不過也有些類似這方面的氣質(zhì)了)。。BTW:提到老大,就順便說說,02-03年在SQL版混的應(yīng)該認(rèn)識(shí)他,在《應(yīng)用實(shí)例》當(dāng)過一段時(shí)間的版主,ID是hjhing,貌似大家都叫他線圈GG吧,是個(gè)挺有才氣的人,那時(shí)他負(fù)責(zé)帶我們開發(fā)項(xiàng)目,跟他的頭兩年還是學(xué)了不少東西。我上CSDN的引薦人就是他,可惜的是我來(lái)這里沒好好學(xué)習(xí),天天在這灌水了。。后來(lái)香港經(jīng)理走了,他坐上了經(jīng)理的位置,成天上海廣東飛來(lái)飛去,管我們就管得少了,也漸漸的脫離了技術(shù),后來(lái)迷上了攝影,相機(jī)就成了他老婆,每次美女作品一出來(lái),就叫我們到他Blog上踩踩。。再后來(lái)就。。沒了。。不說了。。說得不好,不定哪天他老人家心血來(lái)潮冒上來(lái)看到了,我可就罪過了。??傊?,挺感謝他這么多年來(lái)對(duì)我的信任與栽培,從不過問太
多的細(xì)枝末葉,給了我很多自由發(fā)揮的空間。。
第1次帶項(xiàng)目好象是在05年吧,由于是第1次所以比較難忘,回想起來(lái)還是有些辛酸滴。。當(dāng)時(shí)原料管理已經(jīng)很規(guī)范了,成品則很亂,一直都是做的手工帳,那時(shí)候銷售、產(chǎn)品、生產(chǎn)、倉(cāng)存、采購(gòu)等模塊都已經(jīng)步入正軌了,成品的管理勢(shì)在必行。于是安排我?guī)?個(gè)新來(lái)的負(fù)責(zé)開發(fā)成品系統(tǒng),我把每個(gè)人負(fù)責(zé)的界面都畫好,表結(jié)構(gòu)也設(shè)計(jì)好,拿出來(lái)安排他們開發(fā)時(shí),居然有人說:“你什么都弄好了,那還要我們干什么?!”我一聽,犯傻了,幸虧老大在旁邊,跟他們說設(shè)計(jì)的重要性怎么怎么的,才幫我解了圍。后來(lái)也發(fā)生過此類事情,開始因?yàn)橄敕ú煌持持团钠鹆俗雷?。。呵,正好都是張狂的年紀(jì),年少氣盛。。開發(fā)完后,接下來(lái)就是推行了,推行的前一天晚上,記得那天正好是我生日,本來(lái)是我請(qǐng)好朋友們吃飯的,后來(lái)變成了他們做好飯等我回來(lái)吃。。那晚我加班到將近11點(diǎn),把成品倉(cāng)盤點(diǎn)上來(lái)庫(kù)存資料導(dǎo)到系統(tǒng),資料亂得不行,想了很多辦法,還是有好多在系統(tǒng)中的找不到對(duì)應(yīng)的產(chǎn)品,到了第2天,很多送貨單因?yàn)闆]有庫(kù)存開不了,由于成品跟生產(chǎn)、銷售、倉(cāng)庫(kù)都有關(guān)聯(lián),涉及的部門很多,其它人都出去推系統(tǒng)了,我一個(gè)呆在辦公室處理問題,EMAIL滿天飛,電話打爆了,正當(dāng)我累得筋疲力盡的時(shí)候,某部門的老大跑進(jìn)來(lái)(女的),霹頭蓋臉的責(zé)罵我,唾沫橫飛。。我就傻傻的瞪著她,腦子里空白得找不著一句話來(lái)回她,也不記得她當(dāng)時(shí)說了什么,見我N久沒反應(yīng),她就自討沒趣走了。。感覺那段時(shí)間我成天緊張兮兮的就像一個(gè)丟了靈魂的人似的。。
一晃五六年過去了,也許是比較喜歡這里的氣氛吧,讓我一直沉迷在這里,幾乎有些頹廢了。。這里招的基本上都是清一色的畢業(yè)生,單純都寫在臉上,別人都說我們不象員工更象是學(xué)生。。干什么都是集體活動(dòng):吃飯時(shí)圍一堆,嘰嘰喳喳有說有笑。。上班一有閑情就全跑QQ群里胡吹亂砍一通,當(dāng)然啦,這群對(duì)老大是具有高度保密性滴。。中午休息時(shí)湊到一塊玩殺人游戲,互相指證殺手,爭(zhēng)得面紅耳赤,比較遺憾的是偶當(dāng)殺手的機(jī)率太小了,總覺得不過癮。。下了班經(jīng)常會(huì)一塊打打籃球,乒乓球什么的,偶爾出出汗,嘻嘻鬧鬧的搶下球,一天的煩悶就煙消云散了。。偶爾周末就會(huì)來(lái)個(gè)廚藝大比拼,這里的辣妹子辣伢子比較多,菜系當(dāng)然是以爆辣為主啦,炒血鴨,剁椒魚泡,梅菜扣肉,爆炒鴨腸,紅燒魚。。紅通通的一片,看得口水直流,廣東的同事每次都被我們拖下水,看著他們被辣得滿頭大汗,我們就在一邊賊笑。。
2008感覺是挺滄桑的一年。也許是地震把我從沉睡中震醒了吧?!出來(lái)七八年了,我就這么渾渾噩噩的把它過完了,已經(jīng)荒廢了兩年多沒認(rèn)真學(xué)習(xí)了,雖然偶爾會(huì)好強(qiáng)下,強(qiáng)過之后就只剩下懶惰了,懶惰算得上是我的一大劣根性了。。更可怕的是發(fā)覺自己的心態(tài)在一天天的老去,不好的習(xí)性也在一天天的滋長(zhǎng)。。霸道、沒耐心,像個(gè)怨婦似的成天發(fā)牢騷?!。。有時(shí)候都不敢想像再這么下去我會(huì)變成什么樣?!看著這里的物是人非,難免有些傷感。??紤]了很久,8月份的時(shí)候終于鼓起了勇氣向老大提出了辭職,他一點(diǎn)也不意外,我們談了很久,他說了很多難處,新人還沒成長(zhǎng)起來(lái),希望我能留下來(lái)幫忙一段時(shí)間,我一心軟就答應(yīng)了,無(wú)論如何過完年來(lái)一定得閃了。。
呵,就寫到這里了,東拉西扯的也不知道都寫了些啥?!別人都是1年1篇總結(jié),我8年才寫這么1次,能寫的東西太少了,總之過得稀里糊涂、糊里糊涂,糊成了一鍋粥。。如果說人生最美好的時(shí)光是18-25歲,那么我的美好人生真的都被我虛度了。。
最后,希望09年做一個(gè)全新的自己,開開心心的過好每一天。。
并祝大家圣誕、元旦快樂!
第四篇:Android項(xiàng)目開發(fā)總結(jié)
項(xiàng)目開發(fā)總結(jié)報(bào)告
1引言
1.1編寫目的
總結(jié)開發(fā)經(jīng)驗(yàn)與學(xué)習(xí)中的不足
1.2背景
以方便用戶記錄日常學(xué)習(xí)心得,生活體會(huì)為目的,進(jìn)行主題為“隨心筆記”的應(yīng)用開發(fā)
2實(shí)際開發(fā)結(jié)果
2.1產(chǎn)品
2.2主要功能和性能
能夠查看筆記的目錄,記錄筆記完成時(shí)間。能夠改變主題顏色,目錄排版方式,擁有簡(jiǎn)潔的主題。對(duì)于涂鴉功能,插入圖片,密碼鎖等功能未能實(shí)現(xiàn)。
3開發(fā)工作評(píng)價(jià)
3.1對(duì)產(chǎn)品質(zhì)量的評(píng)價(jià)
本應(yīng)用擁有簡(jiǎn)單實(shí)用的功能,能夠滿足一般用戶的需要
3.3對(duì)技術(shù)方法的評(píng)價(jià)
開發(fā)中使用了軟件工程中的增量開發(fā)模型,黑盒測(cè)試等技術(shù),使開發(fā)逐步向前發(fā)展
3.4出錯(cuò)原因的分析
對(duì)于部分Android版本支持性不好,不能正常使用安裝等
4經(jīng)驗(yàn)與教訓(xùn)
通過這次開發(fā),我們體驗(yàn)了開發(fā)不易,需要很多人員的合作。開發(fā)過程中,必須明確整體目標(biāo),不能東一榔頭,西一棒槌。另外由于學(xué)習(xí)時(shí)間短,對(duì)很多東西都不太了解,還好通過CSDN等一些網(wǎng)站能夠找到有益的幫助,感謝那些博客,論壇。
第五篇:數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述
數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述
職責(zé):
1、負(fù)責(zé)數(shù)據(jù)提取與分析工作;
2、負(fù)責(zé)數(shù)據(jù)接口設(shè)計(jì)與開發(fā);
3、負(fù)責(zé)ETL流程的設(shè)計(jì);
4、負(fù)責(zé)數(shù)據(jù)建模、數(shù)據(jù)預(yù)處理工作;
5、負(fù)責(zé)存儲(chǔ)過程的編寫;
6、負(fù)責(zé)日常ETL運(yùn)維等。
任職資格:
1、本科及以上學(xué)歷,計(jì)算機(jī)或數(shù)據(jù)分析相關(guān)專業(yè);
2、可以放寬至應(yīng)屆畢業(yè)生,具有數(shù)據(jù)庫(kù)、ETL、數(shù)據(jù)分析相關(guān)工作(含實(shí)習(xí))經(jīng)驗(yàn)者優(yōu)先;
3、熟練掌握SQL語(yǔ)言,熟悉存儲(chǔ)過程開發(fā);
4、具備較強(qiáng)的責(zé)任心,能夠承受工作壓力;
5、具備MySQL、Oracle開發(fā)經(jīng)驗(yàn)者優(yōu)先;
6、具備Hadoop、Hive、Pythonk開發(fā)經(jīng)驗(yàn)者優(yōu)先;
7、具備較強(qiáng)的責(zé)任心,上進(jìn)心、能夠承受工作壓力。
數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述2
職責(zé):
1.完善數(shù)據(jù)庫(kù)設(shè)計(jì)文檔;表結(jié)構(gòu),字段定義,引擎選擇;
2.優(yōu)化各項(xiàng)目組目前業(yè)務(wù)的SQL語(yǔ)句,滿足高并發(fā)的需求;
3.為開發(fā)團(tuán)隊(duì)提供數(shù)據(jù)庫(kù)相關(guān)的技術(shù)支持服務(wù),包括SQL編寫規(guī)范制定、指導(dǎo)、審核等
4.保障數(shù)據(jù)庫(kù)系統(tǒng)高效安全及穩(wěn)定運(yùn)行
任職資格
___本科及以上學(xué)歷,計(jì)算機(jī),網(wǎng)絡(luò),數(shù)學(xué)等相關(guān)專業(yè)優(yōu)先
___年
SQL開發(fā)相關(guān)經(jīng)驗(yàn),熟練掌握存儲(chǔ)過程等相關(guān)開發(fā)
3.熟悉數(shù)據(jù)庫(kù)的性能優(yōu)化、SQL調(diào)優(yōu),對(duì)鎖和事務(wù)隔離問題有深入理解
.熟悉數(shù)據(jù)庫(kù)設(shè)計(jì)理論,熟悉數(shù)據(jù)庫(kù)原理和底層架構(gòu)
4.精通主從復(fù)制原理和實(shí)踐
數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述3
職責(zé):
1、參與數(shù)據(jù)類項(xiàng)目需求分析和總體架構(gòu)設(shè)計(jì),對(duì)項(xiàng)目開發(fā)工作提出解決方案;
2、根據(jù)開發(fā)進(jìn)度和任務(wù)分配,完成相應(yīng)模塊軟件的開發(fā)、編程任務(wù);
3、解決日常開發(fā)中遇到的技術(shù)問題,根據(jù)需要不斷修改完善軟件;
4、根據(jù)公司技術(shù)文檔規(guī)范編寫相應(yīng)的技術(shù)文檔以及編寫相應(yīng)的說明書。
任職資格:
1、計(jì)算機(jī)科學(xué)、軟件工程等相關(guān)理工類專業(yè)本科/碩士學(xué)歷;
2、熟悉Teradata、DB2、Oracle等主流數(shù)據(jù)倉(cāng)庫(kù)模型設(shè)計(jì)之一;
3、熟悉oracle、Mysql等數(shù)據(jù)庫(kù)及SQL開發(fā),Teradata、DB2、Oracle等主流數(shù)據(jù)倉(cāng)庫(kù)模型設(shè)計(jì)之一;
4、熟悉JBOSS、Tomcat、Weblogic、Websphere等一種或多種主流應(yīng)用服務(wù)器;
5、具有良好的溝通交流能力、合作精神及主動(dòng)學(xué)習(xí)精神,能夠接受全國(guó)范圍內(nèi)的出差。
數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述4
職責(zé):
1.開發(fā)和維護(hù)基于Oracle關(guān)系型數(shù)據(jù)庫(kù)的系統(tǒng)。
2.能根據(jù)業(yè)務(wù)需求,獨(dú)立完成開發(fā)設(shè)計(jì)。
3.能獨(dú)立完成基于單個(gè)業(yè)務(wù)功能模塊的開發(fā)工作,并對(duì)復(fù)雜的業(yè)務(wù)模型進(jìn)行準(zhǔn)確、高效的程序設(shè)計(jì)開發(fā)工作。
4.建立測(cè)試環(huán)境,進(jìn)行相關(guān)開發(fā)的程序測(cè)試工作。
5.完成相關(guān)的開發(fā)及測(cè)試文檔。
任職要求:
1.計(jì)算機(jī)或相關(guān)專業(yè)全日制本科或以上學(xué)歷。
2.五年以上基于Oracle數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)開發(fā)經(jīng)驗(yàn)。
3.熟悉SQL,能熟練地運(yùn)用PLSQL開發(fā)工具。
4.學(xué)習(xí)和理解能力強(qiáng),具有一定的系統(tǒng)分析能力,及獨(dú)立解決問題的能力。
5.具備良好的團(tuán)隊(duì)合作精神和承受壓力的能力。
6.有物流、ERP、醫(yī)療等系統(tǒng)開發(fā)經(jīng)驗(yàn)者更佳。
數(shù)據(jù)庫(kù)開發(fā)工程師的職責(zé)描述5
職責(zé):
1、負(fù)責(zé)公司開發(fā)平臺(tái)日常維護(hù)、二次開發(fā)修改及升級(jí)工作;
2、使用后臺(tái)數(shù)據(jù)庫(kù)等工具進(jìn)行數(shù)據(jù)分析、整理工作;
3、采用系統(tǒng)維護(hù)方案保障系統(tǒng)的穩(wěn)定運(yùn)行;
4、使用相關(guān)測(cè)試工具對(duì)系統(tǒng)進(jìn)行測(cè)試并撰寫測(cè)試報(bào)告;
5、為客戶提供售前技術(shù)咨詢講解答疑并提供專業(yè)的軟件安裝、實(shí)施、培訓(xùn)及顧問工作;
6、起草項(xiàng)目實(shí)施方案,編制特定用戶的系統(tǒng)使用說明手冊(cè)。
【任職要求】
1、專科及以上學(xué)歷計(jì)算機(jī)相關(guān)專業(yè);
2、必須熟練掌握SQL
Server
或
MY
SQL
兩者中的其中一種(此點(diǎn)不適者勿擾);
3、了解軟件架構(gòu)體系,熟悉Microsoft
SQL等數(shù)據(jù)庫(kù)系統(tǒng)的安裝、配置和優(yōu)化設(shè)置,熟練操作數(shù)據(jù)庫(kù)備份和恢復(fù);
4、能夠理解軟件設(shè)計(jì)中的表間關(guān)聯(lián)關(guān)系,對(duì)常規(guī)程序進(jìn)行的數(shù)據(jù)庫(kù)操作有一定認(rèn)識(shí);
5、有較強(qiáng)的責(zé)任心以及團(tuán)隊(duì)意識(shí)、能夠承受一定的工作壓力。