⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 desexec.cpp

📁 A HR database application.
💻 CPP
字号:
#include "stdafx.h"
#include "desexec.h"

#include <strstrea.h>

SQLRETURN Decrypt_ODBC_Return_Code( SQLSMALLINT fHandleType, SQLHANDLE hHandle,
								   SQLRETURN err, char *func, int line, const char *file)
{
	switch( err )
	{
	case SQL_SUCCESS:
		cout << "SQL_SUCCESS: " << func << endl;
		return err;
	case SQL_SUCCESS_WITH_INFO:
		cout << "SQL_SUCCESS_WITH_INFO: " << func << endl;
		break;
    case SQL_STILL_EXECUTING:
		cout << "SQL_STILL_EXECUTING: " << func << endl;
        return err;
    case SQL_NEED_DATA:
		cout << "SQL_NEED_DATA: " << func << endl;
        return err;
    case SQL_NO_DATA_FOUND:
		cout << "SQL_NO_DATA_FOUND: " << func << endl ;
        return err;
	}

	char *pBuffer = new char[2048];
	ostrstream err_msg( pBuffer, 2048 );
	
	RETCODE rc = SQL_SUCCESS;
	char szSqlState[6];
	SQLINTEGER NativeError;
	char szErrorMsg[1024];
	SQLSMALLINT cbErrorMsg;

	if( fHandleType == SQL_HANDLE_ENV || fHandleType == SQL_HANDLE_DBC || fHandleType == SQL_HANDLE_STMT )
	{
		rc = SQLGetDiagRec( fHandleType, hHandle, 1, (SQLCHAR*)szSqlState, 
			&NativeError, (SQLCHAR*)szErrorMsg, 1024, &cbErrorMsg ) ;
		if (RC_SUCCESSFUL(rc))
			err_msg << szSqlState << ", native=" << NativeError << ", " << szErrorMsg << endl
			<< "during exec: " << func << ends << endl;
	}
	else
	{
		err_msg << ends;
		szSqlState[0]=0;
	}

	switch( err )
	{
	case SQL_SUCCESS_WITH_INFO:
		 cout << err_msg.str() << endl;
		 return err;
	case SQL_ERROR:
		 cout << "SQL_ERROR: " << err_msg.str() << "\n" << file << "," << line;
		 return err;
	case SQL_INVALID_HANDLE:
		 cout << "SQL_INVALID_HANDLE: " << err_msg.str() << "\n" << file << "," << line;
		 return err;
	default:
		 cout << "(unknown return code)" << err_msg.str() << "\n" << file << "," << line;
		 return err;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -