{
int i;
- if (res){
- if (res->values) {
+ if(res){
+ if(res->values){
for(i = 0; i < res->numcols; i++){
- if (res->values[i].value)
+ if(res->values[i].value)
efree(res->values[i].value);
}
efree(res->values);
res->values = NULL;
}
- if (res->stmt){
+ if(res->stmt){
#if HAVE_SOLID
SQLTransact(ODBCG(henv), res->conn_ptr->hdbc,
(UWORD)SQL_COMMIT);
* This is required for SQL Anywhere 5.5.00 on QNX 4.24 at least.
* The SQLANY_BUG should be defined in CFLAGS.
*/
- if ( SQLAllocConnect(ODBCG(henv), &foobar) != SQL_SUCCESS ) {
+ if(SQLAllocConnect(ODBCG(henv), &foobar) != SQL_SUCCESS){
ODBC_SQL_ERROR(SQL_NULL_HDBC, SQL_NULL_HSTMT, "SQLAllocConnect");
- } else {
+ }else{
rc = SQLConnect(foobar, ODBCG(defDB), SQL_NTS, ODBCG(defUser),
SQL_NTS, ODBCG(defPW), SQL_NTS);
if(rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO)
- SQLDisconnect( foobar );
- SQLFreeConnect( foobar );
+ SQLDisconnect(foobar);
+ SQLFreeConnect(foobar);
}
#endif
REGISTER_LONG_CONSTANT("ODBC_BINMODE_RETURN", 1, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("ODBC_BINMODE_CONVERT", 2, CONST_CS | CONST_PERSISTENT);
/* Define Constants for options
- these Constants are are defined in <sqlext.h>
+ these Constants are defined in <sqlext.h>
*/
REGISTER_LONG_CONSTANT("SQL_ODBC_CURSORS", SQL_ODBC_CURSORS, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_CUR_USE_DRIVER", SQL_CUR_USE_DRIVER, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_DATE", SQL_DATE, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_TIME", SQL_TIME, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_TIMESTAMP", SQL_TIMESTAMP, CONST_PERSISTENT | CONST_CS);
-#if defined( ODBCVER) && (ODBCVER >= 0x0300)
+#if defined(ODBCVER) && (ODBCVER >= 0x0300)
REGISTER_LONG_CONSTANT("SQL_TYPE_DATE", SQL_TYPE_DATE, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_TYPE_TIME", SQL_TYPE_TIME, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("SQL_TYPE_TIMESTAMP", SQL_TYPE_TIMESTAMP, CONST_PERSISTENT | CONST_CS);
SQLError(ODBCG(henv), conn, stmt, state,
&error, errormsg, sizeof(errormsg)-1, &errormsgsize);
- if (func) {
+ if(func){
php_error(E_WARNING, "SQL error: %s, SQL state %s in %s",
errormsg, state, func);
- } else {
+ }else{
php_error(E_WARNING, "SQL error: %s, SQL state %s",
errormsg, state);
}
void php3_odbc_fetch_attribs(INTERNAL_FUNCTION_PARAMETERS, int mode)
{
odbc_result *result;
- pval *pv_res, *pv_flag;
+ pval **pv_res, **pv_flag;
ODBCLS_FETCH();
PLS_FETCH();
- if (getParameters(ht, 2, &pv_res, &mode) == FAILURE)
+ if(getParametersEx(2, &pv_res, &pv_flag) == FAILURE)
WRONG_PARAM_COUNT;
- convert_to_long(pv_flag);
+ convert_to_long_ex(pv_flag);
- if(pv_res->value.lval){
+ if((*pv_res)->value.lval){
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
if(mode)
- result->longreadlen = pv_flag->value.lval;
+ result->longreadlen = (*pv_flag)->value.lval;
else
- result->binmode = pv_flag->value.lval;
+ result->binmode = (*pv_flag)->value.lval;
}else{
if(mode)
- ODBCG(defaultlrl) = pv_flag->value.lval;
+ ODBCG(defaultlrl) = (*pv_flag)->value.lval;
else
- ODBCG(defaultbinmode) = pv_flag->value.lval;
+ ODBCG(defaultbinmode) = (*pv_flag)->value.lval;
}
RETURN_TRUE;
}
{
odbc_connection *conn;
RETCODE rc;
- pval *pv_conn;
+ pval **pv_conn;
ODBCLS_FETCH();
- if(getParameters(ht, 1, &pv_conn) == FAILURE) {
+ if(getParametersEx(1, &pv_conn) == FAILURE) {
WRONG_PARAM_COUNT;
}
/* Main User Functions */
/* {{{ proto void odbc_close_all(void)
Close all ODBC connections */
-/* XXX Convert to new resource model */
PHP_FUNCTION(odbc_close_all)
{
void *ptr;
int i, nument = zend_hash_next_free_element(list);
for(i = 1; i < nument; i++){
- ptr = php3_list_find(i, &type);
+ ptr = zend_list_find(i, &type);
if(ptr && (type == le_conn || type == le_pconn)){
- php3_list_delete(i);
+ zend_list_delete(i);
}
}
}
Prepares a statement for execution */
PHP_FUNCTION(odbc_prepare)
{
- pval *pv_conn, *pv_query;
- char *query;
- odbc_result *result = NULL;
+ pval **pv_conn, **pv_query;
+ char *query;
+ odbc_result *result = NULL;
odbc_connection *conn;
RETCODE rc;
- if(getParameters(ht, 2, &pv_conn, &pv_query) == FAILURE){
+ if(getParametersEx(2, &pv_conn, &pv_query) == FAILURE){
WRONG_PARAM_COUNT;
}
conn = (odbc_connection *)zend_fetch_resource_ex(pv_conn, -1, "ODBC connection", 2, le_conn, le_pconn);
ZEND_VERIFY_RESOURCE(conn);
- convert_to_string(pv_query);
- query = pv_query->value.str.val;
+ convert_to_string_ex(pv_query);
+ query = (*pv_query)->value.str.val;
result = (odbc_result *)emalloc(sizeof(odbc_result));
if(result == NULL){
Execute a prepared statement */
PHP_FUNCTION(odbc_execute)
{
- pval *pv_res, *pv_param_arr, **tmp;
+ pval **pv_res, **pv_param_arr, **tmp;
typedef struct params_t {
SDWORD vallen;
int fp;
numArgs = ARG_COUNT(ht);
if(numArgs == 1){
- if(getParameters(ht, 1, &pv_res) == FAILURE)
+ if(getParametersEx(1, &pv_res) == FAILURE)
WRONG_PARAM_COUNT;
}else{
- if(getParameters(ht, 2, &pv_res, &pv_param_arr) == FAILURE)
+ if(getParametersEx(2, &pv_res, &pv_param_arr) == FAILURE)
WRONG_PARAM_COUNT;
- if(pv_param_arr->type != IS_ARRAY){
+ if((*pv_param_arr)->type != IS_ARRAY){
php_error(E_WARNING, "No array passed to odbc_execute()");
return;
}
}
if(result->numparams > 0){
- if((ne = zend_hash_num_elements(pv_param_arr->value.ht)) < result->numparams){
+ if((ne = zend_hash_num_elements((*pv_param_arr)->value.ht)) < result->numparams){
php_error(E_WARNING,"Not enough parameters (%d should be %d) given",
ne, result->numparams);
RETURN_FALSE;
}
- zend_hash_internal_pointer_reset(pv_param_arr->value.ht);
+ zend_hash_internal_pointer_reset((*pv_param_arr)->value.ht);
params = (params_t *)emalloc(sizeof(params_t) * result->numparams);
for(i = 1; i <= result->numparams; i++){
- if(zend_hash_get_current_data(pv_param_arr->value.ht, (void **) &tmp) == FAILURE){
+ if(zend_hash_get_current_data((*pv_param_arr)->value.ht, (void **) &tmp) == FAILURE){
php_error(E_WARNING,"Error getting parameter");
SQLFreeStmt(result->stmt,SQL_RESET_PARAMS);
efree(params);
(*tmp)->value.str.val, 0,
¶ms[i-1].vallen);
}
- zend_hash_move_forward(pv_param_arr->value.ht);
+ zend_hash_move_forward((*pv_param_arr)->value.ht);
}
}
/* Close cursor, needed for doing multiple selects */
Get cursor name */
PHP_FUNCTION(odbc_cursor)
{
- pval *pv_res;
+ pval **pv_res;
SWORD len, max_len;
char *cursorname;
odbc_result *result;
RETCODE rc;
ODBCLS_FETCH();
- if(getParameters(ht, 1, &pv_res) == FAILURE){
+ if(getParametersEx(1, &pv_res) == FAILURE){
WRONG_PARAM_COUNT;
}
/* {{{ proto int odbc_exec(int connection_id, string query [, int flags])
Prepare and execute an SQL statement */
+/* XXX Use flags */
PHP_FUNCTION(odbc_exec)
{
- pval *pv_conn, *pv_query, *pv_flags;
+ pval **pv_conn, **pv_query, **pv_flags;
int numArgs;
char *query;
odbc_result *result = NULL;
numArgs = ARG_COUNT(ht);
if(numArgs > 2){
- if(getParameters(ht, 3, &pv_conn, &pv_query, &pv_flags) == FAILURE)
+ if(getParametersEx(3, &pv_conn, &pv_query, &pv_flags) == FAILURE)
WRONG_PARAM_COUNT;
- convert_to_long(pv_flags);
+ convert_to_long_ex(pv_flags);
}else{
- if(getParameters(ht, 2, &pv_conn, &pv_query) == FAILURE)
+ if(getParametersEx(2, &pv_conn, &pv_query) == FAILURE)
WRONG_PARAM_COUNT;
}
conn = (odbc_connection *)zend_fetch_resource_ex(pv_conn, -1, "ODBC connection", 2, le_conn, le_pconn);
ZEND_VERIFY_RESOURCE(conn);
- convert_to_string(pv_query);
- query = pv_query->value.str.val;
+ convert_to_string_ex(pv_query);
+ query = (*pv_query)->value.str.val;
result = (odbc_result *)emalloc(sizeof(odbc_result));
if(result == NULL){
UDWORD crow;
UWORD RowStatus[1];
SDWORD rownum = -1;
- pval *pv_res, *pv_row, *pv_res_arr, *tmp;
+ pval **pv_res, **pv_row, **pv_res_arr, *tmp;
numArgs = ARG_COUNT(ht);
switch(numArgs){
case 2:
- if(getParameters(ht, 2, &pv_res, &pv_res_arr) == FAILURE)
+ if(getParametersEx(2, &pv_res, &pv_res_arr) == FAILURE)
WRONG_PARAM_COUNT;
break;
case 3:
- if(getParameters(ht, 3, &pv_res, &pv_row, &pv_res_arr) == FAILURE)
+ if(getParametersEx(3, &pv_res, &pv_row, &pv_res_arr) == FAILURE)
WRONG_PARAM_COUNT;
- convert_to_long(pv_row);
- rownum = pv_row->value.lval;
+ convert_to_long_ex(pv_row);
+ rownum = (*pv_row)->value.lval;
break;
default:
WRONG_PARAM_COUNT;
RETURN_FALSE;
}
#else
- pval *pv_res, *pv_res_arr, *tmp;
+ pval **pv_res, **pv_res_arr, *tmp;
numArgs = ARG_COUNT(ht);
- if(numArgs != 2 || getParameters(ht, 2, &pv_res, &pv_res_arr) == FAILURE){
+ if(numArgs != 2 || getParametersEx(2, &pv_res, &pv_res_arr) == FAILURE){
WRONG_PARAM_COUNT;
}
RETURN_FALSE;
}
- if(pv_res_arr->type != IS_ARRAY){
- if(array_init(pv_res_arr) == FAILURE){
+ if((*pv_res_arr)->type != IS_ARRAY){
+ if(array_init(*pv_res_arr) == FAILURE){
php_error(E_WARNING, "Can't convert to type Array");
RETURN_FALSE;
}
tmp->value.str.val = estrndup(result->values[i].value,tmp->value.str.len);
break;
}
- zend_hash_index_update(pv_res_arr->value.ht, i, &tmp, sizeof(pval *), NULL);
+ zend_hash_index_update((*pv_res_arr)->value.ht, i, &tmp, sizeof(pval *), NULL);
}
if (buf) efree(buf);
RETURN_LONG(result->numcols);
{
odbc_result *result;
RETCODE rc;
- pval *pv_res;
+ pval **pv_res;
- if(getParameters(ht, 1, &pv_res) == FAILURE)
+ if(getParametersEx(1, &pv_res) == FAILURE)
WRONG_PARAM_COUNT;
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
SDWORD rownum = 1;
odbc_result *result;
RETCODE rc;
- pval *pv_res, *pv_row;
+ pval **pv_res, **pv_row;
#if HAVE_SQL_EXTENDED_FETCH
UDWORD crow;
UWORD RowStatus[1];
numArgs = ARG_COUNT(ht);
if(numArgs == 1){
- if(getParameters(ht, 1, &pv_res) == FAILURE)
+ if(getParametersEx(1, &pv_res) == FAILURE)
WRONG_PARAM_COUNT;
}else{
- if(getParameters(ht, 2, &pv_res, &pv_row) == FAILURE)
+ if(getParametersEx(2, &pv_res, &pv_row) == FAILURE)
WRONG_PARAM_COUNT;
- convert_to_long(pv_row);
- rownum = pv_row->value.lval;
+ convert_to_long_ex(pv_row);
+ rownum = (*pv_row)->value.lval;
}
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
int i = 0;
RETCODE rc;
SDWORD fieldsize;
- pval *pv_res, *pv_field;
+ pval **pv_res, **pv_field;
#if HAVE_SQL_EXTENDED_FETCH
UDWORD crow;
UWORD RowStatus[1];
field_ind = -1;
field = NULL;
- if(ARG_COUNT(ht) != 2 || getParameters(ht, 2 , &pv_res, &pv_field) == FAILURE){
+ if(ARG_COUNT(ht) != 2 || getParametersEx(2 , &pv_res, &pv_field) == FAILURE){
WRONG_PARAM_COUNT;
}
- if(pv_field->type == IS_STRING){
- field = pv_field->value.str.val;
+ if((*pv_field)->type == IS_STRING){
+ field = (*pv_field)->value.str.val;
}else{
- convert_to_long(pv_field);
- field_ind = pv_field->value.lval - 1;
+ convert_to_long_ex(pv_field);
+ field_ind = (*pv_field)->value.lval - 1;
}
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
int i, numArgs;
odbc_result *result;
RETCODE rc;
- pval *pv_res, *pv_format;
+ pval **pv_res, **pv_format;
SWORD sql_c_type;
#if HAVE_SQL_EXTENDED_FETCH
UDWORD crow;
numArgs = ARG_COUNT(ht);
if(numArgs == 1){
- if(getParameters(ht, 1, &pv_res) == FAILURE)
+ if(getParametersEx(1, &pv_res) == FAILURE)
WRONG_PARAM_COUNT;
}else{
- if(getParameters(ht, 2, &pv_res, &pv_format) == FAILURE)
+ if(getParametersEx(2, &pv_res, &pv_format) == FAILURE)
WRONG_PARAM_COUNT;
}
if(numArgs == 1){
php_printf("<table><tr>");
}else{
- convert_to_string(pv_format);
- php_printf("<table %s ><tr>",pv_format->value.str.val);
+ convert_to_string_ex(pv_format);
+ php_printf("<table %s ><tr>",(*pv_format)->value.str.val);
}
for(i = 0; i < result->numcols; i++)
Free resources associated with a result */
PHP_FUNCTION(odbc_free_result)
{
- pval *pv_res;
+ pval **pv_res;
odbc_result *result;
- if(getParameters(ht, 1, &pv_res) == FAILURE){
+ if(getParametersEx(1, &pv_res) == FAILURE){
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
- zend_list_delete(pv_res->value.lval);
+ zend_list_delete((*pv_res)->value.lval);
RETURN_TRUE;
}
char *db = NULL;
char *uid = NULL;
char *pwd = NULL;
- pval *pv_db, *pv_uid, *pv_pwd, *pv_opt;
+ pval **pv_db, **pv_uid, **pv_pwd, **pv_opt;
odbc_connection *db_conn;
char *hashed_details;
int hashed_len, len, cur_opt;
*/
switch(ARG_COUNT(ht)) {
case 3:
- if (getParameters(ht, 3, &pv_db, &pv_uid, &pv_pwd) == FAILURE) {
+ if (getParametersEx(3, &pv_db, &pv_uid, &pv_pwd) == FAILURE) {
WRONG_PARAM_COUNT;
}
/* Use Default: Probably a better way to do this */
cur_opt = SQL_CUR_DEFAULT;
break;
case 4:
- if (getParameters(ht, 4, &pv_db, &pv_uid, &pv_pwd, &pv_opt) == FAILURE) {
+ if (getParametersEx(4, &pv_db, &pv_uid, &pv_pwd, &pv_opt) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_opt);
- cur_opt = pv_opt->value.lval;
+ convert_to_long_ex(pv_opt);
+ cur_opt = (*pv_opt)->value.lval;
/* Confirm the cur_opt range */
if (! (cur_opt == SQL_CUR_USE_IF_NEEDED ||
break;
}
- convert_to_string(pv_db);
- convert_to_string(pv_uid);
- convert_to_string(pv_pwd);
+ convert_to_string_ex(pv_db);
+ convert_to_string_ex(pv_uid);
+ convert_to_string_ex(pv_pwd);
- db = pv_db->value.str.val;
- uid = pv_uid->value.str.val;
- pwd = pv_pwd->value.str.val;
+ db = (*pv_db)->value.str.val;
+ uid = (*pv_uid)->value.str.val;
+ pwd = (*pv_pwd)->value.str.val;
if (ODBCG(allow_persistent) <= 0) {
persistent = 0;
Close an ODBC connection */
PHP_FUNCTION(odbc_close)
{
- pval *pv_conn;
+ pval **pv_conn;
odbc_connection *conn;
int ind;
ODBCLS_FETCH();
- if (getParameters(ht, 1, &pv_conn) == FAILURE) {
+ if (getParametersEx(1, &pv_conn) == FAILURE) {
WRONG_PARAM_COUNT;
}
conn = (odbc_connection *) zend_fetch_resource_ex(pv_conn, -1, "ODBC connection", 2, le_conn, le_pconn);
ZEND_VERIFY_RESOURCE(conn);
- zend_list_delete(pv_conn->value.lval);
+ zend_list_delete((*pv_conn)->value.lval);
}
/* }}} */
{
odbc_result *result;
SDWORD rows;
- pval *pv_res;
+ pval **pv_res;
- if(getParameters(ht, 1, &pv_res) == FAILURE){
+ if(getParametersEx(1, &pv_res) == FAILURE){
WRONG_PARAM_COUNT;
}
PHP_FUNCTION(odbc_num_fields)
{
odbc_result *result;
- pval *pv_res;
+ pval **pv_res;
- if(getParameters(ht, 1, &pv_res) == FAILURE){
+ if(getParametersEx(1, &pv_res) == FAILURE){
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
PHP_FUNCTION(odbc_field_name)
{
odbc_result *result;
- pval *pv_res, *pv_num;
+ pval **pv_res, **pv_num;
- if(getParameters(ht, 2, &pv_res, &pv_num) == FAILURE) {
+ if(getParametersEx(2, &pv_res, &pv_num) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_num);
+ convert_to_long_ex(pv_num);
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
RETURN_FALSE;
}
- if(pv_num->value.lval > result->numcols){
+ if((*pv_num)->value.lval > result->numcols){
php_error(E_WARNING, "Field index larger than number of fields");
RETURN_FALSE;
}
- if(pv_num->value.lval < 1){
+ if((*pv_num)->value.lval < 1){
php_error(E_WARNING, "Field numbering starts at 1");
RETURN_FALSE;
}
- RETURN_STRING(result->values[pv_num->value.lval - 1].name, 1)
+ RETURN_STRING(result->values[(*pv_num)->value.lval - 1].name, 1)
}
/* }}} */
odbc_result *result;
char tmp[32];
SWORD tmplen;
- pval *pv_res, *pv_num;
+ pval **pv_res, **pv_num;
- if(getParameters(ht, 2, &pv_res, &pv_num) == FAILURE) {
+ if(getParametersEx(2, &pv_res, &pv_num) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_num);
+ convert_to_long_ex(pv_num);
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
RETURN_FALSE;
}
- if(pv_num->value.lval > result->numcols){
+ if((*pv_num)->value.lval > result->numcols){
php_error(E_WARNING, "Field index larger than number of fields");
RETURN_FALSE;
}
- if(pv_num->value.lval < 1){
+ if((*pv_num)->value.lval < 1){
php_error(E_WARNING, "Field numbering starts at 1");
RETURN_FALSE;
}
- SQLColAttributes(result->stmt, (UWORD)pv_num->value.lval,
+ SQLColAttributes(result->stmt, (UWORD)(*pv_num)->value.lval,
SQL_COLUMN_TYPE_NAME, tmp, 31, &tmplen, NULL);
RETURN_STRING(tmp,1)
}
{
odbc_result *result;
SDWORD len;
- pval *pv_res, *pv_num;
+ pval **pv_res, **pv_num;
- if(getParameters(ht, 2, &pv_res, &pv_num) == FAILURE) {
+ if(getParametersEx(2, &pv_res, &pv_num) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_num);
+ convert_to_long_ex(pv_num);
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
RETURN_FALSE;
}
- if(pv_num->value.lval > result->numcols){
+ if((*pv_num)->value.lval > result->numcols){
php_error(E_WARNING, "Field index larger than number of fields");
RETURN_FALSE;
}
- if(pv_num->value.lval < 1){
+ if((*pv_num)->value.lval < 1){
php_error(E_WARNING, "Field numbering starts at 1");
RETURN_FALSE;
}
- SQLColAttributes(result->stmt, (UWORD)pv_num->value.lval,
+ SQLColAttributes(result->stmt, (UWORD)(*pv_num)->value.lval,
SQL_COLUMN_PRECISION, NULL, 0, NULL, &len);
RETURN_LONG(len);
char *fname;
odbc_result *result;
int i;
- pval *pv_res, *pv_name;
+ pval **pv_res, **pv_name;
- if(getParameters(ht, 2, &pv_res, &pv_name) == FAILURE) {
+ if(getParametersEx(2, &pv_res, &pv_name) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_name);
- fname = pv_name->value.str.val;
-
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
if(result->numcols == 0){
php_error(E_WARNING, "No tuples available at this result index");
RETURN_FALSE;
}
-
+
+ convert_to_string_ex(pv_name);
+ fname = (*pv_name)->value.str.val;
+
field_ind = -1;
for(i = 0; i < result->numcols; i++){
if(strcasecmp(result->values[i].name, fname) == 0)
{
odbc_connection *conn;
RETCODE rc;
- pval *pv_conn, *pv_onoff = NULL;
+ pval **pv_conn, **pv_onoff = NULL;
int argc;
argc = ARG_COUNT(ht);
if(argc == 2){
- if(getParameters(ht, 2, &pv_conn, &pv_onoff) == FAILURE) {
+ if(getParametersEx(2, &pv_conn, &pv_onoff) == FAILURE) {
WRONG_PARAM_COUNT;
}
}else if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else{
conn = (odbc_connection *) zend_fetch_resource_ex(pv_conn, -1, "ODBC connection", 2, le_conn, le_pconn);
ZEND_VERIFY_RESOURCE(conn);
- if(pv_onoff){
- convert_to_long(pv_onoff);
+ if((*pv_onoff)){
+ convert_to_long_ex(pv_onoff);
rc = SQLSetConnectOption(conn->hdbc, SQL_AUTOCOMMIT,
- (pv_onoff->value.lval) ?
+ ((*pv_onoff)->value.lval) ?
SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF);
if(rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){
ODBC_SQL_ERROR(conn->hdbc, SQL_NULL_HSTMT, "Set autocommit");
odbc_connection *conn;
odbc_result *result;
RETCODE rc;
- pval *arg1, *arg2, *arg3, *arg4;
+ pval **pv_handle, **pv_which, **pv_opt, **pv_val;
- if ( getParameters(ht, 4, &arg1, &arg2, &arg3, &arg4) == FAILURE) {
+ if ( getParametersEx(4, &pv_handle, &pv_which, &pv_opt, &pv_val) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_long(arg2);
- convert_to_long(arg3);
- convert_to_long(arg4);
+ convert_to_long_ex(pv_which);
+ convert_to_long_ex(pv_opt);
+ convert_to_long_ex(pv_val);
- switch (arg2->value.lval) {
+ switch ((*pv_which)->value.lval) {
case 1: /* SQLSetConnectOption */
- conn = (odbc_connection *) zend_fetch_resource_ex(arg1, -1, "ODBC connection",
+ conn = (odbc_connection *) zend_fetch_resource_ex(pv_handle, -1, "ODBC connection",
2, le_conn, le_pconn);
ZEND_VERIFY_RESOURCE(conn);
if(conn->persistent){
php_error(E_WARNING, "Can't set option for persistent connection");
RETURN_FALSE;
}
- rc = SQLSetConnectOption(conn->hdbc, (unsigned short)(arg3->value.lval), (arg4->value.lval));
+ rc = SQLSetConnectOption(conn->hdbc, (unsigned short)((*pv_opt)->value.lval), (*pv_val)->value.lval);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){
ODBC_SQL_ERROR(conn->hdbc, SQL_NULL_HSTMT, "SetConnectOption");
RETURN_FALSE;
}
break;
case 2: /* SQLSetStmtOption */
- ZEND_FETCH_RESOURCE(result, odbc_result *, arg1, -1, "ODBC result", le_result);
+ ZEND_FETCH_RESOURCE(result, odbc_result *, pv_handle, -1, "ODBC result", le_result);
- rc = SQLSetStmtOption(result->stmt, (unsigned short)(arg3->value.lval), (arg4->value.lval));
+ rc = SQLSetStmtOption(result->stmt, (unsigned short)((*pv_opt)->value.lval), ((*pv_val)->value.lval));
+
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){
ODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SetStmtOption");
RETURN_FALSE;
call the SQLTables function */
PHP_FUNCTION(odbc_tables)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_table, *pv_type;
+ pval **pv_res, **pv_conn, **pv_cat, **pv_schema, **pv_table, **pv_type;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *table = NULL, *type = NULL;
+ char *cat = NULL, *schema = NULL, *table = NULL, *type = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else if(argc == 5){
- if(getParameters(ht, 5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_type) == FAILURE){
+ if(getParametersEx(5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_type) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_table);
- table = pv_table->value.str.val;
- convert_to_string(pv_type);
- type = pv_type->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_table);
+ table = (*pv_table)->value.str.val;
+ convert_to_string_ex(pv_type);
+ type = (*pv_type)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLColumns function */
PHP_FUNCTION(odbc_columns)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_table, *pv_column;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_table, **pv_column;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *table = NULL, *column = NULL;
+ char *cat = NULL, *schema = NULL, *table = NULL, *column = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else if(argc == 5){
- if(getParameters(ht, 5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_column) == FAILURE){
+ if(getParametersEx(5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_column) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_table);
- table = pv_table->value.str.val;
- convert_to_string(pv_column);
- column = pv_column->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_table);
+ table = (*pv_table)->value.str.val;
+ convert_to_string_ex(pv_column);
+ column = (*pv_column)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLColumnPrivileges function */
PHP_FUNCTION(odbc_columnprivileges)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_table, *pv_column;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_table, **pv_column;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *table = NULL, *column = NULL;
+ char *cat = NULL, *schema = NULL, *table = NULL, *column = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 5){
- if(getParameters(ht, 5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_column) == FAILURE){
+ if(getParametersEx(5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_column) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_table);
- table = pv_table->value.str.val;
- convert_to_string(pv_column);
- column = pv_column->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_table);
+ table = (*pv_table)->value.str.val;
+ convert_to_string_ex(pv_column);
+ column = (*pv_column)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLForeignKeys function */
PHP_FUNCTION(odbc_foreignkeys)
{
- pval *pv_res, *pv_conn, *pv_pcat, *pv_pschema, *pv_ptable;
- pval *pv_fcat, *pv_fschema, *pv_ftable;
+ pval **pv_conn, **pv_pcat, **pv_pschema, **pv_ptable;
+ pval **pv_fcat, **pv_fschema, **pv_ftable;
odbc_result *result = NULL;
odbc_connection *conn;
- char *pcat = NULL, *pschema = NULL, *ptable = NULL;
- char *fcat = NULL, *fschema = NULL, *ftable = NULL;
+ char *pcat = NULL, *pschema = NULL, *ptable = NULL;
+ char *fcat = NULL, *fschema = NULL, *ftable = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 7){
- if(getParameters(ht, 7, &pv_conn, &pv_pcat, &pv_pschema, &pv_ptable,
+ if(getParametersEx(7, &pv_conn, &pv_pcat, &pv_pschema, &pv_ptable,
&pv_fcat, &pv_fschema, &pv_ftable) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_pcat);
- pcat = pv_pcat->value.str.val;
- convert_to_string(pv_pschema);
- pschema = pv_pschema->value.str.val;
- convert_to_string(pv_ptable);
- ptable = pv_ptable->value.str.val;
- convert_to_string(pv_fcat);
- fcat = pv_fcat->value.str.val;
- convert_to_string(pv_fschema);
- fschema = pv_fschema->value.str.val;
- convert_to_string(pv_ftable);
- ftable = pv_ftable->value.str.val;
+ convert_to_string_ex(pv_pcat);
+ pcat = (*pv_pcat)->value.str.val;
+ convert_to_string_ex(pv_pschema);
+ pschema = (*pv_pschema)->value.str.val;
+ convert_to_string_ex(pv_ptable);
+ ptable = (*pv_ptable)->value.str.val;
+ convert_to_string_ex(pv_fcat);
+ fcat = (*pv_fcat)->value.str.val;
+ convert_to_string_ex(pv_fschema);
+ fschema = (*pv_fschema)->value.str.val;
+ convert_to_string_ex(pv_ftable);
+ ftable = (*pv_ftable)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLGetTypeInfo function */
PHP_FUNCTION(odbc_gettypeinfo)
{
- pval *pv_res, *pv_conn, *pv_data_type;
+ pval **pv_conn, **pv_data_type;
odbc_result *result = NULL;
odbc_connection *conn;
RETCODE rc;
argc = ARG_COUNT(ht);
if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else if(argc == 2){
- if(getParameters(ht, 2, &pv_conn, &pv_data_type) == FAILURE){
+ if(getParametersEx(2, &pv_conn, &pv_data_type) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_data_type);
- data_type = pv_data_type->value.lval;
+ convert_to_long_ex(pv_data_type);
+ data_type = (*pv_data_type)->value.lval;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLPrimaryKeys function */
PHP_FUNCTION(odbc_primarykeys)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_table;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_table;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *table = NULL;
+ char *cat = NULL, *schema = NULL, *table = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 4){
- if(getParameters(ht, 4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE){
+ if(getParametersEx(4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_table);
- table = pv_table->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_table);
+ table = (*pv_table)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLProcedureColumns function */
PHP_FUNCTION(odbc_procedurecolumns)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_proc, *pv_col;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_proc, **pv_col;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *proc = NULL, *col = NULL;
+ char *cat = NULL, *schema = NULL, *proc = NULL, *col = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else if(argc == 5){
- if(getParameters(ht, 5, &pv_conn, &pv_cat, &pv_schema, &pv_proc, &pv_col) == FAILURE){
+ if(getParametersEx(5, &pv_conn, &pv_cat, &pv_schema, &pv_proc, &pv_col) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_proc);
- proc = pv_proc->value.str.val;
- convert_to_string(pv_col);
- col = pv_col->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_proc);
+ proc = (*pv_proc)->value.str.val;
+ convert_to_string_ex(pv_col);
+ col = (*pv_col)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLProcedures function */
PHP_FUNCTION(odbc_procedures)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_proc;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_proc;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *proc = NULL;
+ char *cat = NULL, *schema = NULL, *proc = NULL;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 1){
- if(getParameters(ht, 1, &pv_conn) == FAILURE){
+ if(getParametersEx(1, &pv_conn) == FAILURE){
WRONG_PARAM_COUNT;
}
}else if(argc == 4){
- if(getParameters(ht, 4, &pv_conn, &pv_cat, &pv_schema, &pv_proc) == FAILURE){
+ if(getParametersEx(4, &pv_conn, &pv_cat, &pv_schema, &pv_proc) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_proc);
- proc = pv_proc->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_proc);
+ proc = (*pv_proc)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}
}
result->numparams = 0;
- SQLNumResultCols(result->stmt, &(result->numcols));
+ SQLNumResultCols(result->stmt, &(result->numcols));
if(result->numcols > 0){
if(!odbc_bindcols(result)){
call the SQLSpecialColumns function */
PHP_FUNCTION(odbc_specialcolumns)
{
- pval *pv_res, *pv_conn, *pv_type, *pv_cat, *pv_schema, *pv_name;
- pval *pv_scope, *pv_nullable;
+ pval **pv_conn, **pv_type, **pv_cat, **pv_schema, **pv_name;
+ pval **pv_scope, **pv_nullable;
odbc_result *result = NULL;
odbc_connection *conn;
- char *cat = NULL, *schema = NULL, *name = NULL;
- int type, scope, nullable;
+ char *cat = NULL, *schema = NULL, *name = NULL;
+ int type, scope, nullable;
RETCODE rc;
int argc;
argc = ARG_COUNT(ht);
if(argc == 7){
- if(getParameters(ht, 7, &pv_conn, &pv_type, &pv_cat, &pv_schema,
+ if(getParametersEx(7, &pv_conn, &pv_type, &pv_cat, &pv_schema,
&pv_name, &pv_scope, &pv_nullable) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_long(pv_type);
- type = pv_cat->value.lval;
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_name);
- name = pv_name->value.str.val;
- convert_to_long(pv_scope);
- scope = pv_scope->value.lval;
- convert_to_long(pv_nullable);
- nullable = pv_nullable->value.lval;
+ convert_to_long_ex(pv_type);
+ type = (*pv_cat)->value.lval;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_name);
+ name = (*pv_name)->value.str.val;
+ convert_to_long_ex(pv_scope);
+ scope = (*pv_scope)->value.lval;
+ convert_to_long_ex(pv_nullable);
+ nullable = (*pv_nullable)->value.lval;
}else{
WRONG_PARAM_COUNT;
}
call the SQLStatistics function */
PHP_FUNCTION(odbc_statistics)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_name;
- pval *pv_unique, *pv_reserved;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_name;
+ pval **pv_unique, **pv_reserved;
odbc_result *result = NULL;
odbc_connection *conn;
char *cat = NULL, *schema = NULL, *name = NULL;
argc = ARG_COUNT(ht);
if(argc == 6){
- if(getParameters(ht, 6, &pv_conn, &pv_cat, &pv_schema,
+ if(getParametersEx(6, &pv_conn, &pv_cat, &pv_schema,
&pv_name, &pv_unique, &pv_reserved) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_name);
- name = pv_name->value.str.val;
- convert_to_long(pv_unique);
- unique = pv_unique->value.lval;
- convert_to_long(pv_reserved);
- reserved = pv_reserved->value.lval;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_name);
+ name = (*pv_name)->value.str.val;
+ convert_to_long_ex(pv_unique);
+ unique = (*pv_unique)->value.lval;
+ convert_to_long_ex(pv_reserved);
+ reserved = (*pv_reserved)->value.lval;
}else{
WRONG_PARAM_COUNT;
}
call the SQLTablePrivilegess function */
PHP_FUNCTION(odbc_tableprivileges)
{
- pval *pv_res, *pv_conn, *pv_cat, *pv_schema, *pv_table;
+ pval **pv_conn, **pv_cat, **pv_schema, **pv_table;
odbc_result *result = NULL;
odbc_connection *conn;
char *cat = NULL, *schema = NULL, *table = NULL;
argc = ARG_COUNT(ht);
if(argc == 4){
- if(getParameters(ht, 4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE){
+ if(getParametersEx(4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE){
WRONG_PARAM_COUNT;
}
- convert_to_string(pv_cat);
- cat = pv_cat->value.str.val;
- convert_to_string(pv_schema);
- schema = pv_schema->value.str.val;
- convert_to_string(pv_table);
- table = pv_table->value.str.val;
+ convert_to_string_ex(pv_cat);
+ cat = (*pv_cat)->value.str.val;
+ convert_to_string_ex(pv_schema);
+ schema = (*pv_schema)->value.str.val;
+ convert_to_string_ex(pv_table);
+ table = (*pv_table)->value.str.val;
}else{
WRONG_PARAM_COUNT;
}