summaryrefslogtreecommitdiff
path: root/ext/ingres_ii/ii.c
diff options
context:
space:
mode:
authorHénot David <henot@php.net>2000-07-17 23:57:36 +0000
committerHénot David <henot@php.net>2000-07-17 23:57:36 +0000
commit63a31786b65c714c8a411707f305708dac296c4b (patch)
tree341b9f393e7685a7cc58cc27d49342332d7be03c /ext/ingres_ii/ii.c
parent00d67abd3080e440da6692c20a1edbdd4f4a7d16 (diff)
downloadphp-git-63a31786b65c714c8a411707f305708dac296c4b.tar.gz
Added new function ii_autocommit()
Diffstat (limited to 'ext/ingres_ii/ii.c')
-rw-r--r--ext/ingres_ii/ii.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/ingres_ii/ii.c b/ext/ingres_ii/ii.c
index dbf42dcc95..cc67e75849 100644
--- a/ext/ingres_ii/ii.c
+++ b/ext/ingres_ii/ii.c
@@ -54,6 +54,7 @@ function_entry ii_functions[] = {
PHP_FE(ii_fetch_object, NULL)
PHP_FE(ii_rollback, NULL)
PHP_FE(ii_commit, NULL)
+ PHP_FE(ii_autocommit, NULL)
{NULL, NULL, NULL} /* Must be the last line in ii_functions[] */
};
@@ -1285,5 +1286,43 @@ PHP_FUNCTION(ii_commit)
}
/* }}} */
+/* {{{ proto bool ii_autocommit([resource link])
+ Switch autocommit on or off */
+PHP_FUNCTION(ii_autocommit)
+{
+ zval **link;
+ int argc;
+ int link_id = -1;
+ II_LINK *ii_link;
+ IIAPI_AUTOPARM autoParm;
+ IILS_FETCH();
+
+ argc = ZEND_NUM_ARGS();
+ if (argc > 1 || (argc && zend_get_parameters_ex(argc, &link) == FAILURE)){
+ WRONG_PARAM_COUNT;
+ }
+
+ if (argc == 0) {
+ link_id = IIG(default_link);
+ }
+ ZEND_FETCH_RESOURCE2(ii_link, II_LINK *, link, link_id, "Ingres II Link", le_ii_link, le_ii_plink);
+
+ autoParm.ac_genParm.gp_callback = NULL;
+ autoParm.ac_genParm.gp_closure = NULL;
+ autoParm.ac_connHandle = ii_link->connHandle;
+ autoParm.ac_tranHandle = ii_link->tranHandle;
+
+ IIapi_autocommit(&autoParm);
+ ii_sync(&(autoParm.ac_genParm));
+
+ if(ii_success(&(autoParm.ac_genParm))==II_FAIL) {
+ RETURN_FALSE;
+ }
+
+ ii_link->tranHandle = autoParm.ac_tranHandle;
+ RETURN_TRUE;
+}
+/* }}} */
+
#endif /* HAVE_II */