分享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;
}
相關文章
- 純後端如何寫前端?我用了低程式碼平臺後端前端
- 分享一個奇怪得程式碼寫法
- DDD建模後寫程式碼的正確姿勢(Java、dotnet雙平臺)Java
- vue後臺管理系統程式碼Vue
- 低程式碼 系列 —— 中後臺整合低程式碼預研
- ThinkPHP3.2.3遊戲sdk交易平臺PC+後臺程式分享PHP遊戲
- Java程式碼寫好後怎麼執行?Java
- XYHCMS 3.6 後臺程式碼執行漏洞
- 檔案上傳/下載後臺程式碼
- PbootCMS程式後臺登入密碼重置工具boot密碼
- WPF 後臺程式碼做 TranslateTransform 的動畫ORM動畫
- PostgreSQL 原始碼解讀(115)- 後臺程式#3(checkpointer程式#2)SQL原始碼
- PostgreSQL 原始碼解讀(114)- 後臺程式#2(checkpointer程式#1)SQL原始碼
- PostgreSQL 原始碼解讀(124)- 後臺程式#4(autovacuum程式#1)SQL原始碼
- PostgreSQL 原始碼解讀(236)- 後臺程式#14(autovacuum程式#2)SQL原始碼
- 攜程後臺低程式碼平臺的探究與實踐
- Avalonia 後臺程式碼簡單播放動畫示例動畫
- IT去中心化背後的低程式碼平臺中心化
- JAVA實現編寫平臺程式碼生成器Java
- 分享個程式碼
- 有意思的JavaScript程式碼寫法【持續更新,歡迎留言分享有趣程式碼】JavaScript
- 將程式在後臺執行和殺掉後臺的程式
- .Net Core——用程式碼寫程式碼?
- 分享常用的CSS函式,助你寫出更簡潔的程式碼CSS函式
- Python培訓分享:Python程式碼編寫過程中有哪些重要技巧?Python
- 20180314-程式碼分享
- 「趣圖」這是用 e 語言寫的 C++ 程式碼,客官請慢用C++
- 【程式碼修煉系列分享】改掉這些壞習慣,還怕寫不出健壯的程式碼?(一)
- 【程式碼修煉系列分享】改掉這些壞習慣,還怕寫不出健壯的程式碼?(二)
- 寫了 50 萬行 Go 程式碼後,我明白這些道理Go
- PostgreSQL 原始碼解讀(154)- 後臺程式#6(walsender#2)SQL原始碼
- PostgreSQL 原始碼解讀(153)- 後臺程式#5(walsender#1)SQL原始碼
- PostgreSQL 原始碼解讀(213)- 後臺程式#12(checkpointer-CheckpointWriteDelay)SQL原始碼
- PostgreSQL 原始碼解讀(214)- 後臺程式#13(checkpointer-IsCheckpointOnSchedule)SQL原始碼
- PostgreSQL 原始碼解讀(212)- 後臺程式#11(checkpointer-SyncOneBuffer)SQL原始碼
- PostgreSQL 原始碼解讀(211)- 後臺程式#10(checkpointer-BufferSync)SQL原始碼
- PostgreSQL 原始碼解讀(156)- 後臺程式#8(walsender#4)SQL原始碼
- PostgreSQL 原始碼解讀(155)- 後臺程式#7(walsender#3)SQL原始碼
- 素材資源網完全程式原始碼 帶後臺管理原始碼