CVS update: php3/functions
| From: | danny | Date: | Thu, 13 Aug 1998 18:15:20 +0000 |
| Subject: | CVS update: php3/functions | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-137@lists.php.net to get a copy of this message | ||
Date: Thursday August 13, 1998 @ 14:15
Author: danny
Update of /repository/php3/functions
In directory asf:/tmp/cvs-serv27090/functions
Modified Files:
ifx.ec
Log Message:
-blob bug typo correction
-ifx_fieldtypes($result) : returns array with $array["fieldname"] = SQLTYPE
-ifx_fieldproperties($result) : returns array with
$array["fieldname"] = "SQLTYPE;encoded length;precision;scale"
Index: php3/functions/ifx.ec
diff -c php3/functions/ifx.ec:1.5 php3/functions/ifx.ec:1.6
*** php3/functions/ifx.ec:1.5 Wed Aug 12 16:34:32 1998
--- php3/functions/ifx.ec Thu Aug 13 14:15:20 1998
***************
*** 115,120 ****
--- 115,122 ----
{"ifx_fetch_object", php3_ifx_fetch_object, NULL},
{"ifx_free_result", php3_ifx_free_result, NULL},
{"ifx_htmltbl_result", php3_ifx_htmltbl_result, NULL},
+ {"ifx_fieldtypes", php3_ifx_fieldtypes, NULL},
+ {"ifx_fieldproperties",php3_ifx_fieldproperties, NULL},
{NULL, NULL, NULL}
};
***************
*** 1857,1867 ****
}
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :*locator = DATA;
}
! php3_printf("<td>%s</td>", char_data);
break;
case SQLBYTES :
++locind;
! php3_printf("<td>(BLOB)</td>", "(BLOB)");
break;
default :
sprintf(string_data,"ESQL/C : %s : unsupported field type[%d]",
--- 1859,1869 ----
}
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :*locator = DATA;
}
! php3_printf("<td>%s</td>", locator->loc_buffer);
break;
case SQLBYTES :
++locind;
! php3_printf("<td>(BLOB)</td>");
break;
default :
sprintf(string_data,"ESQL/C : %s : unsupported field type[%d]",
***************
*** 1898,1903 ****
--- 1900,2229 ----
RETURN_LONG(Ifx_Result->rowid);
}
+
+
+ void php3_ifx_fieldtypes(INTERNAL_FUNCTION_PARAMETERS)
+ {
+ pval *result, *arg2;
+ IFX_RES *Ifx_Result;
+
+ EXEC SQL BEGIN DECLARE SECTION;
+ char *ifx; /* connection ID */
+ char *cursorid; /* query cursor id */
+ char *statemid; /* statement id */
+ char *descrpid; /* descriptor id */
+ char *statement; /* query text */
+ int fieldcount; /* field count */
+ int i; /* an index */
+ char fieldname[64]; /* fieldname */
+ short fieldtype; /* field type */
+ int field_ind; /* the field index */
+ int fieldleng; /* field length */
+ char *field; /* the field */
+
+ short indicator;
+ int int_data;
+ char *char_data = NULL;
+ long date_data;
+ interval intvl_data = {0};
+ datetime dt_data = {0};
+ decimal dec_data = {0};
+ short short_data;
+ float float_data;
+ double double_data;
+ loc_t *locator;
+ EXEC SQL END DECLARE SECTION;
+
+ int type;
+ int num_fields;
+
+ char string_data[256];
+ long long_data;
+ char *p;
+ int locind;
+ FILE *fp;
+ char *blobfilename;
+ char *blobdir;
+ char *table_options;
+ int moredata;
+
+ Informix_TLS_VARS;
+
+
+ switch (ARG_COUNT(ht)) {
+ case 1:
+ if (getParameters(ht, 1, &result)==FAILURE) {
+ RETURN_FALSE;
+ }
+ table_options = NULL;
+ break;
+ case 2:
+ if (getParameters(ht, 2, &result, &arg2)==FAILURE) {
+ RETURN_FALSE;
+ }
+ table_options = arg2->value.str.val;
+ break;
+ default:
+ WRONG_PARAM_COUNT;
+ break;
+ }
+
+ convert_to_long(result);
+ Ifx_Result = (IFX_RES *) php3_list_find(result->value.lval,&type);
+
+ if (type!=Informix_GLOBAL(php3_ifx_module).le_result) {
+ php3_error(E_WARNING,
+ "%d is not a Informix result index",result->value.lval);
+ RETURN_FALSE;
+ }
+
+ if (strcmp(Ifx_Result->cursorid,"") == 0) {
+ php3_error(E_WARNING,"Not a select cursor !");
+ RETURN_FALSE;
+ }
+
+ ifx = Ifx_Result->connecid;
+ cursorid = Ifx_Result->cursorid;
+ statemid = Ifx_Result->statemid;
+ descrpid = Ifx_Result->descrpid;
+ fieldcount = Ifx_Result->numcols;
+
+ if (array_init(return_value)==FAILURE) {
+ RETURN_FALSE;
+ }
+ num_fields = fieldcount;
+ for (i = 1; i <= num_fields; i++) {
+ EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :fieldname = NAME,
+ :fieldtype = TYPE;
+ if (ifx_check() < 0) {
+ php3_error(E_WARNING,"Get descriptor (field # %d) fails (%s)",
+ i,
+ ifx_error(ifx));
+ RETURN_FALSE;
+ }
+
+ p = fieldname; /* rtrim fieldname */
+ while ((*p != ' ') && (p < &fieldname[sizeof(fieldname) - 1]))
++p;
+ *p = 0;
+
+ switch (fieldtype) {
+ case SQLSERIAL :
+ char_data = "SQLSERIAL";
+ break;
+ case SQLINT :
+ char_data = "SQLINT";
+ break;
+ case SQLSMINT :
+ char_data = "SQLSMINT";
+ break;
+ case SQLDECIMAL :
+ char_data = "SQLDECIMAL";
+ break;
+ case SQLMONEY :
+ char_data = "SQLMONEY";
+ break;
+ case SQLSMFLOAT :
+ char_data = "SQLSMFLOAT";
+ break;
+ case SQLFLOAT :
+ char_data = "SQLFLOAT";
+ break;
+ case SQLDATE :
+ char_data = "SQLDATE";
+ break;
+ case SQLDTIME :
+ char_data = "SQLDTIME";
+ break;
+ case SQLINTERVAL:
+ char_data = "SQLINTERVAL";
+ break;
+ case SQLCHAR :
+ char_data = "SQLCHAR";
+ break;
+ case SQLVCHAR :
+ char_data = "SQLVCHAR";
+ break;
+ case SQLTEXT :
+ char_data = "SQLTEXT";
+ break;
+ case SQLBYTES :
+ char_data = "SQLBYTES";
+ break;
+ default :
+ char_data = "UNKNOWN";
+ break;
+ } /* switch (fieldtype) */
+
+ add_assoc_string(return_value, fieldname, char_data, DUP);
+
+ } /* for() */
+
+ }
+
+ void php3_ifx_fieldproperties(INTERNAL_FUNCTION_PARAMETERS)
+ {
+ pval *result, *arg2;
+ IFX_RES *Ifx_Result;
+
+ EXEC SQL BEGIN DECLARE SECTION;
+ char *ifx; /* connection ID */
+ char *cursorid; /* query cursor id */
+ char *statemid; /* statement id */
+ char *descrpid; /* descriptor id */
+ char *statement; /* query text */
+ int fieldcount; /* field count */
+ int i; /* an index */
+ char fieldname[64]; /* fieldname */
+ short fieldtype; /* field type */
+ int field_ind; /* the field index */
+ int fieldleng; /* field length */
+ char *field; /* the field */
+
+ short indicator;
+ int int_data;
+ char *char_data = NULL;
+ long date_data;
+ interval intvl_data = {0};
+ datetime dt_data = {0};
+ decimal dec_data = {0};
+ short short_data;
+ float float_data;
+ double double_data;
+ loc_t *locator;
+ int size;
+ int precision;
+ int scale;
+ EXEC SQL END DECLARE SECTION;
+
+ int type;
+ int num_fields;
+
+ char string_data[256];
+ long long_data;
+ char *p;
+ int locind;
+ FILE *fp;
+ char *blobfilename;
+ char *blobdir;
+ char *table_options;
+ int moredata;
+
+ Informix_TLS_VARS;
+
+
+ switch (ARG_COUNT(ht)) {
+ case 1:
+ if (getParameters(ht, 1, &result)==FAILURE) {
+ RETURN_FALSE;
+ }
+ table_options = NULL;
+ break;
+ case 2:
+ if (getParameters(ht, 2, &result, &arg2)==FAILURE) {
+ RETURN_FALSE;
+ }
+ table_options = arg2->value.str.val;
+ break;
+ default:
+ WRONG_PARAM_COUNT;
+ break;
+ }
+
+ convert_to_long(result);
+ Ifx_Result = (IFX_RES *) php3_list_find(result->value.lval,&type);
+
+ if (type!=Informix_GLOBAL(php3_ifx_module).le_result) {
+ php3_error(E_WARNING,
+ "%d is not a Informix result index",result->value.lval);
+ RETURN_FALSE;
+ }
+
+ if (strcmp(Ifx_Result->cursorid,"") == 0) {
+ php3_error(E_WARNING,"Not a select cursor !");
+ RETURN_FALSE;
+ }
+
+ ifx = Ifx_Result->connecid;
+ cursorid = Ifx_Result->cursorid;
+ statemid = Ifx_Result->statemid;
+ descrpid = Ifx_Result->descrpid;
+ fieldcount = Ifx_Result->numcols;
+
+ if (array_init(return_value)==FAILURE) {
+ RETURN_FALSE;
+ }
+ num_fields = fieldcount;
+ for (i = 1; i <= num_fields; i++) {
+ EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :fieldname = NAME,
+ :fieldtype = TYPE,
+ :size = LENGTH,
+ :precision = PRECISION,
+ :scale = SCALE;
+ if (ifx_check() < 0) {
+ php3_error(E_WARNING,"Get descriptor (field # %d) fails (%s)",
+ i,
+ ifx_error(ifx));
+ RETURN_FALSE;
+ }
+
+ p = fieldname; /* rtrim fieldname */
+ while ((*p != ' ') && (p < &fieldname[sizeof(fieldname) - 1]))
++p;
+ *p = 0;
+ switch (fieldtype) {
+ case SQLSERIAL :
+ char_data = "SQLSERIAL";
+ break;
+ case SQLINT :
+ char_data = "SQLINT";
+ break;
+ case SQLSMINT :
+ char_data = "SQLSMINT";
+ break;
+ case SQLDECIMAL :
+ char_data = "SQLDECIMAL";
+ break;
+ case SQLMONEY :
+ char_data = "SQLMONEY";
+ break;
+ case SQLSMFLOAT :
+ char_data = "SQLSMFLOAT";
+ break;
+ case SQLFLOAT :
+ char_data = "SQLFLOAT";
+ break;
+ case SQLDATE :
+ char_data = "SQLDATE";
+ break;
+ case SQLDTIME :
+ char_data = "SQLDTIME";
+ break;
+ case SQLINTERVAL:
+ char_data = "SQLINTERVAL";
+ break;
+ case SQLCHAR :
+ char_data = "SQLCHAR";
+ break;
+ case SQLVCHAR :
+ char_data = "SQLVCHAR";
+ break;
+ case SQLTEXT :
+ char_data = "SQLTEXT";
+ break;
+ case SQLBYTES :
+ char_data = "SQLBYTES";
+ break;
+ default :
+ char_data = "UNKNOWN";
+ break;
+ } /* switch (fieldtype) */
+
+ sprintf(string_data,"%s;%d;%d;%d",char_data, size, precision, scale);
+ add_assoc_string(return_value, fieldname, string_data, DUP);
+
+ } /* for() */
+
+ }
+
void php3_ifx_num_rows(INTERNAL_FUNCTION_PARAMETERS)
{
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net