Support for SQLRowCount() (odbc-sql-row-count)

This commit is contained in:
eknauel 2002-09-03 14:08:04 +00:00
parent f0fdf618fe
commit 7b409e8371
3 changed files with 50 additions and 3 deletions

View File

@ -1402,6 +1402,42 @@ s48_value odbc_sql_execute_direct(s48_value stmt_handle,
*
*/
s48_value odbc_sql_row_count(s48_value stmt_handle)
{
SQLHSTMT sh;
SQLRETURN retval;
SQLINTEGER rowcount;
sh = (SQLHSTMT) s48_extract_integer(stmt_handle);
ODBC_DEBUG_PRINTF("odbc_sql_row_count\n");
retval = SQLRowCount(sh, &rowcount);
switch (retval)
{
case SQL_SUCCESS: case SQL_SUCCESS_WITH_INFO:
{
return s48_enter_integer(rowcount);
}
case SQL_ERROR:
{
ODBC_RAISE_EXCEPTION("SQLRowCount returned SQL_ERROR");
break;
}
case SQL_INVALID_HANDLE:
{
ODBC_RAISE_EXCEPTION("SQLRowCount got invalid handle");
break;
}
default:
{
ODBC_RAISE_EXCEPTION("SQLRowCount returned unknown error code");
break;
}
}
}
s48_value odbc_sql_get_data(s48_value stmt_handle,
s48_value column_number,
s48_value target_type)
@ -2182,6 +2218,7 @@ void s48_init_odbc(void)
S48_EXPORT_FUNCTION(odbc_sql_execute_direct);
/* PART 7 */
S48_EXPORT_FUNCTION(odbc_sql_row_count);
S48_EXPORT_FUNCTION(odbc_sql_get_data);
S48_EXPORT_FUNCTION(odbc_sql_fetch);
S48_EXPORT_FUNCTION(odbc_sql_num_result_cols);

View File

@ -231,9 +231,11 @@ s48_value odbc_sql_execute_direct(s48_value stmt_handle, s48_value stmt);
*
*/
s48_value odbc_sql_row_count(s48_value stmt_handle);
s48_value odbc_sql_get_data(s48_value stmt_handle,
s48_value column_number,
s48_value target_type);
s48_value column_number,
s48_value target_type);
void check_sql_get_data_result(SQLRETURN retval, SQLHSTMT stmt_handle);
@ -273,7 +275,7 @@ s48_value odbc_sql_cancel(s48_value stmt_handle);
/* Commits or rolls back a transaction */
s48_value odbc_sql_endtran(s48_value handle_type, s48_value handle,
s48_value completion_type);
s48_value completion_type);
/*
*

View File

@ -622,6 +622,14 @@
;;; PART 7
(define (odbc-sql-row-count stmt-handle)
(check-arg statement-handle? stmt-handle odbc-sql-row-count)
(odbc-sql-row-count-internal (statement-handle-handle stmt-handle)))
(import-lambda-definition odbc-sql-row-count-internal
(stmt-handle)
"odbc_sql_row_count")
(define (odbc-sql-get-data stmt-handle column-number target-type)
(check-arg statement-handle? stmt-handle odbc-sql-get-data)
(odbc-sql-get-data-internal (statement-handle-handle stmt-handle)