[ dataBase ] in KIDS 글 쓴 이(By): guest (parker) <rose.handysoft.> 날 짜 (Date): 1998년 7월 31일 금요일 오전 11시 48분 23초 제 목(Title): ODBC로 MS-Access프로그램 해보신분들 계신 ODBC API로 MS-Access DB를 다루는 있는 프로그래머입니다. 혹시 Binary Field에 대한 Insert에 대해서 알고 계신분이 있나해서요. Table의 구성이 (Field1 integer, Field2 LongBinary)일때, ODBC Programmer's guide에 의하면 아래와 같은 코딩을 하면 Binary Field에 대한 insert가 가능하다고 하는데 제가 하면 에러가 계속 발생해서요. indicator2 = SQL_LEN_DATA_AT_EXEC(0); rc = SQLPrepare(hstmt, "insert into test values (?, ?)", SQL_NTS); rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &ulField1, 0, &indicator1); rc = SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_LONGVARBIARY, 0, 0, 2, 0, &indicator2); rc = SQLExecute(hstmt); while (rc == SQL_NEED_DATA) { rc = SQLParamData(hstmt, &pToken); if (rc == SQL_NEED_DATA) { fid = open("C:\\picture.jpg", O_RDONLY|O_BINARY); if (fid != -1) { while ((rdcnt = read(fid, szBuffer, 1024)) > 0) { SQLPutData(hstmt, szBuffer, rdcnt); } close(fid); } } } 위 프로그램에서 SQLParamData가 두번째 호출되는 시점에 Function Sequence 에러가 발생합니다. 메뉴얼대로라면, SQL_SUCCESS나 SQL_SUCCESS_WITH_INFO가 리턴되어야 해야 하는데, 계속 -1이 리턴되는군요. 참 그리고 Bulk Insert가 가능한 MDB Driver가 있는가요? 한번에 몇백개의 레코드를 추가해야 하는 API가 있는데, 제가 가지고 있는 MDB Driver는 (Driver의 버전이 2.5이군요.) Bulk Insert를 지원하지 않는 것 같군요. 답장을 기다리겠습니다. ---- 지나가는 무명씨. |