C++과 Microsoft SQL Server(MSSQL)를 함께 사용하여 데이터를 삭제하는 방법에 대해 알아볼 예정입니다. 이는 C++을 통한 데이터베이스 관리에 있어서 중요한 부분으로, 데이터베이스에서 불필요한 정보를 제거하거나 시스템을 유지 관리하는데 큰 도움이 됩니다.
데이터 삭제 작업은 Open Database Connectivity(ODBC)라는 표준 API를 사용합니다. 이를 이용하면 MSSQL외에도 다양한 데이터베이스 시스템에 접근할 수 있습니다.
1. ODBC 환경을 설정하고 데이터베이스에 연결
SQLHENV hEnv;
SQLHDBC hDbc;
// ODBC 환경을 초기화합니다.
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 데이터베이스에 연결합니다.
SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
SQLConnect(hDbc, (SQLWCHAR*)L"your_database_name", SQL_NTS, (SQLWCHAR*)L"your_username", SQL_NTS, (SQLWCHAR*)L"your_password", SQL_NTS);
2. SQL DELETE 명령을 이용하여 데이터를 삭제
SQLHSTMT hStmt;
// SQL DELETE 명령을 준비합니다.
SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
SQLPrepare(hStmt, (SQLWCHAR*)L"DELETE FROM your_table_name WHERE condition", SQL_NTS);
// SQL 명령을 실행합니다.
SQLExecute(hStmt);
조건문을 통해 특정 데이터만을 선택적으로 삭제할 수 있습니다. 예를 들어, 'age > 30'과 같이 조건을 설정하면 30세 초과의 데이터만 삭제하게 됩니다.
3. C++ MSSQL 연동하여 DELETE 하는 전체 코드
#include <sql.h>
#include <sqlext.h>
int main()
{
SQLHENV hEnv;
SQLHDBC hDbc;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
SQLConnect(hDbc, (SQLWCHAR*)L"your_database_name", SQL_NTS, (SQLWCHAR*)L"your_username", SQL_NTS, (SQLWCHAR*)L"your_password", SQL_NTS);
SQLHSTMT hStmt;
SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
SQLPrepare(hStmt, (SQLWCHAR*)L"DELETE FROM your_table_name WHERE condition", SQL_NTS);
SQLExecute(hStmt);
// 핸들 해제
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return 0;
}
댓글