Renamed some confusing parameter names
Support for SQLEndTransaction
This commit is contained in:
parent
41a3e0fcfb
commit
5ab07b6398
|
@ -179,30 +179,30 @@ s48_value odbc_alloc_statement_handle(s48_value conn_handle) {
|
||||||
|
|
||||||
/* Connect to a server */
|
/* Connect to a server */
|
||||||
s48_value odbc_sql_connect(s48_value connection_handle,
|
s48_value odbc_sql_connect(s48_value connection_handle,
|
||||||
s48_value server_name,
|
s48_value ds_name,
|
||||||
s48_value user_name,
|
s48_value user_name,
|
||||||
s48_value authentication)
|
s48_value authentication)
|
||||||
{
|
{
|
||||||
|
|
||||||
SQLHDBC ch;
|
SQLHDBC ch;
|
||||||
SQLCHAR *server, *user, *auth;
|
SQLCHAR *dsn, *user, *auth;
|
||||||
SQLRETURN retval;
|
SQLRETURN retval;
|
||||||
int server_len, user_len, auth_len;
|
int dsn_len, user_len, auth_len;
|
||||||
|
|
||||||
ODBC_DEBUG_PRINTF("odbc_sql_connect\n");
|
ODBC_DEBUG_PRINTF("odbc_sql_connect\n");
|
||||||
|
|
||||||
server = (SQLCHAR *) s48_extract_string(server_name);
|
dsn = (SQLCHAR *) s48_extract_string(ds_name);
|
||||||
user = (SQLCHAR *) s48_extract_string(user_name);
|
user = (SQLCHAR *) s48_extract_string(user_name);
|
||||||
auth = (SQLCHAR *) s48_extract_string(authentication);
|
auth = (SQLCHAR *) s48_extract_string(authentication);
|
||||||
|
|
||||||
server_len = S48_STRING_LENGTH(server_name);
|
dsn_len = S48_STRING_LENGTH(ds_name);
|
||||||
user_len = S48_STRING_LENGTH(user_name);
|
user_len = S48_STRING_LENGTH(user_name);
|
||||||
auth_len = S48_STRING_LENGTH(authentication);
|
auth_len = S48_STRING_LENGTH(authentication);
|
||||||
|
|
||||||
ch = (SQLHDBC) s48_extract_integer(connection_handle);
|
ch = (SQLHDBC) s48_extract_integer(connection_handle);
|
||||||
|
|
||||||
retval = SQLConnect(ch,
|
retval = SQLConnect(ch,
|
||||||
server, server_len,
|
dsn, dsn_len,
|
||||||
user, user_len,
|
user, user_len,
|
||||||
auth, auth_len);
|
auth, auth_len);
|
||||||
|
|
||||||
|
@ -1750,6 +1750,53 @@ 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)
|
||||||
|
{
|
||||||
|
|
||||||
|
SQLSMALLINT ht, ct;
|
||||||
|
SQLHANDLE h;
|
||||||
|
SQLRETURN retval;
|
||||||
|
|
||||||
|
ODBC_DEBUG_PRINTF("odbc_sql_endtran\n");
|
||||||
|
|
||||||
|
ht = (SQLSMALLINT) s48_extract_integer(handle_type);
|
||||||
|
h = (SQLHANDLE) s48_extract_integer(handle);
|
||||||
|
ct = (SQLSMALLINT) s48_extract_integer(completion_type);
|
||||||
|
|
||||||
|
retval = SQLEndTran(ht, h, ct);
|
||||||
|
|
||||||
|
switch (retval)
|
||||||
|
{
|
||||||
|
case SQL_SUCCESS:
|
||||||
|
{
|
||||||
|
return S48_TRUE;
|
||||||
|
}
|
||||||
|
case SQL_SUCCESS_WITH_INFO:
|
||||||
|
{
|
||||||
|
ODBC_DEBUG_DIAGREC(ht, h);
|
||||||
|
return S48_TRUE;
|
||||||
|
}
|
||||||
|
case SQL_ERROR:
|
||||||
|
{
|
||||||
|
ODBC_DEBUG_DIAGREC(ht, h);
|
||||||
|
ODBC_RAISE_EXCEPTION("SQLEndTran returned SQL_ERROR");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SQL_INVALID_HANDLE:
|
||||||
|
{
|
||||||
|
ODBC_RAISE_EXCEPTION("SQLEndTran got invalid handle");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
ODBC_RAISE_EXCEPTION("SQLEndTran returned unknown error code");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* PART 10
|
* PART 10
|
||||||
|
@ -2068,6 +2115,7 @@ void s48_init_odbc(void)
|
||||||
S48_EXPORT_FUNCTION(odbc_sql_free_statement);
|
S48_EXPORT_FUNCTION(odbc_sql_free_statement);
|
||||||
S48_EXPORT_FUNCTION(odbc_sql_close_cursor);
|
S48_EXPORT_FUNCTION(odbc_sql_close_cursor);
|
||||||
S48_EXPORT_FUNCTION(odbc_sql_cancel);
|
S48_EXPORT_FUNCTION(odbc_sql_cancel);
|
||||||
|
S48_EXPORT_FUNCTION(odbc_sql_endtran);
|
||||||
|
|
||||||
/* PART 10 */
|
/* PART 10 */
|
||||||
S48_EXPORT_FUNCTION(odbc_sql_disconnect);
|
S48_EXPORT_FUNCTION(odbc_sql_disconnect);
|
||||||
|
|
|
@ -87,11 +87,11 @@ void odbc_sql_set_env_attr(SQLHENV env_handle);
|
||||||
s48_value odbc_alloc_connection_handle(s48_value env_handle);
|
s48_value odbc_alloc_connection_handle(s48_value env_handle);
|
||||||
|
|
||||||
/* Given a valid connection handle get a statement handle */
|
/* Given a valid connection handle get a statement handle */
|
||||||
s48_value odbc_alloc_statement_handle(s48_value db_handle);
|
s48_value odbc_alloc_statement_handle(s48_value stmt_handle);
|
||||||
|
|
||||||
/* Connect to a server */
|
/* Connect to a server */
|
||||||
s48_value odbc_sql_connect(s48_value connection_handle,
|
s48_value odbc_sql_connect(s48_value connection_handle,
|
||||||
s48_value server_name,
|
s48_value ds_name,
|
||||||
s48_value user_name,
|
s48_value user_name,
|
||||||
s48_value authentication);
|
s48_value authentication);
|
||||||
|
|
||||||
|
@ -246,6 +246,10 @@ s48_value odbc_sql_close_cursor(s48_value stmt_handle);
|
||||||
/* Cancels an SQL statement */
|
/* Cancels an SQL statement */
|
||||||
s48_value odbc_sql_cancel(s48_value stmt_handle);
|
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);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* PART 10
|
* PART 10
|
||||||
|
|
Loading…
Reference in New Issue