본문 바로가기
프로그래밍/C&C++

C++로 MSSQL 데이터베이스에서 데이터 삭제(DELETE)하는 방법

by wyatti 2023. 6. 6.

이 포스트에서는 C++를 이용하여 MSSQL 데이터베이스에서 데이터를 삭제하는 방법을 단계별로 설명합니다. 필요한 모든 과정을 소개하며, 각 단계별로 필요한 코드를 제공합니다.
C++ MSSQL 연동 하여 DELETE 하는 방법

 

C++과 Microsoft SQL Server(MSSQL)를 함께 사용하여 데이터를 삭제하는 방법에 대해 알아볼 예정입니다. 이는 C++을 통한 데이터베이스 관리에 있어서 중요한 부분으로, 데이터베이스에서 불필요한 정보를 제거하거나 시스템을 유지 관리하는데 큰 도움이 됩니다.

 

C++ MSSQL Select

 

C++ MSSQL 데이터 Insert

 

데이터 삭제 작업은 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;
}

 

C++ MSSQL Select

 

C++ MSSQL 데이터 Insert

댓글