|
|
|
@ -64,7 +64,7 @@ void odbc_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent); |
|
|
|
|
|
|
|
static int le_result, le_conn, le_pconn; |
|
|
|
|
|
|
|
#define SAFE_SQL_NTS(n) ((SWORD) ((n)?(SQL_NTS):0)) |
|
|
|
#define SAFE_SQL_NTS(n) ((SQLSMALLINT) ((n)?(SQL_NTS):0)) |
|
|
|
|
|
|
|
/* {{{ odbc_functions[] |
|
|
|
*/ |
|
|
|
@ -180,7 +180,7 @@ static void _free_odbc_result(zend_rsrc_list_entry *rsrc TSRMLS_DC) |
|
|
|
if (res->stmt) { |
|
|
|
#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) |
|
|
|
SQLTransact(res->conn_ptr->henv, res->conn_ptr->hdbc, |
|
|
|
(UWORD)SQL_COMMIT); |
|
|
|
(SQLUSMALLINT) SQL_COMMIT); |
|
|
|
#endif |
|
|
|
rc = SQLFreeStmt(res->stmt,SQL_DROP); |
|
|
|
/* We don't want the connection to be closed after the last statment has been closed |
|
|
|
@ -565,9 +565,9 @@ PHP_MINFO_FUNCTION(odbc) |
|
|
|
void odbc_sql_error(ODBC_SQL_ERROR_PARAMS) |
|
|
|
{ |
|
|
|
char state[6]; |
|
|
|
SDWORD error; /* Not used */ |
|
|
|
SQLINTEGER error; /* Not used */ |
|
|
|
char errormsg[SQL_MAX_MESSAGE_LENGTH]; |
|
|
|
SWORD errormsgsize; /* Not used */ |
|
|
|
SQLSMALLINT errormsgsize; /* Not used */ |
|
|
|
RETCODE rc; |
|
|
|
ODBC_SQL_ENV_T henv; |
|
|
|
ODBC_SQL_CONN_T conn; |
|
|
|
@ -641,8 +641,8 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) |
|
|
|
{ |
|
|
|
RETCODE rc; |
|
|
|
int i; |
|
|
|
SWORD colnamelen; /* Not used */ |
|
|
|
SDWORD displaysize; |
|
|
|
SQLSMALLINT colnamelen; /* Not used */ |
|
|
|
SQLLEN displaysize; |
|
|
|
|
|
|
|
result->values = (odbc_result_value *) safe_emalloc(sizeof(odbc_result_value), result->numcols, 0); |
|
|
|
|
|
|
|
@ -650,9 +650,9 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) |
|
|
|
result->binmode = ODBCG(defaultbinmode); |
|
|
|
|
|
|
|
for(i = 0; i < result->numcols; i++) { |
|
|
|
rc = SQLColAttributes(result->stmt, (UWORD)(i+1), SQL_COLUMN_NAME, |
|
|
|
rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_NAME, |
|
|
|
result->values[i].name, sizeof(result->values[i].name), &colnamelen, 0); |
|
|
|
rc = SQLColAttributes(result->stmt, (UWORD)(i+1), SQL_COLUMN_TYPE, |
|
|
|
rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_TYPE, |
|
|
|
NULL, 0, NULL, &result->values[i].coltype); |
|
|
|
|
|
|
|
/* Don't bind LONG / BINARY columns, so that fetch behaviour can |
|
|
|
@ -670,17 +670,17 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) |
|
|
|
#ifdef HAVE_ADABAS |
|
|
|
case SQL_TIMESTAMP: |
|
|
|
result->values[i].value = (char *)emalloc(27); |
|
|
|
SQLBindCol(result->stmt, (UWORD)(i+1), SQL_C_CHAR, result->values[i].value, |
|
|
|
SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, |
|
|
|
27, &result->values[i].vallen); |
|
|
|
break; |
|
|
|
#endif /* HAVE_ADABAS */ |
|
|
|
default: |
|
|
|
rc = SQLColAttributes(result->stmt, (UWORD)(i+1), SQL_COLUMN_DISPLAY_SIZE, |
|
|
|
rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE, |
|
|
|
NULL, 0, NULL, &displaysize); |
|
|
|
displaysize = displaysize <= result->longreadlen ? displaysize : |
|
|
|
result->longreadlen; |
|
|
|
result->values[i].value = (char *)emalloc(displaysize + 1); |
|
|
|
rc = SQLBindCol(result->stmt, (UWORD)(i+1), SQL_C_CHAR, result->values[i].value, |
|
|
|
rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, |
|
|
|
displaysize + 1, &result->values[i].vallen); |
|
|
|
break; |
|
|
|
} |
|
|
|
@ -702,7 +702,7 @@ void odbc_transact(INTERNAL_FUNCTION_PARAMETERS, int type) |
|
|
|
|
|
|
|
ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", le_conn, le_pconn); |
|
|
|
|
|
|
|
rc = SQLTransact(conn->henv, conn->hdbc, (UWORD)((type)?SQL_COMMIT:SQL_ROLLBACK)); |
|
|
|
rc = SQLTransact(conn->henv, conn->hdbc, (SQLUSMALLINT)((type)?SQL_COMMIT:SQL_ROLLBACK)); |
|
|
|
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { |
|
|
|
odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLTransact"); |
|
|
|
RETURN_FALSE; |
|
|
|
@ -727,7 +727,7 @@ static int _close_pconn_with_id(zend_rsrc_list_entry *le, int *id TSRMLS_DC) |
|
|
|
void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type) |
|
|
|
{ |
|
|
|
odbc_result *result; |
|
|
|
#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_OPENLINK) |
|
|
|
#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) |
|
|
|
/* this seems to be necessary for Solid2.3 ( tested by |
|
|
|
* tammy@synchronis.com) and Solid 3.0 (tested by eric@terra.telemediair.nl) |
|
|
|
* Solid does not seem to declare a SQLINTEGER, but it does declare a |
|
|
|
@ -736,7 +736,7 @@ void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type) |
|
|
|
*/ |
|
|
|
SDWORD len; |
|
|
|
#else |
|
|
|
SQLINTEGER len; |
|
|
|
SQLLEN len; |
|
|
|
#endif |
|
|
|
zval **pv_res, **pv_num; |
|
|
|
|
|
|
|
@ -763,7 +763,7 @@ void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type) |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
SQLColAttributes(result->stmt, (UWORD)Z_LVAL_PP(pv_num), |
|
|
|
SQLColAttributes(result->stmt, (SQLUSMALLINT)Z_LVAL_PP(pv_num), |
|
|
|
(SQLUSMALLINT) (type?SQL_COLUMN_SCALE:SQL_COLUMN_PRECISION), |
|
|
|
NULL, 0, NULL, &len); |
|
|
|
|
|
|
|
@ -841,7 +841,7 @@ PHP_FUNCTION(odbc_prepare) |
|
|
|
odbc_connection *conn; |
|
|
|
RETCODE rc; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD scrollopts; |
|
|
|
SQLUINTEGER scrollopts; |
|
|
|
#endif |
|
|
|
|
|
|
|
if (zend_get_parameters_ex(2, &pv_conn, &pv_query) == FAILURE) { |
|
|
|
@ -932,15 +932,15 @@ PHP_FUNCTION(odbc_execute) |
|
|
|
{ |
|
|
|
zval **pv_res, **pv_param_arr, **tmp; |
|
|
|
typedef struct params_t { |
|
|
|
SDWORD vallen; |
|
|
|
SQLLEN vallen; |
|
|
|
int fp; |
|
|
|
} params_t; |
|
|
|
params_t *params = NULL; |
|
|
|
char *filename; |
|
|
|
unsigned char otype; |
|
|
|
SWORD sqltype, ctype, scale; |
|
|
|
SWORD nullable; |
|
|
|
UDWORD precision; |
|
|
|
SQLSMALLINT sqltype, ctype, scale; |
|
|
|
SQLSMALLINT nullable; |
|
|
|
SQLULEN precision; |
|
|
|
odbc_result *result; |
|
|
|
int numArgs, i, ne; |
|
|
|
RETCODE rc; |
|
|
|
@ -997,7 +997,7 @@ PHP_FUNCTION(odbc_execute) |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
SQLDescribeParam(result->stmt, (UWORD)i, &sqltype, &precision, |
|
|
|
SQLDescribeParam(result->stmt, (SQLUSMALLINT)i, &sqltype, &precision, |
|
|
|
&scale, &nullable); |
|
|
|
params[i-1].vallen = Z_STRLEN_PP(tmp); |
|
|
|
params[i-1].fp = -1; |
|
|
|
@ -1044,7 +1044,7 @@ PHP_FUNCTION(odbc_execute) |
|
|
|
|
|
|
|
params[i-1].vallen = SQL_LEN_DATA_AT_EXEC(0); |
|
|
|
|
|
|
|
rc = SQLBindParameter(result->stmt, (UWORD)i, SQL_PARAM_INPUT, |
|
|
|
rc = SQLBindParameter(result->stmt, (SQLUSMALLINT)i, SQL_PARAM_INPUT, |
|
|
|
ctype, sqltype, precision, scale, |
|
|
|
(void *)params[i-1].fp, 0, |
|
|
|
¶ms[i-1].vallen); |
|
|
|
@ -1056,7 +1056,7 @@ PHP_FUNCTION(odbc_execute) |
|
|
|
params[i-1].vallen = SQL_NULL_DATA; |
|
|
|
} |
|
|
|
|
|
|
|
rc = SQLBindParameter(result->stmt, (UWORD)i, SQL_PARAM_INPUT, |
|
|
|
rc = SQLBindParameter(result->stmt, (SQLUSMALLINT)i, SQL_PARAM_INPUT, |
|
|
|
ctype, sqltype, precision, scale, |
|
|
|
Z_STRVAL_PP(tmp), 0, |
|
|
|
¶ms[i-1].vallen); |
|
|
|
@ -1131,7 +1131,8 @@ PHP_FUNCTION(odbc_execute) |
|
|
|
PHP_FUNCTION(odbc_cursor) |
|
|
|
{ |
|
|
|
zval **pv_res; |
|
|
|
SWORD len, max_len; |
|
|
|
SQLUSMALLINT max_len; |
|
|
|
SQLSMALLINT len; |
|
|
|
char *cursorname; |
|
|
|
odbc_result *result; |
|
|
|
RETCODE rc; |
|
|
|
@ -1150,12 +1151,12 @@ PHP_FUNCTION(odbc_cursor) |
|
|
|
|
|
|
|
if (max_len > 0) { |
|
|
|
cursorname = emalloc(max_len + 1); |
|
|
|
rc = SQLGetCursorName(result->stmt,cursorname,(SWORD)max_len,&len); |
|
|
|
rc = SQLGetCursorName(result->stmt,cursorname,(SQLSMALLINT)max_len,&len); |
|
|
|
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { |
|
|
|
char state[6]; /* Not used */ |
|
|
|
SDWORD error; /* Not used */ |
|
|
|
char errormsg[255]; |
|
|
|
SWORD errormsgsize; /* Not used */ |
|
|
|
SQLINTEGER error; /* Not used */ |
|
|
|
char errormsg[SQL_MAX_MESSAGE_LENGTH]; |
|
|
|
SQLSMALLINT errormsgsize; /* Not used */ |
|
|
|
|
|
|
|
SQLError( result->conn_ptr->henv, result->conn_ptr->hdbc, |
|
|
|
result->stmt, state, &error, errormsg, |
|
|
|
@ -1257,7 +1258,7 @@ PHP_FUNCTION(odbc_exec) |
|
|
|
odbc_connection *conn; |
|
|
|
RETCODE rc; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD scrollopts; |
|
|
|
SQLUINTEGER scrollopts; |
|
|
|
#endif |
|
|
|
|
|
|
|
numArgs = ZEND_NUM_ARGS(); |
|
|
|
@ -1351,12 +1352,12 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) |
|
|
|
int i; |
|
|
|
odbc_result *result; |
|
|
|
RETCODE rc; |
|
|
|
SWORD sql_c_type; |
|
|
|
SQLSMALLINT sql_c_type; |
|
|
|
char *buf = NULL; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD crow; |
|
|
|
UWORD RowStatus[1]; |
|
|
|
SDWORD rownum = -1; |
|
|
|
SQLULEN crow; |
|
|
|
SQLUSMALLINT RowStatus[1]; |
|
|
|
SQLLEN rownum = -1; |
|
|
|
zval **pv_res, **pv_row, *tmp; |
|
|
|
|
|
|
|
switch(ZEND_NUM_ARGS()) { |
|
|
|
@ -1435,7 +1436,7 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) |
|
|
|
break; |
|
|
|
} |
|
|
|
if (buf == NULL) buf = emalloc(result->longreadlen + 1); |
|
|
|
rc = SQLGetData(result->stmt, (UWORD)(i + 1), sql_c_type, |
|
|
|
rc = SQLGetData(result->stmt, (SQLUSMALLINT)(i + 1), sql_c_type, |
|
|
|
buf, result->longreadlen + 1, &result->values[i].vallen); |
|
|
|
|
|
|
|
if (rc == SQL_ERROR) { |
|
|
|
@ -1509,14 +1510,14 @@ PHP_FUNCTION(odbc_fetch_into) |
|
|
|
int numArgs, i; |
|
|
|
odbc_result *result; |
|
|
|
RETCODE rc; |
|
|
|
SWORD sql_c_type; |
|
|
|
SQLSMALLINT sql_c_type; |
|
|
|
char *buf = NULL; |
|
|
|
zval **pv_res, **pv_res_arr, *tmp; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
zval **pv_row; |
|
|
|
UDWORD crow; |
|
|
|
UWORD RowStatus[1]; |
|
|
|
SDWORD rownum = -1; |
|
|
|
SQLULEN crow; |
|
|
|
SQLUSMALLINT RowStatus[1]; |
|
|
|
SQLLEN rownum = -1; |
|
|
|
#endif /* HAVE_SQL_EXTENDED_FETCH */ |
|
|
|
|
|
|
|
numArgs = ZEND_NUM_ARGS(); |
|
|
|
@ -1595,7 +1596,7 @@ PHP_FUNCTION(odbc_fetch_into) |
|
|
|
} |
|
|
|
|
|
|
|
if (buf == NULL) buf = emalloc(result->longreadlen + 1); |
|
|
|
rc = SQLGetData(result->stmt, (UWORD)(i + 1),sql_c_type, |
|
|
|
rc = SQLGetData(result->stmt, (SQLUSMALLINT)(i + 1),sql_c_type, |
|
|
|
buf, result->longreadlen + 1, &result->values[i].vallen); |
|
|
|
|
|
|
|
if (rc == SQL_ERROR) { |
|
|
|
@ -1666,13 +1667,13 @@ PHP_FUNCTION(solid_fetch_prev) |
|
|
|
PHP_FUNCTION(odbc_fetch_row) |
|
|
|
{ |
|
|
|
int numArgs; |
|
|
|
SDWORD rownum = 1; |
|
|
|
SQLLEN rownum = 1; |
|
|
|
odbc_result *result; |
|
|
|
RETCODE rc; |
|
|
|
zval **pv_res, **pv_row; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD crow; |
|
|
|
UWORD RowStatus[1]; |
|
|
|
SQLULEN crow; |
|
|
|
SQLUSMALLINT RowStatus[1]; |
|
|
|
#endif |
|
|
|
|
|
|
|
numArgs = ZEND_NUM_ARGS(); |
|
|
|
@ -1728,15 +1729,15 @@ PHP_FUNCTION(odbc_result) |
|
|
|
{ |
|
|
|
char *field; |
|
|
|
int field_ind; |
|
|
|
SWORD sql_c_type = SQL_C_CHAR; |
|
|
|
SQLSMALLINT sql_c_type = SQL_C_CHAR; |
|
|
|
odbc_result *result; |
|
|
|
int i = 0; |
|
|
|
RETCODE rc; |
|
|
|
SDWORD fieldsize; |
|
|
|
SQLLEN fieldsize; |
|
|
|
zval **pv_res, **pv_field; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD crow; |
|
|
|
UWORD RowStatus[1]; |
|
|
|
SQLULEN crow; |
|
|
|
SQLUSMALLINT RowStatus[1]; |
|
|
|
#endif |
|
|
|
|
|
|
|
field_ind = -1; |
|
|
|
@ -1814,8 +1815,8 @@ PHP_FUNCTION(odbc_result) |
|
|
|
else |
|
|
|
fieldsize = result->longreadlen; |
|
|
|
} else { |
|
|
|
SQLColAttributes(result->stmt, (UWORD)(field_ind + 1), |
|
|
|
(UWORD)((sql_c_type == SQL_C_BINARY) ? SQL_COLUMN_LENGTH : |
|
|
|
SQLColAttributes(result->stmt, (SQLUSMALLINT)(field_ind + 1), |
|
|
|
(SQLUSMALLINT)((sql_c_type == SQL_C_BINARY) ? SQL_COLUMN_LENGTH : |
|
|
|
SQL_COLUMN_DISPLAY_SIZE), |
|
|
|
NULL, 0, NULL, &fieldsize); |
|
|
|
} |
|
|
|
@ -1826,7 +1827,7 @@ PHP_FUNCTION(odbc_result) |
|
|
|
/* SQLGetData will truncate CHAR data to fieldsize - 1 bytes and append \0. |
|
|
|
* For binary data it is truncated to fieldsize bytes. |
|
|
|
*/ |
|
|
|
rc = SQLGetData(result->stmt, (UWORD)(field_ind + 1), sql_c_type, |
|
|
|
rc = SQLGetData(result->stmt, (SQLUSMALLINT)(field_ind + 1), sql_c_type, |
|
|
|
field, fieldsize, &result->values[field_ind].vallen); |
|
|
|
|
|
|
|
if (rc == SQL_ERROR) { |
|
|
|
@ -1869,7 +1870,7 @@ PHP_FUNCTION(odbc_result) |
|
|
|
|
|
|
|
/* Call SQLGetData() until SQL_SUCCESS is returned */ |
|
|
|
while(1) { |
|
|
|
rc = SQLGetData(result->stmt, (UWORD)(field_ind + 1),sql_c_type, |
|
|
|
rc = SQLGetData(result->stmt, (SQLUSMALLINT)(field_ind + 1),sql_c_type, |
|
|
|
field, fieldsize, &result->values[field_ind].vallen); |
|
|
|
|
|
|
|
if (rc == SQL_ERROR) { |
|
|
|
@ -1904,10 +1905,10 @@ PHP_FUNCTION(odbc_result_all) |
|
|
|
odbc_result *result; |
|
|
|
RETCODE rc; |
|
|
|
zval **pv_res, **pv_format; |
|
|
|
SWORD sql_c_type; |
|
|
|
SQLSMALLINT sql_c_type; |
|
|
|
#ifdef HAVE_SQL_EXTENDED_FETCH |
|
|
|
UDWORD crow; |
|
|
|
UWORD RowStatus[1]; |
|
|
|
SQLULEN crow; |
|
|
|
SQLUSMALLINT RowStatus[1]; |
|
|
|
#endif |
|
|
|
|
|
|
|
numArgs = ZEND_NUM_ARGS(); |
|
|
|
@ -1973,7 +1974,7 @@ PHP_FUNCTION(odbc_result_all) |
|
|
|
|
|
|
|
if (buf == NULL) buf = emalloc(result->longreadlen); |
|
|
|
|
|
|
|
rc = SQLGetData(result->stmt, (UWORD)(i + 1),sql_c_type, |
|
|
|
rc = SQLGetData(result->stmt, (SQLUSMALLINT)(i + 1),sql_c_type, |
|
|
|
buf, result->longreadlen, &result->values[i].vallen); |
|
|
|
|
|
|
|
php_printf("<td>"); |
|
|
|
@ -2139,7 +2140,7 @@ int odbc_sqlconnect(odbc_connection **conn, char *db, char *uid, char *pwd, int |
|
|
|
} |
|
|
|
/* Possible fix for bug #10250 |
|
|
|
* Needs testing on UnixODBC < 2.0.5 though. */ |
|
|
|
#if defined(HAVE_EMPRESS) || defined(HAVE_UNIXODBC) || defined(PHP_WIN32) |
|
|
|
#if defined(HAVE_EMPRESS) || defined(HAVE_UNIXODBC) || defined(PHP_WIN32) || defined (HAVE_IODBC) |
|
|
|
/* * Uncomment the line above, and comment line below to fully test |
|
|
|
* #ifdef HAVE_EMPRESS */ |
|
|
|
{ |
|
|
|
@ -2315,7 +2316,7 @@ try_and_get_another_connection: |
|
|
|
if(ODBCG(check_persistent)){ |
|
|
|
RETCODE ret; |
|
|
|
UCHAR d_name[32]; |
|
|
|
SWORD len; |
|
|
|
SQLSMALLINT len; |
|
|
|
|
|
|
|
ret = SQLGetInfo(db_conn->hdbc, |
|
|
|
SQL_DATA_SOURCE_READ_ONLY, |
|
|
|
@ -2431,7 +2432,7 @@ PHP_FUNCTION(odbc_close) |
|
|
|
PHP_FUNCTION(odbc_num_rows) |
|
|
|
{ |
|
|
|
odbc_result *result; |
|
|
|
SDWORD rows; |
|
|
|
SQLLEN rows; |
|
|
|
zval **pv_res; |
|
|
|
|
|
|
|
if (zend_get_parameters_ex(1, &pv_res) == FAILURE) { |
|
|
|
@ -2547,7 +2548,7 @@ PHP_FUNCTION(odbc_field_type) |
|
|
|
{ |
|
|
|
odbc_result *result; |
|
|
|
char tmp[32]; |
|
|
|
SWORD tmplen; |
|
|
|
SQLSMALLINT tmplen; |
|
|
|
zval **pv_res, **pv_num; |
|
|
|
|
|
|
|
if (zend_get_parameters_ex(2, &pv_res, &pv_num) == FAILURE) { |
|
|
|
@ -2573,7 +2574,7 @@ PHP_FUNCTION(odbc_field_type) |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
SQLColAttributes(result->stmt, (UWORD)Z_LVAL_PP(pv_num), |
|
|
|
SQLColAttributes(result->stmt, (SQLUSMALLINT)Z_LVAL_PP(pv_num), |
|
|
|
SQL_COLUMN_TYPE_NAME, tmp, 31, &tmplen, NULL); |
|
|
|
RETURN_STRING(tmp,1) |
|
|
|
} |
|
|
|
@ -2667,7 +2668,7 @@ PHP_FUNCTION(odbc_autocommit) |
|
|
|
} |
|
|
|
RETVAL_TRUE; |
|
|
|
} else { |
|
|
|
SDWORD status; |
|
|
|
SQLINTEGER status; |
|
|
|
|
|
|
|
rc = SQLGetConnectOption(conn->hdbc, SQL_AUTOCOMMIT, (PTR)&status); |
|
|
|
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { |
|
|
|
@ -2898,7 +2899,7 @@ PHP_FUNCTION(odbc_columns) |
|
|
|
odbc_result *result = NULL; |
|
|
|
odbc_connection *conn; |
|
|
|
char *cat = NULL, *schema = NULL, *table = NULL, *column = NULL; |
|
|
|
SWORD cat_len=0, schema_len=0, table_len=0, column_len=0; |
|
|
|
SQLSMALLINT cat_len=0, schema_len=0, table_len=0, column_len=0; |
|
|
|
RETCODE rc; |
|
|
|
int argc; |
|
|
|
|
|
|
|
@ -3157,7 +3158,7 @@ PHP_FUNCTION(odbc_gettypeinfo) |
|
|
|
odbc_connection *conn; |
|
|
|
RETCODE rc; |
|
|
|
int argc; |
|
|
|
SWORD data_type = SQL_ALL_TYPES; |
|
|
|
SQLSMALLINT data_type = SQL_ALL_TYPES; |
|
|
|
|
|
|
|
argc = ZEND_NUM_ARGS(); |
|
|
|
if (argc == 1) { |
|
|
|
@ -3169,7 +3170,7 @@ PHP_FUNCTION(odbc_gettypeinfo) |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
convert_to_long_ex(pv_data_type); |
|
|
|
data_type = (SWORD) Z_LVAL_PP(pv_data_type); |
|
|
|
data_type = (SQLSMALLINT) Z_LVAL_PP(pv_data_type); |
|
|
|
} else { |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
@ -3453,8 +3454,8 @@ PHP_FUNCTION(odbc_specialcolumns) |
|
|
|
odbc_result *result = NULL; |
|
|
|
odbc_connection *conn; |
|
|
|
char *cat = NULL, *schema = NULL, *name = NULL; |
|
|
|
UWORD type; |
|
|
|
UWORD scope, nullable; |
|
|
|
SQLUSMALLINT type; |
|
|
|
SQLUSMALLINT scope, nullable; |
|
|
|
RETCODE rc; |
|
|
|
int argc; |
|
|
|
|
|
|
|
@ -3465,7 +3466,7 @@ PHP_FUNCTION(odbc_specialcolumns) |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
convert_to_long_ex(pv_type); |
|
|
|
type = (UWORD) Z_LVAL_PP(pv_type); |
|
|
|
type = (SQLUSMALLINT) Z_LVAL_PP(pv_type); |
|
|
|
convert_to_string_ex(pv_cat); |
|
|
|
cat = Z_STRVAL_PP(pv_cat); |
|
|
|
convert_to_string_ex(pv_schema); |
|
|
|
@ -3473,9 +3474,9 @@ PHP_FUNCTION(odbc_specialcolumns) |
|
|
|
convert_to_string_ex(pv_name); |
|
|
|
name = Z_STRVAL_PP(pv_name); |
|
|
|
convert_to_long_ex(pv_scope); |
|
|
|
scope = (UWORD) Z_LVAL_PP(pv_scope); |
|
|
|
scope = (SQLUSMALLINT) Z_LVAL_PP(pv_scope); |
|
|
|
convert_to_long_ex(pv_nullable); |
|
|
|
nullable = (UWORD) Z_LVAL_PP(pv_nullable); |
|
|
|
nullable = (SQLUSMALLINT) Z_LVAL_PP(pv_nullable); |
|
|
|
} else { |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
@ -3537,7 +3538,7 @@ PHP_FUNCTION(odbc_statistics) |
|
|
|
odbc_result *result = NULL; |
|
|
|
odbc_connection *conn; |
|
|
|
char *cat = NULL, *schema = NULL, *name = NULL; |
|
|
|
UWORD unique, reserved; |
|
|
|
SQLUSMALLINT unique, reserved; |
|
|
|
RETCODE rc; |
|
|
|
int argc; |
|
|
|
|
|
|
|
@ -3554,9 +3555,9 @@ PHP_FUNCTION(odbc_statistics) |
|
|
|
convert_to_string_ex(pv_name); |
|
|
|
name = Z_STRVAL_PP(pv_name); |
|
|
|
convert_to_long_ex(pv_unique); |
|
|
|
unique = (UWORD) Z_LVAL_PP(pv_unique); |
|
|
|
unique = (SQLUSMALLINT) Z_LVAL_PP(pv_unique); |
|
|
|
convert_to_long_ex(pv_reserved); |
|
|
|
reserved = (UWORD) Z_LVAL_PP(pv_reserved); |
|
|
|
reserved = (SQLUSMALLINT) Z_LVAL_PP(pv_reserved); |
|
|
|
} else { |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
|