2,596
社区成员
发帖
与我相关
我的任务
分享
/********************************************************************
函数名称: SendSQL
功能: 发送SQL语句
参数: 无
返回值: 无
*********************************************************************/
int SybaseDBConnect::SendSQL(const string &Sql)
{
CS_RETCODE RetCode;
DataBaseError Result;
m_IsFail = false;
//清空错误描述
m_ErrorString = "";
if (NULL != m_pCommand)
{
//防止之前的结果没取完,创建之前先处理完这些结果集
//如果还没有全部fetch,需要清除结果集。
if (!m_FetchAll)
{
while (NULL != GetResultSet() );
}
m_SqlAndError.m_Sql = Sql;
RetCode = ct_command( m_pCommand, CS_LANG_CMD, (CS_CHAR*)Sql.c_str(), CS_NULLTERM, CS_UNUSED );
if (CS_SUCCEED == RetCode)
{
Result = DB_SUCCEED;
}
else
{
Result = DB_CONNECT_FAIL;
m_IsConnect = false;
}
}
else
{
Result = DB_HANDL_IS_NULL;
m_ErrorString = "db handler is null.";
}
m_IsFail = (DB_SUCCEED == Result)?(false):(true);
return Result;
}
/********************************************************************
函数名称: ExecSQL
功能: 运行sql
参数: 无
返回值: 如果成功,返回true,失败返回false
*********************************************************************/
int SybaseDBConnect::ExecSQL()
{
CS_RETCODE RetCode;
int iResult;
m_IsFail = false;
if (NULL != m_pCommand)
{
RetCode = ct_send(m_pCommand);
if (CS_SUCCEED == RetCode)
{
iResult = DB_SUCCEED;
//标记需要fetch结果集
m_FetchAll = false;
}
else
{
m_IsConnect = false;
iResult = DB_DISCONNECT;
}
}
else
{
iResult = DB_HANDL_IS_NULL;
m_ErrorString = "db handler is null.";
}
m_IsFail = (DB_SUCCEED == iResult)?(false):(true);
return iResult;
}
/********************************************************************
函数名称: DisConnectDBServer
功能: 断开数据库连接
参数: 无
返回值: 无
*********************************************************************/
void SybaseDBConnect::DisConnectDBServer()
{
CS_RETCODE RetCode = CS_SUCCEED;
m_IsFail = false;
if (NULL != m_pConnection)
{
//防止之前的结果没取完,创建之前先处理完这些结果集
//如果还没有全部fetch,需要清除结果集。
if (!m_FetchAll)
{
while (NULL != GetResultSet() );
}
RetCode = ct_close(m_pConnection, CS_FORCE_CLOSE);
}
m_IsFail = (CS_SUCCEED == RetCode)?(false):(true);
m_IsConnect = false;
}