📄 database.cpp
字号:
#include "Database.h"
Database::Database()
{
m_henv = NULL;
m_hdbc = NULL;
isOpen = false;
}
Database::~Database()
{
if (isOpen)
Close();
}
bool Database::IsOpen()
{
return isOpen;
}
bool Database::Open(String DSN, String user, String pass)
{
SQLRETURN ret;
if (isOpen || (ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_henv)) != SQL_SUCCESS)
return false;
SQLSetEnvAttr(m_henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, NULL);
if ((ret = SQLAllocHandle(SQL_HANDLE_DBC, m_henv, &m_hdbc) != SQL_SUCCESS))
{
SQLFreeHandle(SQL_HANDLE_ENV, m_henv);
return false;
}
if ((ret = SQLConnect(m_hdbc, DSN, SQL_NTS, user, SQL_NTS, pass, SQL_NTS)) != SQL_SUCCESS)
{
SQLFreeHandle(SQL_HANDLE_DBC, m_hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, m_henv);
return false;
}
isOpen = true;
return true;
}
void Database::Close()
{
if (isOpen)
{
SQLDisconnect(m_hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, m_hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, m_henv);
isOpen = false;
}
}
bool Database::Exec(SQLTCHAR* strSQL)
{
SQLRETURN ret;
HSTMT stmt;
bool flag = true;
if (!isOpen || (ret = SQLAllocHandle(SQL_HANDLE_STMT, m_hdbc, &stmt)) != SQL_SUCCESS)
return false;
if ((ret = SQLExecDirect(stmt, strSQL, SQL_NTS)) != SQL_SUCCESS)
flag = false;
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
return flag;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -