@@ -108,6 +108,10 @@ void fbcInitialize();
108
108
void fbaRelease ();
109
109
unsigned int fbaCount ();
110
110
111
+ struct FBCAutoStartInfo {
112
+ FBArray * infoLines ;
113
+ };
114
+
111
115
112
116
113
117
struct PHPFBResult
@@ -206,6 +210,9 @@ function_entry fbsql_functions[] = {
206
210
PHP_FE (fbsql_password , NULL )
207
211
PHP_FE (fbsql_warnings , NULL )
208
212
213
+ PHP_FE (fbsql_get_autostart_info , NULL )
214
+ // PHP_FE(fbsql_set_autostart_info, NULL)
215
+
209
216
/* Aliases: */
210
217
PHP_FALIAS (fbsql , fbsql_db_query , NULL )
211
218
@@ -1538,7 +1545,7 @@ static void phpfbQuery(INTERNAL_FUNCTION_PARAMETERS, char* sql, PHPFBLink* link)
1538
1545
return_value -> type = IS_LONG ;
1539
1546
if (sR == 1 && md ) fbcmdRelease (md );
1540
1547
}
1541
- else if (tp [0 ] == 'I' || tp [0 ] == 'U' )
1548
+ else if (tp [0 ] == 'I' || tp [0 ] == 'U' || tp [ 0 ] == 'A' )
1542
1549
{
1543
1550
if (tp [0 ] == 'I' ) link -> insert_id = fbcmdRowIndex (md );
1544
1551
return_value -> value .lval = 1 ;
@@ -3020,6 +3027,60 @@ PHP_FUNCTION(fbsql_free_result)
3020
3027
}
3021
3028
/* }}} */
3022
3029
3030
+ /* {{{ proto array fbsql_get_autostart_info([resource link_identifier])
3031
+ */
3032
+ PHP_FUNCTION (fbsql_get_autostart_info )
3033
+ {
3034
+ PHPFBLink * phpLink = NULL ;
3035
+ zval * * fbsql_link_index = NULL ;
3036
+ int id ;
3037
+ FBCAutoStartInfo * asInfo ;
3038
+ FBSQLLS_FETCH ();
3039
+
3040
+ switch (ZEND_NUM_ARGS ()) {
3041
+ case 0 :
3042
+ id = php_fbsql_get_default_link (INTERNAL_FUNCTION_PARAM_PASSTHRU FBSQLLS_CC );
3043
+ CHECK_LINK (id );
3044
+ break ;
3045
+ case 1 :
3046
+ if (zend_get_parameters_ex (1 , & fbsql_link_index )== FAILURE ) {
3047
+ RETURN_FALSE ;
3048
+ }
3049
+ id = -1 ;
3050
+ break ;
3051
+ default :
3052
+ WRONG_PARAM_COUNT ;
3053
+ break ;
3054
+ }
3055
+ ZEND_FETCH_RESOURCE2 (phpLink , PHPFBLink * , fbsql_link_index , id , "FrontBase-Link" , le_link , le_plink );
3056
+
3057
+ if (phpLink -> execHandler == NULL ) {
3058
+ if (FB_SQL_G (generateWarnings )) php_error (E_WARNING , "No valid Exec handler available for this connection" );
3059
+ RETURN_FALSE ;
3060
+ }
3061
+ else {
3062
+ array_init (return_value );
3063
+ asInfo = fbcehGetAutoStartInfo (phpLink -> execHandler );
3064
+ if (asInfo != NULL ) {
3065
+ unsigned i ;
3066
+
3067
+ for (i = 0 ; i < fbaCount (asInfo -> infoLines ); i ++ ) {
3068
+ FBArray * infoLine = fbaObjectAtIndex (asInfo -> infoLines , i );
3069
+ // if (fbaCount(infoLine) == 2) {
3070
+ // fbaObjectAtIndex(infoLine, 0);
3071
+ // fbaObjectAtIndex(infoLine, 1);
3072
+ // }
3073
+ // else {
3074
+ add_index_string (return_value , i , fbaObjectAtIndex (infoLine , 0 ), 1 );
3075
+ // }
3076
+
3077
+ }
3078
+ }
3079
+ }
3080
+ }
3081
+ /* }}} */
3082
+
3083
+
3023
3084
#endif
3024
3085
3025
3086
/*
0 commit comments