// Name: dbtable.h
// Purpose: Declaration of the wxTable class.
// Author: Doug Card
-// Modified by:
+// Modified by: George Tasker
// Created: 9.96
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// wxTable class which allows it to create a table in the data
// source, exchange data between the data source and the C++
// object, and so on.
-
-class WXDLLEXPORT CcolDef
+class WXDLLEXPORT wxColDef
{
public:
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name
bool DerivedCol; // Specifies whether this column is a derived value
SDWORD CbValue; // Internal use only!!!
bool Null; // NOT FULLY IMPLEMENTED - Allows NULL values in Inserts and Updates
-}; // CcolDef
+}; // wxColDef
+
+class WXDLLEXPORT wxColDataPtr
+{
+public:
+ void *PtrDataObj;
+ int SzDataObj;
+ int SqlCtype;
+}; // wxColDataPtr
+
+
+// Backward compability for Remstar classes. These
+// will eventually go away, so the wxColXxxx classes
+// should be used
+typedef wxColDef CcolDef;
+typedef wxColDataPtr CcolDataPtr;
+
// This structure is used when creating secondary indexes.
class WXDLLEXPORT CidxDef
char tablePath[DB_PATH_MAX]; // needed for dBase tables
// Column Definitions
- CcolDef *colDefs; // Array of CcolDef structures
+ wxColDef *colDefs; // Array of wxColDef structures
// Where, Order By and From clauses
char *where; // Standard SQL where clause, minus the word WHERE
bool QueryOnKeyFields(bool forUpdate = FALSE, bool distinct = FALSE);
bool GetNext(void) { return(getRec(SQL_FETCH_NEXT)); }
bool operator++(int) { return(getRec(SQL_FETCH_NEXT)); }
-#if !wxODBC_FWD_ONLY_CURSORS
- bool GetPrev(void) { return(getRec(SQL_FETCH_PRIOR)); }
- bool operator--(int) { return(getRec(SQL_FETCH_PRIOR)); }
- bool GetFirst(void) { return(getRec(SQL_FETCH_FIRST)); }
- bool GetLast(void) { return(getRec(SQL_FETCH_LAST)); }
-#endif
+
+ /***** These four functions only work with wxDB instances that are defined *****
+ ***** as not being FwdOnlyCursors *****/
+ bool GetPrev(void);
+ bool operator--(int);
+ bool GetFirst(void);
+ bool GetLast(void);
+
bool IsCursorClosedOnCommit(void);
bool IsColNull(int colNo);
UWORD GetRowNum(void);
void SetColDefs (int index, const char *fieldName, int dataType, void *pData, int cType,
int size, bool keyField = FALSE, bool upd = TRUE,
bool insAllow = TRUE, bool derivedCol = FALSE);
+ // BJO20000121 : new prototype
+ // bool SetColDefs (wxColInf *colInfs, ULONG numCols, wxColDataPtr *pColDataPtrs);
+ wxColDataPtr* SetColDefs (wxColInf *colInfs, ULONG numCols);
+
HSTMT *NewCursor(bool setCursor = FALSE, bool bindColumns = TRUE);
bool DeleteCursor(HSTMT *hstmtDel);
void SetCursor(HSTMT *hstmtActivate = (void **) DEFAULT_CURSOR);