int Get(FILE *f, int *FieldLength, long double **Field) { if(!GetFieldLength(f, FieldLength)) return 0; *Field = (long double*) malloc(*FieldLength*sizeof(long double)); if(*Field == NULL) return 0; for(int i=0; i<*FieldLength; i++) Get(f, *Field + i); return 1; }
int Get(FILE *f, int *FieldLength, float **Field) { if(!GetFieldLength(f, FieldLength)) return 0; *Field = (float*) malloc(*FieldLength*sizeof(float)); if(*Field == NULL) return 0; for(int i=0; i<*FieldLength; i++) Get(f, *Field + i); return 1; }
int wxOdbcResultSet::GetFieldLength(const wxString& strField) { int nIndex = LookupField(strField); if ( nIndex == -1 ) return -1; return GetFieldLength( nIndex ); }
BOOL CODBCRecordset::GetFieldValue(int nField, DOUBLE *dblData) { SQLLEN cbValue; SQLRETURN ret; int nLength = GetFieldLength(nField) + 1; ret = SQLGetData(m_hStmt, (SQLUSMALLINT)nField + 1, SQL_C_DOUBLE, dblData, nLength, &cbValue) == SQL_SUCCESS; return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; }
double wxOdbcResultSet::GetResultDouble(int nField) { if ( m_fieldValues[nField-1].IsNull() ) { if ( GetFieldLength(nField) < 0 ) return 0; } return m_fieldValues[nField-1].GetDouble(); }
wxDateTime wxOdbcResultSet::GetResultDate(int nField) { if ( m_fieldValues[nField-1].IsNull() ) { if ( GetFieldLength(nField) <= 0 ) return wxInvalidDateTime; } return m_fieldValues[nField-1].GetDateTime(); }
bool wxOdbcResultSet::GetResultBool(int nField) { if ( m_fieldValues[nField-1].IsNull() ) { if ( GetFieldLength(nField) < 0 ) return false; } return m_fieldValues[nField-1].GetBool(); }
long wxOdbcResultSet::GetResultLong(int nField) { if ( m_fieldValues[nField-1].IsNull() ) { if ( GetFieldLength(nField) < 0 ) return 0; } return m_fieldValues[nField-1].GetLong(); }
wxString wxOdbcResultSet::GetResultString(int nField) { if ( m_fieldValues[nField-1].IsNull() ) { if ( GetFieldLength(nField) < 0 ) return wxEmptyString; } return m_fieldValues[nField-1].GetString(); }
// for SQL_C_DOUBLE bool QDRecordset::GetFieldValue(const int nField, double* dblData) { SQLINTEGER cbValue; SQLRETURN ret; int nLength = GetFieldLength(nField) + 1; ret = SQLGetData(m_hStmt, (SQLUSMALLINT)nField + 1, SQL_C_DOUBLE, dblData, nLength, &cbValue) == SQL_SUCCESS; return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; }
// for SQL_C_BIT bool QDRecordset::GetFieldValue(const int nField, unsigned char& cData) { SQLRETURN ret; SQLINTEGER cbValue; int nLength = GetFieldLength(nField) + 1; ret = SQLGetData(m_hStmt, (SQLUSMALLINT)nField + 1, SQL_C_BIT, &cData, nLength, &cbValue) == SQL_SUCCESS; return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; }
// for SQL_C_CHAR, SQL_C_BINARY and SQL_C_VARBOOKMARK bool QDRecordset::GetFieldValue(const int nField, unsigned char* szData) { SQLRETURN ret; SQLINTEGER cbValue; int nLength = GetFieldLength(nField) + 1; ret = SQLGetData(m_hStmt, (SQLUSMALLINT)nField + 1, SQL_C_CHAR, szData, nLength, &cbValue) == SQL_SUCCESS; //..................................................SQL_C_BINARY.......................................... //..................................................SQL_C_VARBOOKMARK..................................... return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; }
BOOL CODBCRecordset::GetFieldValue(int nField, struct tm* time) { SQLLEN cbValue; SQLRETURN ret; int nLength = GetFieldLength(nField) + 1; SQL_TIMESTAMP_STRUCT* sqltm = new SQL_TIMESTAMP_STRUCT; ret = SQLGetData(m_hStmt, (SQLUSMALLINT)nField + 1, SQL_C_TYPE_TIMESTAMP, sqltm, nLength, &cbValue) == SQL_SUCCESS; if(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) { time->tm_year = sqltm->year; time->tm_mon = sqltm->month - 1; //January must be = 0 time->tm_mday = sqltm->day; time->tm_hour = sqltm->hour; time->tm_min = sqltm->minute; time->tm_sec = sqltm->second; return TRUE; } return FALSE; }