|
AppBuilder中进行直接ODBC API数据库调用访问的基本方法!(12)
if(nErrResult == SQL_ERROR &brVBar¦ nErrResult == SQL_INVALID_HANDLE) break;
wsprintf(szBuffer, SQLERR_FORMAT, (LPSTR)szErrState, dwErrCode, (LPSTR)szErrText); iSize = strlen(szDispBuffer); if (iSize && (iSize+strlen(szBuffer)+1) >= 1000) break; if (iSize) strcat(szDispBuffer, "\n"); strcat(szDispBuffer, szBuffer); }
// display proper ERROR or WARNING message with proper title
if (nResult == SQL_SUCCESS_WITH_INFO) MessageBox(NULL, szDispBuffer, (fFirstRun? SQLWRNMSGTITLE : SQLWRNCNTDTITLE), MB_OK ¦ MB_ICONINFORMATION); else MessageBox(NULL, szDispBuffer, (fFirstRun? SQLERRMSGTITLE : SQLERRCNTDTITLE), MB_OK ¦ MB_ICONEXCLAMATION);
if (fFirstRun) fFirstRun = FALSE; } while (!(nErrResult == SQL_NO_DATA ¦¦ nErrResult == SQL_ERROR ¦¦ nErrResult == SQL_INVALID_HANDLE)); } 分配和释放语句
任何与处理和传递SQL语句相关的SQL函数都要求一个有效的语句句柄作为 参数。语句句柄很象环境或连接句柄,区别之处在于它引用SQL语句或者其它 返回结果的ODBC函数。一个连接句柄可以与几个语句句柄相关连,但每一个 语句句柄只能与一个连接句柄相关连。应用系统要想分配语句句柄,只需调用 下面描述的SQLAllocStmt即可。
SQLAllocStmt为语句句柄分配内存存储区,并将此句柄与连接句柄指定的 连接联系在一起。应用系统必须先用SQLAllocStmt为SQL语句分配内存,然后 才能提供引用某一特殊语句句柄的SQL语句。
SQLAllocStmt的语法如下: RETCODE SQLAllocStmt(hdbc,phstmt) SQLAllocStmt的返回码为: SQL-SUCCESS SQL-SUCCESS-WITH-INFO SQL-INVALID-HANDLE SQL-ERROR
SQLFreeStmt
SQLFreeStmt完成以下动作: .停止任何与指定语句句柄相关的、当前正在处理的SQL语句; 关闭任何与指定语句句柄相关的打开光标; 舍弃所有未完成的结果。 有选择的释放与指定语句句柄相关的所有资源;
SQLFreeStmt的语法为: RETCODE SQLFreeStmt(hstmt,fOption) SQLFreeStmt的返回码是: SQL-SUCCESS SQL-SUCCESS-WITH-INFO SQL-INVALID-HANDLE SQL-ERROR
最后
在我们的开发系统AppBuilder中你可以不必对上面的复杂的过程进行完整的了解,你也不必书写任何的调用代码,我们将这一切都自动为你产生,同时还和开发最终程序的界面融合在一起,一切都非常简单。为你的开发自动编写大量的代码,如果你需要看看,请到:www.ucancode.com中下在一个免费的版本。
|