08-12-2011 05:02 AM
The SQL Toolkit function DBGetVariantArrayValue causes an error if i try to fetch the value of the last column in the first field of an table.
This does not happen on the Developer PC (Win7 x32) but on a Measurement PC (WinXP x32/ Win7 x64) it happens reproducibly.
my code Extraction:
//Get Array of Varriants resCode = DBGetVariantArray (hstmt, &cArray, &numRecs, &numFields); if (resCode != -10) { int colType[numFields]; for (int j = 0; j < numFields; j++) { colType[j] = DBColumnType(hstmt,j+1); } //Iterates through the Array of result strings: for (int i = 0; i < numRecs; i++) { for (int j = 0; j < numFields; j++) { //Because of NULL-values in Database tables //"DBGetVariantArrayValue" throws Non-fatal error messages, //these are extreamly disturbing for debugging, so we disabled // and enabled it. SetBreakOnLibraryErrors(0); //Disable Break on Error //Sets results of VarriantArray to strings: resCode = DBGetVariantArrayValue (cArray, numRecs, numFields, CAVT_CSTRING, i, j, &tmpVal); SetBreakOnLibraryErrors(1); //Enable Break on Error
//...Further processing...
}
Table from a SQL Anywhere 11 Database:
ID |
Date |
SerialNr |
File |
Type |
Value1 |
Value2 |
Value3 |
int |
UDT_DATETIME |
UDT_LABELSTRING |
UDT_LABELSTRING |
UDT_LABELSTRING |
UDT_REAL |
UDT_REAL |
UDT_INT |
1 |
2011-08-12 12:00:30:50.000 |
SN1 |
asdf.txt |
yxcv |
1,23456789 |
9,87654321 |
200 |
2 |
2011-08-12 12:00:30:50.000 |
SN1 |
asdf.txt |
yxcv |
1,23456789 |
9,87654321 |
200 |
3 |
2011-08-12 12:00:30:50.000 |
SN1 |
asdf.txt |
yxcv |
1,23456789 |
9,87654321 |
200 |
4 |
2011-08-12 12:00:30:50.000 |
SN1 |
asdf.txt |
yxcv |
1,23456789 |
9,87654321 |
200 |
5 |
2011-08-12 12:00:30:50.000 |
SN1 |
asdf.txt |
yxcv |
1,23456789 |
9,87654321 |
200 |
... |
... |
... |
... |
... |
... |
... |
... |
Error orcures if my Code tries to fetch Value3 of the first line.
are there any ideas?
best regards