개발/Database

SQLBindParameter SQLBindCol 차이

재근이 2021. 10. 14. 07:00
반응형

🤼‍♂️SQLBindParameter과 SQLBindCol의 차이

둘다 변수Bind 시키기위해서 사용되기 위해 사용되는 함수인데,

MSDN 설명만으로는 잘 이해가 가질 않았다.

 

예제 코드들을 보며 이해한 결과

SQLBindParameter는 함수의 매개변수처럼 Bind 시킨다는 개념이고,

SQLBindCol Return 되는 데이터(Row) 셋에 변수들을 Column마다 Bind 시키는 개념이다.

 

📌SQLBindParameter

SQLBindParameter는 함수의 매개변수와 동일한 개념으로 생각하면 되고,

함수매개변수와 마찬가지로 Input 뿐만 아니라 Output Bind 가능하다.
(함수의 포인터 또는 참조 변수 타입을 생각하면 된다.)

 

📌SQLBindCol

SQLBindCol은 여러 Column으로 이루어진 Row 데이터 셋 받을 때 사용한다.

OutputBind 하는 기능이다.

SQLBindCol은 예제 코드를 보며 이해하는 게 좋다.

 

📄예제 코드

특정 프로시저실행되고 리턴되는 데이터 리스트가 있다면,
리스트의 각 Row 데이터 셋에 Column연결시키고각 Row 데이터 의 값을 출력하는 코드이다.

SQLBindCol(sqlHandle, 0, SQL_C_LONG, &struct_type,data1, 4, len);
SQLBindCol(sqlHandle, 1, SQL_C_LONG, &struct_type,data2, 4, len);

if (SQLExecDirect(sqlHandle, "call dbo.proc", strlen("{call dbo.proc}"))) {

    while (SQLFetch(sqlHandle)) {
        printf("%d, %d\n", struct_type,data1, struct_type,data2);
    }
    
}
반응형