_ret = SQLAllocEnv(&henv);
_ret = SQLAllocConnect(henv, &hdbc);

_ret = SQLConnect(hdbc,(UCHAR *)"데이타베이스명",SQL_NTS,
                (UCHAR *)"아이디",SQL_NTS,(UCHAR *)"패스워드",SQL_NTS);
if(_ret == SQL_SUCCESS || _ret == SQL_SUCCESS_WITH_INFO){
        printf("db열기 성공");
}else{
        printf("db열기 실패");
}
_ret = SQLAllocStmt(hdbc,&hstmt);
{
        UCHAR select[] = "SELECT bname, load_no  FROM OBorrow ";

        _ret = SQLPrepare(hstmt,select,SQL_NTS);
                
        _ret = SQLBindCol(hstmt,1,SQL_C_CHAR,(PTR) bname1,
                         (SDWORD)sizeof(bname),&bnamelen1);
        _ret = SQLBindCol(hstmt, 2, SQL_C_LONG, (PTR) &load_no1,
                         (SDWORD)sizeof(SDWORD), (SDWORD*)NULL);
        _ret = SQLExecute(hstmt);
}

1. 기본 흐름이 보통 위에 소스처럼 하나요?
2. 그리고 SQLExecute하기 전에 꼭 SQLPrepare, SQLBindCol 써야 하나요? 의미가 무엇인지..
3. SQLBindCol 말고 SQLBindParameter 도 있던데.. 어떤 차이인지..

아시는 분 좀 알려주세요 ㅠ.ㅠ 이번 학기 일을 많이 벌려놔서 수습이 어렵네요 ;;