summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2001-07-05 19:17:33 +0000
committerFrank M. Kromann <fmk@php.net>2001-07-05 19:17:33 +0000
commit37cd3e026c5dc9b920642cec94993be26d924ca5 (patch)
tree229eb364580b31f8279122325169013b3a09aa81 /ext/mssql/php_mssql.c
parent4948cb1691e6b519ec53f79599e42bc2ee056931 (diff)
downloadphp-git-37cd3e026c5dc9b920642cec94993be26d924ca5.tar.gz
Optimizing the mssql_execute function.
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c54
1 files changed, 4 insertions, 50 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index 967238be61..e53728bc86 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -1951,8 +1951,7 @@ PHP_FUNCTION(mssql_execute)
mssql_result *result;
int num_fields,num_rets,type;
int blocks_initialized=1;
- int i,j;
- int *column_types;
+ int i;
int batchsize;
int ac = ZEND_NUM_ARGS();
char *parameter;
@@ -1995,61 +1994,16 @@ PHP_FUNCTION(mssql_execute)
}
result = (mssql_result *) emalloc(sizeof(mssql_result));
- column_types = (int *) emalloc(sizeof(int) * num_fields);
- for (i=0; i<num_fields; i++) {
- column_types[i] = coltype(i+1);
- }
-
+
result->batchsize = batchsize;
+ result->blocks_initialized = 1;
result->data = (zval **) emalloc(sizeof(zval *)*MSSQL_ROWS_BLOCK);
result->mssql_ptr = mssql_ptr;
result->cur_field=result->cur_row=result->num_rows=0;
result->num_fields = num_fields;
- result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue);
-
result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*num_fields);
- j=0;
- for (i=0; i<num_fields; i++) {
- char *fname = (char *)dbcolname(mssql_ptr->link,i+1);
- char computed_buf[16];
-
- if (*fname) {
- result->fields[i].name = estrdup(fname);
- } else {
- if (j>0) {
- snprintf(computed_buf,16,"computed%d",j);
- } else {
- strcpy(computed_buf,"computed");
- }
- result->fields[i].name = estrdup(computed_buf);
- j++;
- }
- result->fields[i].max_length = dbcollen(mssql_ptr->link,i+1);
- result->fields[i].column_source = estrdup(dbcolsource(mssql_ptr->link,i+1));
- if (!result->fields[i].column_source) {
- result->fields[i].column_source = empty_string;
- }
- result->fields[i].type = column_types[i];
- /* set numeric flag */
- switch (column_types[i]) {
- case SQLINT1:
- case SQLINT2:
- case SQLINT4:
- case SQLFLT8:
- case SQLNUMERIC:
- case SQLDECIMAL:
- result->fields[i].numeric = 1;
- break;
- case SQLCHAR:
- case SQLVARCHAR:
- case SQLTEXT:
- default:
- result->fields[i].numeric = 0;
- break;
- }
- }
- efree(column_types);
+ result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue);
}
retval_results=dbresults(mssql_ptr->link);
}