瀏覽次數: 627316

  • SQL DataBase專案如何向ORACLE專案移植? 須改很多嗎?
    EEP2006中,Sql與Oracle的設計方法是一樣的。如果不考慮sql語句,需要更改的是Server的InfoConnection的ConnetionType,將其由MSSQL改成Oracle即可,以及在EEPNetServer下將SystemDB換為使用的OracleDB,但如果是自行下達的SQL語句就要注意其兩個資料庫SQL語句的個別差異,最好使用兩者都能接收的SQL語句即可。
  • Solution的定義,該到哪個資料庫(如果有多個時)
    Solution的定義,是在EEPManager中的”Solution Define”功能中定義與增加,在SystemDB中是存放在MenuItemType系統資料表中,EEPNetClient執行的時候,不知道用戶要登陸到哪個資料庫,所以,系統一律從SystemDB中讀取(SystemDB是定義在EEPNetServer的DB Manager中)。所以,SystemDB里面必須要定義此Solution,如果在使用兩個不同資料庫的情況下,你的資料庫並非共享SystemDB,那么在兩個資料庫裏中也需要定義你的Solution,因為定義MenuItem項目的時候是會用到的。
  • InfoDataSet或WebDataSet重新Active,InfoDataSet總是不能抓取InfoCommand所新增的欄位。
    請按下列步驟來排除此問題:
    (1). 在VS2005中,如果有執行Web的瀏覽,則Development Server必須重新關掉 (右下工作列中可以找到,如果有的話)。
    (2) EEPNetServer關閉,因為該Server可能已將之前的DLL中的InfoCommand進行Active了,因此必須結束EEPNetServer,好釋放此DLL。
    (3). 執行VS2005/TOOLS/UnloadAppDomains,這是因為在VS2005中該DLL有可能被Active了,所以在重新Build Server端的DLL時會發生被佔用的Error,經過重Build Server的DLL後,請重新將InfoDataSet或WebDataSet的Active設為False,再設為True即可抓到最新的InfoCommand的欄位。
  • 在WEB 如何呼叫Stored Procedure 傳回資料?
    請下載 http://www.infolight.com.tw/download/file/InfoCommand使用存儲過程.doc這個文件,內有詳細的Stored Procedure的使用說明。
  • 我設定了Split System Table,結果資料字典卻沒有抓到, 為何?
    當你在EEPNetServer上選擇了Split System Table時,代表共用了系統資料表(存放在SystemDB中),但是, 只有Coldef以及SysAutoNum這兩個系統Table需要獨立,就是在你的Login資料庫中也要存在,其餘的系統Talbe都是可以共用的
  • 存入資料庫的數據有單引號如何解決? (如:惡意攻擊)
    在EEP2006中,會自行處理單引號的部分,就是資料內容有單引號時,系統會自動在前面增加一個單引號,來防止SQL命令的出錯,及駭客或有心人士使用SQL隱形碼來攻擊你的資料庫(如使用 ' ;DROP Users – 等資料來攻擊),如ClientQeury與Navigator的查詢,還有UpdateComp的Insert與Update欄位都有這樣的前置處理 ; 但如果是自己的Query程式,要透過SetWhere()來讓EEPNetServer處理時,須自行檢查User所輸入的查詢內容是否有單引號存在,並且同樣在前面加上一個單引號即可。
  • 多人開發不同資料庫時,DD是否能指向同一個?
    DD(資料字典)在不同資料庫時,是不能共用的,如真的要共用,可以用資料庫工具Copy過來,另外,如果是相同的資料庫,則多人開發時如果大家指向同一個資料庫時,就可以共用。DD的概念是這樣的,在設計前,規格開發階段就應該完成,最好不要隨意更改,否則引起的資料異動無法自動更新,所以,當大家共用一個資料庫時,最好都設計好DD后,再開始設計,如有變更,之前開發過的系統可能要人工更正。
  • Oracle中如何追蹤EEP2006所下的SQL語句?
    要跟?所有用?的SQL語句,而不是目前用?的?候,可以通?Oracle提供的系?工具包DBMS_SYSTEM。 以SET_SQL_TRACE_IN_SESSION?完成。
    先?行一下?句,?得?程信息,??需要跟?的?程:
    SQL> select sid,serial#,username from v$session 2 where username is not null;
    SID SERIAL# USERNAME
    ---------- ---------- ------------------------------
    8 2041 SYS
    9 437 EYGLE
    然后再?置sql_trace:
    SQL> exec dbms_system.set_sql_trace_in_session(9,437,true)
    PL/SQL procedure successfully completed.
    ….
    可以等候片刻,跟?session?行任?,捕?sql操作…
    ….
    停止跟?:
    SQL> exec dbms_system.set_sql_trace_in_session(9,437,false)
    PL/SQL procedure successfully completed.
    另一個辦法是,EEP2006 2200 SP2以後的版本,在EEPNetServerk的”System Log Manager”中,有一個”SQL Log”的Checkbox,將其勾選後,也可以記錄所有EEPNetServer所下出的SQL語句,可透過EEPManager的”SQL Log”來查看。
  • 改過DB 後,出現 DataSource 上找不到DataMember 屬性
    如果在修改Server端程式前打開過Client程式,那Server的相對模組的dll是會被緩存下來的,即使重新建置,Client連接的也是以舊的Server dll來連線,可以這樣解決:
    (1). 關閉Client的Form
    (2). 關閉EEPNetServer,重新建置Server的Dll,在vs的工中執行UnloadAppDomains清空緩存的Server Dll,重新打開Client。
    (3). 如果還是沒有解決, 重新啟動Visio Studio,緩存的Server Dll也會清除。
  • 如果使用Create View的Table來設計InfoCommand時,在設計Client的畫面時,資料字典都會失效,應如何處理?
    可以在EEPManger的DataDictionary 中增加一個以您的view的名字作為TableName的項目,並將欄位名稱定義在此即可。
  • 如何讓winform開啟時,能夠傳入參數
    可以利用EEPManager的Menu Utility項目設定的”Parameters”來作參數設定,這樣就可以在該表單用 this.ItemParams就可以取得這個參數。
  • 如何檢視編輯資料時的Sql語法?
    方法一: SqlServer可利用SqlProfiler直接追蹤sql語句。
    方法二:通過Debug程式來獲得,您可以Debug一下EEPNetServer,將中斷點設在UpdateComp.cs的Update方法(參數最多的那個).在Update方法中有區分3種,新增修改刪除,您可以將斷點分別放在IDbCommand deleteCommand = AllocateCommand(deleteSQL/UpdateSql/insertSql);
    另外,請確認一下EEPnetServer的『Package Manager』中的『Load in memory』應設定為沒有選中,不然無法Debug。
  • 請問Oracle的SQL語法在infoCommand是否支援“SELECT * FROM ATABLE A, (SELECT ID,NAME FROM ATABLE) B WHERE A.ID = B.ID”?
    這個是VS裏Oracle的Inner join的一個bug,建議可以通過創建View的方法回避這個問題。
  • 跨資料庫時,因客戶不同需連線不同的資料庫,有沒什麼方法可以不用手動去更改Server端的EEPAlias的連結?
    InfoCommand取資料的規則是這樣的:
    1. 如果有設定EEPAlias,則一律取自該DB。
    2. 如果沒有設定EEPAlias,則在運行時登錄到哪個DB就取自哪個DB。
    所以,建議您在EEPNetServer多定義幾個DB的連接,而不是用程式去更改,在設計時只要設定到其中某個就可以,因?運行時是以實際登錄的?准,如果您有些資料是固定某個DB的,那?您就選擇設定InfoCommand的EEPAlias。
  • 當資料語言是越南語.存檔到DB是亂碼?
    因為使用的是越南文,在Oracle的預設語言中不包含在內,需要設定語言集,或者直接將DB的欄位定義為NVarchar2類型也可以。
  • 如何將EXCEL,DOC,PDF檔案存入ORACLE中的BLOB欄位,並讀取..
    可以通過File.open打開檔,然後存為byte[] ,再利用OracleParameter的方法Insert到資料庫中。
  • 請問如何叫用Server上的ConnectionString?
    在Server端可以通過以下程式:
    IDbConnection conn1 = this.AllocateConnection("ERPS");
    if (conn1.State == ConnectionState.Closed) conn1.Open();
    IDbTransaction trans = conn1.BeginTransaction();
    this.ExecuteCommand("update/insert/delete....", conn1, trans);
    ......
    trans.Commit();
    this.ReleaseConnection("ERPS", conn1);
  • 可以只對某一個Table 的Primary key 設定大小寫分開嗎?
    執行Sql,以Cutomers表的CompanyName欄位為例
    ALTER TABLE Customers ALTER COLUMN CompanyName [nvarchar](40) COLLATE Chinese_Taiwan_Stroke_CS_AS。