2020年8月20日 星期四

訊光科技EEP , 當流程EEP 為MS SQL . 資料為 ORACLE 時送出流程時會出錯

訊光科技EEP , 當流程EEP 為MS SQL . 資料為 ORACLE 時送出流程時會出錯原因為他把TABLE 加上 [TAB_FILE]   然後去 Oracle 資料庫查.
BUG 是因為
FLRuntime\\HostTable.cs 中


            object[] myRet = remoteModule.CallMethod(clientInfo, "GLModule", "GetDataBaseType", new object[] { DBAlias });   //進這後他會發現流程資料庫為SQL SERVER ,
            if (myRet != null && myRet[0].ToString() == "0")
            {
                /*GW Hanks 修改
                switch (myRet[1].ToString())
                {
                    case "1": table_or_column = _quotePrefix + table_or_column + _quoteSuffix; break;
                  // 所他就把 以下的欄位加上 [ ] 了. 問題是  table_or_column  指的是 Oracle 資料庫
                }*/
            //請改成以下的
                switch (Srvtools.DbConnectionSet.GetDbConn(DBAlias).DbType)
                {
                    case ClientType.ctMsSql:
                        table_or_column = _quotePrefix + table_or_column + _quoteSuffix;
                        break;
                }




注: [ ] 為SQL 的保留字   select [欄位1], [欄位99] from [資料庫A].DBO.[我的表格]
     "" 為 oracle 的select "欄位1", "欄位99" from "我的表格"

沒有留言:

張貼留言