程序人生

          不甘寂寞^_^
          posts - 2, comments - 2, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2012年2月15日

          一、創(chuàng)建"概念數(shù)據(jù)模型"-CDM(Conceptual Data Model) 
          (1)打開PowerDesigner,點擊File(文件)->New(新建) 
          (2)選擇Conceptual Data Model,并修改Model name(模型名). 
          (3)在Palette工具欄中點擊Entity(實體)工具,并在工作區(qū)中建立Entity
          (4)雙擊一個Entity.在彈出的Entity Properties中輸入Name,Code.其中Name是在顯示時使用的名稱,而Code是在代碼中使用的名稱. 
          注:修改name的內(nèi)容,code也跟著變化,如何讓code不隨著name變化,Name和Code 的右側(cè)都有一個按鈕“=”,如果需要不同步的話,把這個按鈕彈起來就可以了。
          Tools(工具)->General Options(常規(guī))->Dialog(對話)->Name to Code Mirroring(名字編碼映射) 去掉
              
              
          (5)點擊Attributes(屬性),建立相應(yīng)的屬性:Name:顯示名稱,Code:代碼名稱,Data Type:數(shù)據(jù)類型,Length:數(shù)據(jù)長度,Precision:數(shù)據(jù)精度,M:必須的,P:主鍵,D:顯示. 
          注:允許字段同名,.默認(rèn)不允許有相同字段 
          Tools-->model options-->model settings(模型設(shè)置)-->Data Item(數(shù)據(jù)選項)-->unique code去勾則可
          (6)選中主鍵列,點擊工具列中的Create Identifier(標(biāo)識符)按鈕. 
          (7)輸入Name及Code,因為是主鍵列,所以選中Primary identifier. 
          (8)建關(guān)系: 點擊工具欄中的關(guān)系工具,在學(xué)生表Entity上點擊并拖至成績表Entity. 
                     雙擊關(guān)系-->name關(guān)系描述/code約束名-->Detail(細(xì)節(jié)): 一對一,一對多, 多對多,多對一
          (9)建約束:雙擊字段名-->Standard checks(標(biāo)準(zhǔn)檢查)可設(shè)置最大值|最小值|默認(rèn)值-->additional Checks(附加檢查):可手寫check約束
          (10)檢查是否有錯 Tools-->check  model
          注:刪除未改名的字段,不然報錯
          二、根據(jù)CDM生成"物理數(shù)據(jù)模型"-PDM(Physical Data Model)
          1.Tools-->generate  physical(產(chǎn)生物理模型)-->選擇數(shù)據(jù)庫類型,例sql  server 2000
          注:a.不能改文件夾,必須是DBMS文件夾中
          2.主外鍵設(shè)置:雙擊關(guān)系-->joins(連接)選擇各表的主外鍵字段
          3.建標(biāo)識列:雙擊字段名 -->Genral-->identity前面加勾 
          三、為特定DBMS創(chuàng)建數(shù)據(jù)庫的SQL語句。
          Data base-->generate  database(產(chǎn)生數(shù)據(jù)庫)-->Director選擇文件生成的位置?
          注:(1)可以通過修改模板(Database-Edit Current DataBase)改變腳本的格式。例如:
               Script-Objects-Column-Add的Value中開頭增加一行“--%COLNNAME%”以便在腳本中顯示列的中英文對照
              (2)由pdm生成建表腳本時,字段超過15字符就發(fā)生錯誤(oracle)
                 打開PDM后Database-->Edit Current-->DBMS -script-objects-column-maxlen,把value值調(diào)大(原為 30),比如改成60。出現(xiàn)表或其它對象的長度也有這種錯誤都可以選擇對應(yīng)的objects照此種方法更改!
              (3)執(zhí)行sql語句時,需先建數(shù)據(jù)庫,因為該工具生成的腳本建表不建庫。
                 且腳本用的修改表,執(zhí)行兩次就OK了
          四、利用已現(xiàn)有模塊導(dǎo)出數(shù)據(jù)字典文件
          (1)”數(shù)據(jù)字典模板”,并將它復(fù)制到安裝目錄的Resource Files\Report Templates文件夾中
          (2)右擊"PDM"-->新增-->report(報表)-->新建-->ReportName報表名,language語言(選擇Simplified Chinese簡體中文),report template報表模塊(選擇數(shù)據(jù)字典模板)-->編輯或直接使用使用該模板
          (3)選擇report工具欄中-->Generate Html生成HTML字典| Generate RTF生成DOC字典
          注:修改報表模板中一些術(shù)語的定義
          即文件:C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\Report Languages\Chinese.xrl
          Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標(biāo)
          修改某些對象的名稱:Object Attributes\Physical Data Model(物理數(shù)據(jù)模型)\Column\
                  ForeignKey:外鍵
                  Mandatory:為空
                  Primary:主鍵
                  Table:表
          用查找替換,把“表格”替換成“表”
          修改顯示的內(nèi)容為別的:Values Mapping\Lists\Standard,添加TRUE的轉(zhuǎn)化列為是,F(xiàn)ALSE的轉(zhuǎn)化列為空
          另外Report-Title Page里可以設(shè)置標(biāo)題信息
          五、根據(jù)已存在的數(shù)據(jù)庫反向生成PDM,CDM及創(chuàng)建數(shù)據(jù)庫的SQL腳本。
           
          DataBase -->reverse Engineer DataBase(反轉(zhuǎn)數(shù)據(jù)庫) -->  Using an ODBC data source 
          注:需要配置數(shù)據(jù)源。問:如何反向MYsql
              
          如果報以下錯誤的解決方案:
          Unable to list the users.
          [Microsoft][ODBC SQL Server Driver][SQL Server]無法預(yù)定義語句
          SQLSTATE = 37000
          解決方案:修改語法檢查規(guī)范
          步驟一:選擇菜單欄中的Database -> Change Current DBMS ,給DBMS選擇SQL Server2005。
          步驟二:重新配置ODBC連接,取消"更改默認(rèn)的數(shù)據(jù)庫為"選擇。
          步驟三:從PD里選擇File -> Reverse Engineer -> Database 
          步驟四:選擇數(shù)據(jù)庫,選擇表,OK,大功造成。

          posted @ 2012-02-15 21:18 阿星 閱讀(4968) | 評論 (0)編輯 收藏

          2012年2月13日

                   作為一個程序員所操作的數(shù)據(jù)庫肯定不至一兩個,在這個項目可能用這個數(shù)據(jù)庫。換下一個項目可能數(shù)據(jù)庫也跟著換了,雖然接觸的數(shù)據(jù)庫很多,但我們可能并不是對每一個數(shù)據(jù)庫都能操作自如。有時對一些特殊的數(shù)據(jù)進行批量修改或更新時,沒有在自己熟悉的數(shù)據(jù)庫上操作自如,因此我們會想到將數(shù)據(jù)導(dǎo)出至我們熟練的數(shù)據(jù)庫中修改好之后再將其導(dǎo)入。

                  下面以Access和Oralce為例,跟大家簡單介紹下導(dǎo)入導(dǎo)出過程:1、Access

          1、將Access中的數(shù)據(jù)導(dǎo)出到Orcale:

            1>用Access打開要導(dǎo)出的數(shù)據(jù)庫

             2>按下圖操作:

















          2、修改數(shù)據(jù),這個過程省略,因為各有所需...

          3、將修改好的數(shù)據(jù)導(dǎo)入:











          如以上圖操作兩數(shù)據(jù)庫的導(dǎo)入導(dǎo)出應(yīng)該沒有問題啦...


          posted @ 2012-02-13 22:57 阿星 閱讀(451) | 評論 (0)編輯 收藏

          2012年2月10日

          以下是本人在使用MyEclipse工具的一些心得,希望對大家有用!

          1. 修改MyEclipse開啟頁面圖標(biāo)
            a、首先找到這個圖片:
            我的目錄是:D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\splash.bmp
            注意6.0以前版本文件名也所不同,其實只要隨便找一個bmp的文件,也可以,
            用畫圖打開,然后寫上自己的大名.....
            b、找到eclipse目錄的eclipse.ini
             最后面加一句:-Dosgi.splashLocation=圖片路徑,即可。


          2、修改MyEclipse中的快捷鍵:
               Window---->Preferences---->搜索[key]找到keys頁面---->做相應(yīng)修改
                content Assist   ----  Alt+/


          3.讓MyEclipse飛起來:
             a、Window---->Preferences---->搜索[mav]找到Maven頁面----->將該頁面的勾全去掉
             b、...搜索[star]找到Startup and Shutdown頁面---->可去掉90%的選項


          4、修改jsp頁面默認(rèn)編碼格式:
              Window---->Preferences---->搜索[jsp]找到JSP頁面---->Encoding:選擇UTF-8


          5、修改MyEclipse的默認(rèn)端口:
              a、Window---->Preferences---->搜索[tom]--->MyEclipse Tomcat--->8088[自帶tomcat]
                 如果是Tomcat 6.0或其它版本的要找到Tomcat的安裝文件conf中的server.xml文件修改
                 其中的端口號
              b、找到MyEclipse頁面工具欄的【電腦圖標(biāo)】點擊對其進行相應(yīng)的修改,OK搞定....

          posted @ 2012-02-10 22:23 阿星 閱讀(864) | 評論 (0)編輯 收藏

          正確安裝RTX后,在以下目錄下可以找到一個獲取用戶電話號碼的cgi文件,

          ..\Tencent\RTXServer\WebRoot\GetMobile.cgi

          調(diào)用方式:直接在瀏覽器中輸入http:127.0.0.1:8012//GetMobile.cgi?receiver=username  

          注:cgi方式調(diào)用默認(rèn)端口是:8012

          就可獲取用戶[username]在RTX中的電話號碼。

          要想獲取郵箱則需要復(fù)制一份cgi文件,因為rtx中沒有提供現(xiàn)在,只需復(fù)制GetMobile.cgi文件于同目錄下,再做以下修改就OK咯

          <?PHP

          $receiver = $_GET["receiver"];

          if (strlen($receiver) == 0)
          {
          $receiver = $_POST["receiver"];
          }

          $ObjApi= new COM("Rtxserver.rtxobj");
          $objProp= new COM("Rtxserver.collection");
          $Name = "USERMANAGER";
          $ObjApi->Name = $Name;
          $vName="";
          $vValue="";
          $objProp->Add("USERNAME", $receiver);
          $objProp->Add("UINTYPE", "Account");

          $Result = @$ObjApi->Call2(0x6, $objProp);

          if(strcmp($nullstr, $errstr) == 0)
          {

          $Result->GetKeyValue(1, $vName, $vValue); //1:是取郵箱 5:是取電話號碼

          header("Ret Code: 0");
          header("Ret String: 操作成功");
          header("Mobile: ".strVal($vValue));
          echo $vValue;
          }
          else
          {
          header("Ret Code: -1");
          header("Ret String: ".$errstr);
          echo $errstr;
          }
          ?>

          posted @ 2012-02-10 22:22 阿星 閱讀(926) | 評論 (0)編輯 收藏

          公司最近的一個項目有這樣一個需求:就是通過java代碼調(diào)用RTX提供的API向RTX發(fā)送消息,達(dá)到一種及時提醒的效果。

            讓我對RTX有了一定的了解和認(rèn)識:

            雖然RTX提供的API還比較豐富,但操作的過程中還是會碰到一些大大小小的問題。

                我所碰到的第一個問題就是數(shù)字賬號無法發(fā)送消息的問題:

           

              public int sendNotice(RtxSendNoticeBean rtxb) {
              int iRet= -1;
              RTXSvrApi RtxsvrapiObj = new RTXSvrApi();   //RTX提供的API

              if( RtxsvrapiObj.Init()){ 
                RtxsvrapiObj.setServerIP(rtxb.getServerip()); //設(shè)置RTX服務(wù)器IP地址
                RtxsvrapiObj.setServerPort(rtxb.getServerprot()); //設(shè)置RTX服務(wù)器端口

                String szKey = RtxsvrapiObj.getSessionKey(rtxb.getRecivers());
                System.out.println("SessionKey:" + szKey);
                //API中的消息發(fā)送 功能    0:操作成功 非0:操作不成功  
                iRet = RtxsvrapiObj.sendNotify(rtxb.getRecivers(),rtxb.getTitle(),rtxb.getContent(), rtxb.getType(),rtxb.getDelarytime());
              }
              if (iRet == 0){
                System.out.println("發(fā)送成功");
              }else{
                System.out.println("發(fā)送失敗");
              }
              RtxsvrapiObj.UnInit();
              return iRet;
             }

            使用以上代碼,若RTX是非純數(shù)字賬號就沒問題,可以發(fā)送。但如果是純數(shù)字賬號就沒反應(yīng),經(jīng)多處查找資料得處結(jié)果,這是RTX2011之前版本的bug。要想同時操作數(shù)字賬號可以用以下兩種方式解決:

            1、直接安裝RTX2011SDK(若此方案可行就不用再做不第二步操作)

              下載文件:RTXS2011SDK(8.0.786.202).exe

             2、如果已安裝2010SDK,又不想使用RTX2011版SDK,就需要做已下修改:

              a. 把RTXSSDK2010安裝目錄下的SDKAPIC.dllSDKAPI.dllSDKAPIJava.dll用RTX2011SDK中的進行覆蓋。

              b. 再把SDKAPIC.dllSDKAPI.dllSDKAPIJava.dll拷貝去覆蓋./windows/system32

              c. 用regsvr32 命令注冊一下SDKAPI.dll文件。

             最后需要在RTX提供的API中添加一行代碼:

           

            /**
            * 發(fā)送消息提醒
            * @param receivers String 接收人(多個接收人以逗號分隔)
            * @param title String 消息標(biāo)題
            * @param msg String 消息內(nèi)容
            * @param type String 0:普通消息 1:緊急消息
            * @param delayTime String 顯示停留時間(毫秒) 0:為永久停留(用戶關(guān)閉時才關(guān)閉)
            * @return int 0:操作成功 非0:操作不成功
            */
            public int sendNotify(String receivers,String title,String msg, String type,String delayTime) {

              svrInit(OBJNAME_RTXEXT);

              AddProperty(iProp, KEY_USERNAME, receivers);
              AddProperty(iProp, KEY_TITLE, title);
              AddProperty(iProp, KEY_MSGINFO, msg);
              AddProperty(iProp, KEY_TYPE, type);
              AddProperty(iProp, KEY_MSGID, "0");
              AddProperty(iProp, KEY_ASSISTANTTYPE, "0");
              AddProperty(iProp,KEY_UINTYPE,"Account");     // 如果設(shè)置KEY_UINTYPE 為Account,無論傳進去是純數(shù)字還是字符串,都認(rèn)為是帳號。

           

              if(!"0".equals(delayTime))
                AddProperty(iProp, KEY_DELAYTIME, delayTime);

           

              iResult = Call(iObj, iProp, PRO_EXT_NOTIFY);
              innerCode = GetResultInnerCode(iResult);

              release();
              return innerCode;
            }

               這樣改好這后,大功告成!

          posted @ 2012-02-10 22:20 阿星 閱讀(2448) | 評論 (2)編輯 收藏

             在上一遍中講到,用java調(diào)用RTX的API實現(xiàn)發(fā)送消息的功能。經(jīng)測試在Windows平臺下tomcat上面是沒問題的,可以實現(xiàn)想要的功能;但將代碼部署至Linxu平臺WAS下就行不通咯。因為這樣寫的代碼是不能實現(xiàn)跨平臺操作的,可我現(xiàn)在做的這個項目恰好是要發(fā)布在Linux平臺中的WAS服務(wù)器上,所以之前的代碼又得重新編寫:

                要實現(xiàn)通過代碼跨平臺發(fā)送RTX消息可有以下兩種方式:

                1、寫一個中轉(zhuǎn)程序,就是將寫好的java調(diào)用代碼封裝成一個web應(yīng)用程序。

                2、改用CGI方式發(fā)送RTX消息。

                我采用的是第二種方式,下面就為大家介紹下本人的操作過程:

          第一步:RTX服務(wù)端IP授權(quán)

               1.用記事本打開System32下的rtxServerApi.ini文件,把Host改為RTX服務(wù)器的IP地址。

              2.進入RTX服務(wù)器安裝目錄../RTXServer下,用記事本打開SDKPorperty.xml文件,在里面增加開發(fā)機器地址(如下圖所示),保存后重啟RTX服務(wù)。

           

                       

          第二步:實現(xiàn)代碼:

          View Code

          第三步:如果RTX賬號中有純數(shù)字賬號還得做以下操作,不能數(shù)字賬號還是不行

               找到RTXServer的安裝目錄..\Tencent\RTXServer\WebRoot\SendNotify.cgi紅色部分為添加內(nèi)容)

          <?PHP
          ........
          $Name = "ExtTools";
          $ObjApi->Name = $Name;
          $objProp->Add("UINTYPE", "Account"); //允許操作純數(shù)字賬號
          $objProp->Add("msgInfo", $msg);
          .............
          ?>


          有興趣的或正在開發(fā)此功能的朋友可以去實下,希望對你有所幫助.....

          posted @ 2012-02-10 22:20 阿星 閱讀(2908) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 文昌市| 井冈山市| 锦屏县| 北安市| 浑源县| 商都县| 安西县| 上高县| 安顺市| 综艺| 柳州市| 沿河| 南和县| 苍南县| 政和县| 商城县| 大邑县| 乐昌市| 保靖县| 湖北省| 乃东县| 澄迈县| 潢川县| 静安区| 彭阳县| 浦县| 龙岩市| 新竹市| 宜州市| 射阳县| 彭阳县| 鱼台县| 桐柏县| 康乐县| 渑池县| 凤冈县| 惠水县| 桦川县| 大丰市| 洞口县| 彭山县|