分享C++寫後臺程式碼
/*************************************************
Copyright: Baosight Software LTD.co Copyright (c) 2010
Author: sky_yang
Version: 1.0
Date: 2017-8-08
Description: 生產單元產量完成情況查詢(按生產廠)
**************************************************/
/***** C++ 的標準標頭檔案部分 *****/
include "stdafx.h"
/***** C++ 的業務標頭檔案部分 *****/
/<remark>=========================================================
///<summary>
///<para> </para>
///<para></para>
///</summary>
///<returns></returns>
===========================================================</remark>/
// service入口
BM2F_ENTERACE(oimmhp05f2_inq)
int f_oimmhp05f2_inq(EIClass * bcls_rec, EIClass * bcls_ret, CDbConnection * conn)
{
CTracer log(__FUNCTION__); //系統日誌類定義
/* 程式內部變數 */
int doFlag = 0;
/* 資料庫SQL操作字串 */
CString sqlstr;
CDbCommand cmd_inq(conn);
try
{
//獲取傳入引數
switch (conn->DatabaseKind)
{
case DB_KIND_DB2: // DB2 資料庫(未開Oracle相容)
case DB_KIND_DB2_ORACLE: // DB2 資料庫(開Oracle相容)
case DB_KIND_MSSQL: // MS SQL Server資料庫
case DB_KIND_ORACLE: // Oracle 資料庫
default:
sqlstr = "SELECT CFGP01_VDESC AS CFGP01_VD,SUM(STOCK_END_WT) AS STOCK_END_WT FROM TOIMM02 WHERE CFGP01_NAME = 'PROD_CODE' GROUP BY CFGP01_VDESC";
}
Log::Trace(" ", __FUNCTION__, "sqlstr =[{0}]", sqlstr);
cmd_inq.SetCommandText(sqlstr);
cmd_inq.ExecuteQuery(bcls_ret->Tables[0]);
cmd_inq.Close();
bcls_ret->Tables.Add();
bcls_ret->Tables[1].Rows.Add();
switch (conn->DatabaseKind)
{
case DB_KIND_DB2: // DB2 資料庫(未開Oracle相容)
case DB_KIND_DB2_ORACLE: // DB2 資料庫(開Oracle相容)
case DB_KIND_MSSQL: // MS SQL Server資料庫
case DB_KIND_ORACLE: // Oracle 資料庫
default:
sqlstr = "select CFGP01_VDESC AS CFGP01_VE,SUM(STOCK_END_WT) AS STOCK_E_WT from TOIMM02 WHERE CFGP01_NAME = 'STOCK_AGE' GROUP BY CFGP01_VDESC ";
}
Log::Trace(" ", __FUNCTION__, "sqlstr =[{0}]", sqlstr);
cmd_inq.SetCommandText(sqlstr);
cmd_inq.ExecuteQuery(bcls_ret->Tables[1]);
cmd_inq.Close();
bcls_ret->Tables.Add();
bcls_ret->Tables[2].Rows.Add();
switch (conn->DatabaseKind)
{
case DB_KIND_DB2: // DB2 資料庫(未開Oracle相容)
case DB_KIND_DB2_ORACLE: // DB2 資料庫(開Oracle相容)
case DB_KIND_MSSQL: // MS SQL Server資料庫
case DB_KIND_ORACLE: // Oracle 資料庫
default:
sqlstr = "select CFGP01_VDESC AS CFGP01_VS,SUM(STOCK_END_WT) AS STOCK_N_WT from TOIMM02 WHERE CFGP01_NAME = 'STOCK_STURCT' AND CFGP02_VALUE = 'SM' group by CFGP01_VDESC";
}
Log::Trace(" ", __FUNCTION__, "sqlstr =[{0}]", sqlstr);
cmd_inq.SetCommandText(sqlstr);
cmd_inq.ExecuteQuery(bcls_ret->Tables[2]);
cmd_inq.Close();
bcls_ret->Tables.Add();
bcls_ret->Tables[3].Rows.Add();
switch (conn->DatabaseKind)
{
case DB_KIND_DB2: // DB2 資料庫(未開Oracle相容)
case DB_KIND_DB2_ORACLE: // DB2 資料庫(開Oracle相容)
case DB_KIND_MSSQL: // MS SQL Server資料庫
case DB_KIND_ORACLE: // Oracle 資料庫
default:
sqlstr = " SELECT CFGP01_VDESC AS CFGP01_VC,SUM(STOCK_END_WT) AS STOCK_D_WT FROM TOIMM02 WHERE CFGP01_NAME = 'STOCK_STURCT' AND CFGP02_VALUE = 'PR' GROUP BY CFGP01_VDESC ";
}
Log::Trace(" ", __FUNCTION__, "sqlstr =[{0}]", sqlstr);
cmd_inq.SetCommandText(sqlstr);
cmd_inq.ExecuteQuery(bcls_ret->Tables[3]);
cmd_inq.Close();
}
catch (CDbException& ex) //捕獲資料庫操作異常
{
CFormattable arguments[] = { ex.GetCode() };
CMessageFormat::Format(s.msg, _RES("GCRSS0000006")/*資料庫處理出錯,sqlcode=[{0}]。請聯絡系統維護人員。*/, arguments, 1);
CString str = sqlstr + "\r\n" + ex.GetMsg();
strncpy(s.sysmsg, (const char*)str, sizeof(s.sysmsg) - 1);
s.flag = -1;
doFlag = -1; //資料庫異常時返回-1,事務將被回滾
}
catch (CApplicationException& ex) //捕獲應用錯誤
{
s.flag = ex.GetCode();
doFlag = -1;
}
catch (CException& ex)
{
strncpy(s.msg, (const char*)ex.GetMsg(), sizeof(s.msg) - 1);
s.flag = ex.GetCode();
doFlag = -1;
}
return doFlag;
}
相關文章
- 編寫python後臺程式Python
- 純後端如何寫前端?我用了低程式碼平臺後端前端
- 想後臺執行一段程式碼,請教怎麼寫?
- 分享一個奇怪得程式碼寫法
- ThinkPHP3.2.3遊戲sdk交易平臺PC+後臺程式分享PHP遊戲
- vue後臺管理系統程式碼Vue
- 後臺程式碼 拼接table吐槽
- DDD建模後寫程式碼的正確姿勢(Java、dotnet雙平臺)Java
- 低程式碼 系列 —— 中後臺整合低程式碼預研
- WPF 後臺程式碼做 TranslateTransform 的動畫ORM動畫
- XYHCMS 3.6 後臺程式碼執行漏洞
- Java程式碼寫好後怎麼執行?Java
- js呼叫後臺程式碼的幾種方法JS
- PbootCMS程式後臺登入密碼重置工具boot密碼
- 檔案上傳/下載後臺程式碼
- Avalonia 後臺程式碼簡單播放動畫示例動畫
- ORACLE後臺程式Oracle
- oracle 後臺程式Oracle
- Clusterware 後臺程式
- 攜程後臺低程式碼平臺的探究與實踐
- J2EE專案程式碼編寫規範分享
- IT去中心化背後的低程式碼平臺中心化
- 建立後臺任務的兩種程式碼模式模式
- 分享個程式碼
- 當上技術老大後,還需要寫程式碼嗎?
- 將程式在後臺執行和殺掉後臺的程式
- JAVA實現編寫平臺程式碼生成器Java
- C++編寫pingIP的程式C++
- 用code::blocks寫C/C++程式BloCC++
- PostgreSQL 原始碼解讀(236)- 後臺程式#14(autovacuum程式#2)SQL原始碼
- PostgreSQL 原始碼解讀(124)- 後臺程式#4(autovacuum程式#1)SQL原始碼
- RAC後臺GTX程式
- WINDOWS ORACLE 後臺程式WindowsOracle
- Oracle後臺程式列表Oracle
- 後臺程式介紹
- Dataguard(Standby) 後臺程式
- 有意思的JavaScript程式碼寫法【持續更新,歡迎留言分享有趣程式碼】JavaScript
- 寫程式碼如寫散文