[Freeswitch-svn] [commit] r12081 - freeswitch/trunk/src
FreeSWITCH SVN
silik0n at freeswitch.org
Mon Feb 16 20:29:50 PST 2009
Author: silik0n
Date: Mon Feb 16 22:29:50 2009
New Revision: 12081
Log:
Lets not error on a query that returns 0 rows
Modified:
freeswitch/trunk/src/switch_odbc.c
Modified: freeswitch/trunk/src/switch_odbc.c
==============================================================================
--- freeswitch/trunk/src/switch_odbc.c (original)
+++ freeswitch/trunk/src/switch_odbc.c Mon Feb 16 22:29:50 2009
@@ -366,56 +366,57 @@
SQLNumResultCols(stmt, &c);
SQLRowCount(stmt, &m);
-
- for (t = 0 ;; t++) {
- int name_len = 256;
- char **names;
- char **vals;
- int y = 0;
- int done = 0;
-
- result = SQLFetch(stmt);
-
- if (result != SQL_SUCCESS) {
- if (result != SQL_NO_DATA){
- err++;
+ if (m > 0) {
+ for (t = 0 ;; t++) {
+ int name_len = 256;
+ char **names;
+ char **vals;
+ int y = 0;
+ int done = 0;
+
+ result = SQLFetch(stmt);
+
+ if (result != SQL_SUCCESS) {
+ if (result != SQL_NO_DATA){
+ err++;
+ }
+ break;
+ }
+
+ names = calloc(c, sizeof(*names));
+ vals = calloc(c, sizeof(*vals));
+
+ switch_assert(names && vals);
+
+ for (x = 1; x <= c; x++) {
+ SQLSMALLINT NameLength, DataType, DecimalDigits, Nullable;
+ SQLULEN ColumnSize;
+ names[y] = malloc(name_len);
+ memset(names[y], 0, name_len);
+
+ SQLDescribeCol(stmt, x, (SQLCHAR *) names[y], (SQLSMALLINT) name_len, &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
+ ColumnSize++;
+
+ vals[y] = malloc(ColumnSize);
+ memset(vals[y], 0, ColumnSize);
+ SQLGetData(stmt, x, SQL_C_CHAR, (SQLCHAR *) vals[y], ColumnSize, NULL);
+ y++;
}
- break;
- }
-
- names = calloc(c, sizeof(*names));
- vals = calloc(c, sizeof(*vals));
-
- switch_assert(names && vals);
-
- for (x = 1; x <= c; x++) {
- SQLSMALLINT NameLength, DataType, DecimalDigits, Nullable;
- SQLULEN ColumnSize;
- names[y] = malloc(name_len);
- memset(names[y], 0, name_len);
-
- SQLDescribeCol(stmt, x, (SQLCHAR *) names[y], (SQLSMALLINT) name_len, &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
- ColumnSize++;
-
- vals[y] = malloc(ColumnSize);
- memset(vals[y], 0, ColumnSize);
- SQLGetData(stmt, x, SQL_C_CHAR, (SQLCHAR *) vals[y], ColumnSize, NULL);
- y++;
- }
-
- if (callback(pdata, y, vals, names)) {
- done = 1;
- }
- for (x = 0; x < y; x++) {
- free(names[x]);
- free(vals[x]);
- }
- free(names);
- free(vals);
+ if (callback(pdata, y, vals, names)) {
+ done = 1;
+ }
+
+ for (x = 0; x < y; x++) {
+ free(names[x]);
+ free(vals[x]);
+ }
+ free(names);
+ free(vals);
- if (done) {
+ if (done) {
break;
+ }
}
}
More information about the Freeswitch-svn
mailing list