程序人生

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

          2012年2月15日

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

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

          2012年2月13日

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

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

          1、將Access中的數據導出到Orcale:

            1>用Access打開要導出的數據庫

             2>按下圖操作:

















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

          3、將修改好的數據導入:











          如以上圖操作兩數據庫的導入導出應該沒有問題啦...


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

          2012年2月10日

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

          1. 修改MyEclipse開啟頁面圖標
            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頁面---->做相應修改
                content Assist   ----  Alt+/


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


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


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

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

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

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

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

          注:cgi方式調用默認端口是:8012

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

          要想獲取郵箱則需要復制一份cgi文件,因為rtx中沒有提供現在,只需復制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代碼調用RTX提供的API向RTX發送消息,達到一種及時提醒的效果。

            讓我對RTX有了一定的了解和認識:

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

                我所碰到的第一個問題就是數字賬號無法發送消息的問題:

           

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

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

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

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

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

              下載文件:RTXS2011SDK(8.0.786.202).exe

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

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

              b. 再把SDKAPIC.dll、SDKAPI.dll、SDKAPIJava.dll拷貝去覆蓋./windows/system32

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

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

           

            /**
            * 發送消息提醒
            * @param receivers String 接收人(多個接收人以逗號分隔)
            * @param title String 消息標題
            * @param msg String 消息內容
            * @param type String 0:普通消息 1:緊急消息
            * @param delayTime String 顯示停留時間(毫秒) 0:為永久停留(用戶關閉時才關閉)
            * @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");     // 如果設置KEY_UINTYPE 為Account,無論傳進去是純數字還是字符串,都認為是帳號。

           

              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調用RTX的API實現發送消息的功能。經測試在Windows平臺下tomcat上面是沒問題的,可以實現想要的功能;但將代碼部署至Linxu平臺WAS下就行不通咯。因為這樣寫的代碼是不能實現跨平臺操作的,可我現在做的這個項目恰好是要發布在Linux平臺中的WAS服務器上,所以之前的代碼又得重新編寫:

                要實現通過代碼跨平臺發送RTX消息可有以下兩種方式:

                1、寫一個中轉程序,就是將寫好的java調用代碼封裝成一個web應用程序。

                2、改用CGI方式發送RTX消息。

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

          第一步:RTX服務端IP授權

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

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

           

                       

          第二步:實現代碼:

          View Code

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

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

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


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

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

          主站蜘蛛池模板: 高尔夫| 三台县| 新安县| 辽宁省| 运城市| 宜城市| 通渭县| 茂名市| 盱眙县| 吴川市| 贞丰县| 温泉县| 卢湾区| 栾川县| 邵东县| 邵阳市| 清镇市| 武山县| 韩城市| 绥德县| 布尔津县| 双牌县| 平湖市| 交城县| 台湾省| 塔城市| 曲阜市| 焦作市| 巴林右旗| 定襄县| 台江县| 托克托县| 阜康市| 商城县| 平罗县| 樟树市| 钟山县| 离岛区| 文水县| 抚宁县| 庐江县|