]> granicus.if.org Git - php/commitdiff
Fixing return value from fbsql_query after a DELETE FROM with success.
authorFrank M. Kromann <fmk@php.net>
Tue, 10 Jul 2001 22:34:24 +0000 (22:34 +0000)
committerFrank M. Kromann <fmk@php.net>
Tue, 10 Jul 2001 22:34:24 +0000 (22:34 +0000)
ext/fbsql/php_fbsql.c
ext/fbsql/php_fbsql.h

index 5ab59cbc906bd35da28258db8e342d0d80a596d0..5c53b832ee0f7766f21514a18811d742ce08df4a 100644 (file)
@@ -108,6 +108,10 @@ void         fbcInitialize();
 void         fbaRelease();
 unsigned int fbaCount();
 
+struct FBCAutoStartInfo {
+   FBArray* infoLines;
+};
+
 
 
 struct PHPFBResult
@@ -206,6 +210,9 @@ function_entry fbsql_functions[] = {
        PHP_FE(fbsql_password,          NULL)
        PHP_FE(fbsql_warnings,          NULL)
 
+       PHP_FE(fbsql_get_autostart_info,        NULL)
+//     PHP_FE(fbsql_set_autostart_info,        NULL)
+
 /*     Aliases:  */
        PHP_FALIAS(fbsql, fbsql_db_query, NULL)
 
@@ -1538,7 +1545,7 @@ static void phpfbQuery(INTERNAL_FUNCTION_PARAMETERS, char* sql, PHPFBLink* link)
                        return_value->type       = IS_LONG;
                        if (sR == 1 && md) fbcmdRelease(md);
                }
-               else if (tp[0] == 'I' || tp[0] == 'U')
+               else if (tp[0] == 'I' || tp[0] == 'U' || tp[0] == 'A')
                {
                        if (tp[0] == 'I') link->insert_id = fbcmdRowIndex(md);
                        return_value->value.lval = 1;
@@ -3020,6 +3027,60 @@ PHP_FUNCTION(fbsql_free_result)
 }
 /* }}} */
 
+/* {{{ proto array fbsql_get_autostart_info([resource link_identifier])
+       */
+PHP_FUNCTION(fbsql_get_autostart_info)
+{
+       PHPFBLink* phpLink = NULL;
+       zval    **fbsql_link_index = NULL;
+       int id;
+       FBCAutoStartInfo* asInfo;
+       FBSQLLS_FETCH();
+
+       switch (ZEND_NUM_ARGS()) {
+               case 0:
+                       id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU FBSQLLS_CC);
+                       CHECK_LINK(id);
+                       break;
+               case 1:
+                       if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {
+                               RETURN_FALSE;
+                       }
+                       id = -1;
+                       break;
+               default:
+                       WRONG_PARAM_COUNT;
+                       break;
+       }
+       ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink);
+
+       if (phpLink->execHandler == NULL) {
+               if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "No valid Exec handler available for this connection");
+               RETURN_FALSE;
+       }
+       else {
+               array_init(return_value);
+               asInfo = fbcehGetAutoStartInfo(phpLink->execHandler);
+               if (asInfo != NULL) {
+                       unsigned i;
+
+                       for (i=0; i<fbaCount(asInfo->infoLines); i++) {
+                               FBArray* infoLine = fbaObjectAtIndex(asInfo->infoLines, i);
+//                             if (fbaCount(infoLine) == 2) {
+//                                     fbaObjectAtIndex(infoLine, 0);
+//                                     fbaObjectAtIndex(infoLine, 1);
+//                             }
+//                             else {
+                                       add_index_string(return_value, i, fbaObjectAtIndex(infoLine, 0), 1);
+//                             }
+
+                       }
+               }
+       }
+}
+/* }}} */
+
+
 #endif
 
 /*
index 55480a3946c9d874c6ca48d126ee9997be2565f4..d10fe805d01e13922cc905a4a40dbc69030f4557 100644 (file)
@@ -86,6 +86,9 @@ PHP_FUNCTION(fbsql_username);
 PHP_FUNCTION(fbsql_password);
 PHP_FUNCTION(fbsql_warnings);
 
+PHP_FUNCTION(fbsql_get_autostart_info);
+//PHP_FUNCTION(fbsql_set_autostart_info);
+
 static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type);
 static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistant);