Default cursor scrolling is defined by wxODBC\_FWD\_ONLY\_CURSORS in setup.h
when the wxWindows library is built. This behavior can be overridden when
an instance of a wxDb is created (see \helpref{wxDb constructor}{wxdbconstr}).
-Default setting of this value TRUE, as not all databases/drivers support
+Default setting of this value true, as not all databases/drivers support
both types of cursors.
\wxheading{See also}
\wxheading{Return value}
-Returns TRUE if the catalog request was successful, or FALSE if there was some
+Returns true if the catalog request was successful, or false if there was some
reason that the catalog could not be generated.
\wxheading{Example}
\wxheading{Return value}
-Returns TRUE if the commit was successful, or FALSE if the commit failed.
+Returns true if the commit was successful, or false if the commit failed.
\wxheading{Remarks}
\wxheading{Return value}
-The function always returns FALSE, so a call to this function can be made
+The function always returns false, so a call to this function can be made
in the return statement of a code block in the event of a failure to
perform an action (see the example below).
pDb->DispAllErrors(henv, hdbc, hstmt); // Display all other errors, if any
pDb->RollbackTrans(); // Rollback the transaction
CloseCursor(); // Close the cursor
- return(FALSE); // Return Failure
+ return(false); // Return Failure
}
}
\end{verbatim}
\wxheading{Remarks}
-If the view does not exist, this function will return TRUE. Note that views are not supported with all datasources.
+If the view does not exist, this function will return true. Note that views are not supported with all datasources.
\membersection{wxDb::ExecSql}\label{wxdbexecsql}
\wxheading{Return value}
-Currently always returns TRUE.
+Currently always returns true.
\wxheading{See also}
\wxheading{Return value}
-Returns TRUE if this datasource connection is defined as using only forward
-scrolling cursors, or FALSE if the connection is defined as being allowed to
+Returns true if this datasource connection is defined as using only forward
+scrolling cursors, or false if the connection is defined as being allowed to
use backward scrolling cursors and their associated functions (see note above).
\wxheading{Remarks}
the call to \helpref{wxDb::Open}{wxdbopen} may have failed to fully
initialize the connection correctly. The connection to the database
{\it is} open and can be used via the direct SQL commands, if this
-function returns TRUE. Other functions which depend on the
+function returns true. Other functions which depend on the
\helpref{wxDb::Open}{wxdbopen} to have completed correctly may not function
as expected. The return result from \helpref{wxDb::Open}{wxdbopen} is the
only way to know if complete initialization of this wxDb connection was
time to support distributed database connections by having separate instances
of wxDb objects that use either the same or different Dsn/Uid/AuthStr settings.
-If this function returns a value of FALSE, it does not necessarily mean that
+If this function returns a value of false, it does not necessarily mean that
the connection to the datasource was not opened. It may mean that some
portion of the initialization of the connection failed (such as a datatype not
being able to be determined how the datasource represents it). To determine
if the connection to the database failed, use the \helpref{wxDb::IsOpen}{wxdbisopen}
-function after receiving a FALSE result back from this function to determine if
-the connection was opened or not. If this function returns FALSE, but \helpref{wxDb::IsOpen}{wxdbisopen}
-returns TRUE, then direct SQL commands may be passed to the database
+function after receiving a false result back from this function to determine if
+the connection was opened or not. If this function returns false, but \helpref{wxDb::IsOpen}{wxdbisopen}
+returns true, then direct SQL commands may be passed to the database
connection and can be successfully executed, but use of the datatypes (such as
by a wxDbTable instance) that are normally determined during open will not be
possible.
\func{void}{SetDebugErrorMessages}{\param{bool }{state}}
-\docparam{state}{Either TRUE (debug messages are logged) or FALSE (debug
+\docparam{state}{Either true (debug messages are logged) or false (debug
messages are not logged).}
\wxheading{Remarks}
Turns on/off debug error messages from the ODBC class library. When
-this function is passed TRUE, errors are reported to the user/logged automatically
-in a text or pop-up dialog when an ODBC error occurs. When passed FALSE,
+this function is passed true, errors are reported to the user/logged automatically
+in a text or pop-up dialog when an ODBC error occurs. When passed false,
errors are silently handled.
When compiled in release mode (FINAL=1), this setting has no affect.
\membersection{wxDb::SetSqlLogging}\label{wxdbsetsqllogging}
-\func{bool}{SetSqlLogging}{\param{wxDbSqlLogState}{ state}, \param{const wxString \&}{filename = SQL\_LOG\_FILENAME}, \param{bool }{ append = FALSE}}
+\func{bool}{SetSqlLogging}{\param{wxDbSqlLogState}{ state}, \param{const wxString \&}{filename = SQL\_LOG\_FILENAME}, \param{bool }{ append = false}}
\wxheading{Parameters}
\docparam{state}{Either sqlLogOFF or sqlLogON (see \helpref{enum wxDbSqlLogState}{wxdbcolfor}). Turns logging of SQL commands sent to the datasource OFF or ON.}
\docparam{filename}{{\it OPTIONAL}. Name of the file to which the log text is to be written. Default is SQL\_LOG\_FILENAME.}
-\docparam{append}{{\it OPTIONAL}. Whether the file is appended to or overwritten. Default is FALSE.}
+\docparam{append}{{\it OPTIONAL}. Whether the file is appended to or overwritten. Default is false.}
\wxheading{Remarks}
If SQL logging is off when a call to WriteSqlLog() is made, or there is a
failure to write the log message to the log file, the function returns
-FALSE without performing the requested log, otherwise TRUE is returned.
+false without performing the requested log, otherwise true is returned.
\wxheading{See also}
If the SQL environment handle was created using the long form of the
\helpref{wxDbConnectInf}{wxdbconnectinf} constructor, then the flag indicating
that the HENV should be destroyed when the classes destructor is called
-is reset to be FALSE, so that any future handles created using the
+is reset to be false, so that any future handles created using the
\helpref{wxDbConnectInf::AllocHenv}{wxdbconnectinfallochenv} function
must be manually released with a call to this function.
\func{void}{BuildSelectStmt}{\param{wxString \&}{pWhereClause},
\param{int }{typeOfWhere}, \param{const wxString \&}{qualTableName=""},
-\param{bool }{useLikeComparison=FALSE}}
+\param{bool }{useLikeComparison=false}}
Constructs the portion of a SQL statement which would follow the word 'WHERE'
in a SQL statement to be passed to the datasource. The returned string
\helpref{wxDbTable::SetFromClause}{wxdbtablesetfromclause},
to clarify which table a column name reference belongs to. Default is "".}
\docparam{useLikeComparison}{{\it OPTIONAL}. Should the constructed WHERE
-clause utilize the LIKE comparison operator. If FALSE, then the '='
-operator is used. Default is FALSE.}
+clause utilize the LIKE comparison operator. If false, then the '='
+operator is used. Default is false.}
\wxheading{Remarks}
this behavior or not before trying to select using "FOR UPDATE".
If the wxDbTable instance was created with the parameter wxDB\_QUERY\_ONLY, then
-this function will return FALSE. For all known databases which do not support
-the FOR UPDATE clause, this function will return FALSE also.
+this function will return false. For all known databases which do not support
+the FOR UPDATE clause, this function will return false also.
\membersection{wxDbTable::CanUpdateByROWID}\label{wxdbtablecanupdatebyrowid}
\membersection{wxDbTable::ClearMemberVar}\label{wxdbtableclearmembervar}
-\func{void}{ClearMemberVar}{\param{UWORD }{colNo}, \param{bool }{setToNull=FALSE}}
+\func{void}{ClearMemberVar}{\param{UWORD }{colNo}, \param{bool }{setToNull=false}}
Same as \helpref{wxDbTable::ClearMemberVars}{wxdbtableclearmembervars} except
that this function clears only the specified column of its values, and
and (noCols-1)) is the index of the column definition created using the
\helpref{wxDbTable::SetColDefs}{wxdbtablesetcoldefs} function.}
\docparam{setToNull}{{\it OPTIONAL}. Indicates whether the column should be
-flagged as being a NULL value stored in the bound memory variable. If TRUE,
+flagged as being a NULL value stored in the bound memory variable. If true,
then any value stored in the bound member variable is cleared. Default is
-FALSE.}
+false.}
\membersection{wxDbTable::ClearMemberVars}\label{wxdbtableclearmembervars}
-\func{void}{ClearMemberVars}{\param{bool }{setToNull=FALSE}}
+\func{void}{ClearMemberVars}{\param{bool }{setToNull=false}}
Initializes all bound columns of the wxDbTable instance to zero. In the case
of a string, zero is copied to the first byte of the string.
\docparam{setToNull}{{\it OPTIONAL}. Indicates whether all columns should be
-flagged as having a NULL value stored in the bound memory variable. If TRUE,
+flagged as having a NULL value stored in the bound memory variable. If true,
then any value stored in the bound member variable is cleared. Default is
-FALSE.}
+false.}
\wxheading{Remarks}
\func{bool}{CreateIndex}{\param{const wxString \&}{idxName}, \param{bool }{unique},
\param{UWORD }{noIdxCols}, \param{wxDbIdxDef *}{pIdxDefs},
-\param{bool }{attemptDrop=TRUE}}
+\param{bool }{attemptDrop=true}}
This member function allows you to create secondary (non primary) indexes on
your tables. You first create your table, normally specifying a primary
\docparam{pIdxDefs}{A pointer to an array wxDbIdxDef structures. }
\docparam{attemptDrop}{{\it OPTIONAL}. Indicates if the function should try
to execute a \helpref{wxDbTable::DropIndex}{wxdbtabledropindex} on the index
-name provided before trying to create the index name. Default is TRUE.}
+name provided before trying to create the index name. Default is true.}
\wxheading{Remarks}
wxDbIdxDef idxDef[2]; // 2 columns make up the index
wxStrcpy(idxDef[0].ColName, "PART_DESC"); // Column 1
- idxDef[0].Ascending = TRUE;
+ idxDef[0].Ascending = true;
wxStrcpy(idxDef[1].ColName, "SERIAL_NO"); // Column 2
- idxDef[1].Ascending = FALSE;
+ idxDef[1].Ascending = false;
// Create a name for the index based on the table's name
wxString indexName;
indexName.Printf("%s_IDX1",parts->GetTableName());
- parts->CreateIndex(indexName, TRUE, 2, idxDef);
+ parts->CreateIndex(indexName, true, 2, idxDef);
\end{verbatim}
\membersection{wxDbTable::CreateTable}\label{wxdbtablecreatetable}
-\func{bool}{CreateTable}{\param{bool }{attemptDrop=TRUE}}
+\func{bool}{CreateTable}{\param{bool }{attemptDrop=true}}
Creates a table based on the definitions previously defined for this
wxDbTable instance.
\docparam{attemptDrop}{{\it OPTIONAL}. Indicates whether the driver should
attempt to drop the table before trying to create it. Some datasources will
not allow creation of a table if the table already exists in the table space
-being used. Default is TRUE.}
+being used. Default is true.}
\wxheading{Remarks}
\wxheading{Remarks}
If the index specified in the 'idxName' parameter does not exist, an error
-will be logged, and the function will return a result of FALSE.
+will be logged, and the function will return a result of false.
It is not necessary to call \helpref{wxDb::CommitTrans}{wxdbcommittrans}
after executing this function.
\wxheading{Remarks}
-This function returns TRUE if the table does not exist, but only for
+This function returns true if the table does not exist, but only for
supported databases (see \helpref{wxDb::Dbms}{wxdbdbms}). If a datasource
is not specifically supported, and this function is called, the function
-will return FALSE.
+will return false.
Most datasources/ODBC drivers will delete any indexes associated with the
table automatically, and others may not. Check the documentation for your
\wxheading{Remarks}
This function can only be used if the datasource connection used by the
-wxDbTable instance was created with FwdOnlyCursors set to FALSE. If the
+wxDbTable instance was created with FwdOnlyCursors set to false. If the
connection does not allow backward scrolling cursors, this function will
-return FALSE, and the data contained in the bound columns will be undefined.
+return false, and the data contained in the bound columns will be undefined.
\wxheading{See also}
\wxheading{Remarks}
This function can only be used if the datasource connection used by the
-wxDbTable instance was created with FwdOnlyCursors set to FALSE. If the
+wxDbTable instance was created with FwdOnlyCursors set to false. If the
connection does not allow backward scrolling cursors, this function will
-return FALSE, and the data contained in the bound columns will be undefined.
+return false, and the data contained in the bound columns will be undefined.
\wxheading{See also}
\membersection{wxDbTable::GetNewCursor}\label{wxdbtablegetnewcursor}
-\func{HSTMT *}{GetNewCursor}{\param{bool }{setCursor=FALSE},
-\param{bool }{bindColumns=TRUE}}
+\func{HSTMT *}{GetNewCursor}{\param{bool }{setCursor=false},
+\param{bool }{bindColumns=true}}
This function will create a new cursor that can be used to access the table
being referenced by this wxDbTable instance, or to execute direct SQL commands
\wxheading{Parameters}
\docparam{setCursor}{{\it OPTIONAL}. Should this new cursor be set to be the
-current cursor after successfully creating the new cursor. Default is FALSE.}
+current cursor after successfully creating the new cursor. Default is false.}
\docparam{bindColumns}{{\it OPTIONAL}. Should this new cursor be bound to all
-the memory variables that the default cursor is bound to. Default is TRUE.}
+the memory variables that the default cursor is bound to. Default is true.}
\wxheading{Remarks}
\wxheading{Return value}
-This function returns FALSE when the current cursor has reached the end of
-the result set. When FALSE is returned, data in the bound columns is
+This function returns false when the current cursor has reached the end of
+the result set. When false is returned, data in the bound columns is
undefined.
\wxheading{Remarks}
\wxheading{Return value}
-This function returns FALSE when the current cursor has reached the beginning
+This function returns false when the current cursor has reached the beginning
of the result set and there are now other rows prior to the cursors current
-position. When FALSE is returned, data in the bound columns is undefined.
+position. When false is returned, data in the bound columns is undefined.
\wxheading{Remarks}
This function can only be used if the datasource connection used by the
-wxDbTable instance was created with FwdOnlyCursors set to FALSE. If the
+wxDbTable instance was created with FwdOnlyCursors set to false. If the
connection does not allow backward scrolling cursors, this function will
-return FALSE, and the data contained in the bound columns will be undefined.
+return false, and the data contained in the bound columns will be undefined.
\wxheading{See also}
{
case DB_SUCCESS:
parts->GetDb()->CommitTrans();
- return(TRUE);
+ return(true);
case DB_ERR_INTEGRITY_CONSTRAINT_VIOL:
// Current data would result in a duplicate key
// on one or more indexes that do not allow duplicates
parts->GetDb()->RollbackTrans();
- return(FALSE);
+ return(false);
default:
// Insert failed for some unexpected reason
parts->GetDb()->RollbackTrans();
- return(FALSE);
+ return(false);
}
\end{verbatim}
\wxheading{Return value}
-Returns TRUE if the cursor associated with this wxDbTable object is closed
-after a commit or rollback operation. Returns FALSE otherwise.
+Returns true if the cursor associated with this wxDbTable object is closed
+after a commit or rollback operation. Returns false otherwise.
\wxheading{Remarks}
If more than one wxDbTable instance used the same database connection, all cursors
which use the database connection are closed on the commit if this function
-indicates TRUE.
+indicates true.
\membersection{wxDbTable::IsQueryOnly}\label{wxdbtableisqueryonly}
Accessor function that returns a value indicating if this wxDbTable instance
was created to allow only queries to be performed on the bound columns. If
-this function returns TRUE, then no actions may be performed using this
+this function returns true, then no actions may be performed using this
wxDbTable instance that would modify (insert/delete/update) the table's data.
\membersection{wxDbTable::Open}\label{wxdbtableopen}
-\func{bool }{Open}{\param{bool }{checkPrivileges=FALSE}, \param{bool }{checkTableExists=TRUE}}
+\func{bool }{Open}{\param{bool }{checkPrivileges=false}, \param{bool }{checkTableExists=true}}
Every wxDbTable instance must be opened before it can be used. This function
checks for the existence of the requested table, binds columns, creates required
\docparam{checkPrivileges}{Indicates whether the Open() function should check
whether the current connected user has at least SELECT privileges to access the
-table to which they are trying to open. Default is FALSE.}
+table to which they are trying to open. Default is false.}
\docparam{checkTableExists}{Indicates whether the Open() function should check
-whether the table exists in the database or not before opening it. Default is TRUE.}
+whether the table exists in the database or not before opening it. Default is true.}
\wxheading{Remarks}
-If the function returns a FALSE value due to the table not existing, a log
+If the function returns a false value due to the table not existing, a log
entry is recorded for the datasource connection indicating the problem
that was detected when checking for table existence. Note that it is usually
best for the calling routine to check for the existence of the table and for
\membersection{wxDbTable::Query}\label{wxdbtablequery}
-\func{virtual bool }{Query}{\param{bool }{forUpdate=FALSE}, \param{bool }{distinct=FALSE}}
+\func{virtual bool }{Query}{\param{bool }{forUpdate=false}, \param{bool }{distinct=false}}
\wxheading{Parameters}
as they are retrieved. If the RDBMS is not capable of the FOR UPDATE clause,
this argument is ignored. See
\helpref{wxDbTable::CanSelectForUpdate}{wxdbtablecanselectforupdate} for
-additional information regarding this argument. Default is FALSE.}
+additional information regarding this argument. Default is false.}
\docparam{distinct}{{\it OPTIONAL}. Allows selection of only distinct values
from the query (SELECT DISTINCT ... FROM ...). The notion of DISTINCT
applies to all columns returned in the result set, not individual columns.
-Default is FALSE.}
+Default is false.}
\wxheading{Remarks}
\membersection{wxDbTable::QueryMatching}\label{wxdbtablequerymatching}
-\func{virtual bool }{QueryMatching}{\param{bool }{forUpdate=FALSE},
-\param{bool }{distinct=FALSE}}
+\func{virtual bool }{QueryMatching}{\param{bool }{forUpdate=false},
+\param{bool }{distinct=false}}
QueryMatching allows querying of records from the table associated with
the wxDbTable object by matching "columns" to values.
as they are queried (SELECT ... FOR UPDATE). If the RDBMS is not capable of
the FOR UPDATE clause, this argument is ignored. See
\helpref{wxDbTable::CanSelectForUpdate}{wxdbtablecanselectforupdate} for
-additional information regarding this argument. Default is FALSE.}
+additional information regarding this argument. Default is false.}
\docparam{distinct}{{\it OPTIONAL}. Allows selection of only distinct values
from the query (SELECT DISTINCT ... FROM ...). The notion of DISTINCT
applies to all columns returned in the result set, not individual columns.
-Default is FALSE.}
+Default is false.}
\wxheading{Remarks}
// Incomplete code sample
parts->ClearMemberVars(); // Set all columns to zero
wxStrcpy(parts->PartNumber,"32"); // Set columns to query on
- parts->OnHold = TRUE;
+ parts->OnHold = true;
parts->QueryMatching(); // Query
// Display all records queried
while(parts->GetNext())
\membersection{wxDbTable::QueryOnKeyFields}\label{wxdbtablequeryonkeyfields}
-\func{bool }{QueryOnKeyFields}{\param{bool }{forUpdate=FALSE},
-\param{bool }{distinct=FALSE}}
+\func{bool }{QueryOnKeyFields}{\param{bool }{forUpdate=false},
+\param{bool }{distinct=false}}
QueryOnKeyFields provides an easy mechanism to query records in the table
associated with the wxDbTable object by the primary index column(s). Simply
as they are queried (SELECT ... FOR UPDATE). If the RDBMS is not capable of
the FOR UPDATE clause, this argument is ignored. See
\helpref{wxDbTable::CanSelectForUpdate}{wxdbtablecanselectforupdate} for
-additional information regarding this argument. Default is FALSE.}
+additional information regarding this argument. Default is false.}
\docparam{distinct}{{\it OPTIONAL}. Allows selection of only distinct values
from the query (SELECT DISTINCT ... FROM ...). The notion of DISTINCT
applies to all columns returned in the result set, not individual columns.
-Default is FALSE.}
+Default is false.}
\wxheading{Remarks}
\func{void}{SetColDefs}{\param{UWORD }{index}, \param{const wxString \&}{fieldName},
\param{int }{dataType}, \param{void *}{pData}, \param{SWORD }{cType},
-\param{int }{size}, \param{bool }{keyField = FALSE}, \param{bool }{upd = TRUE},
-\param{bool }{insAllow = TRUE}, \param{bool }{derivedCol = FALSE}}
+\param{int }{size}, \param{bool }{keyField = false}, \param{bool }{upd = true},
+\param{bool }{insAllow = true}, \param{bool }{derivedCol = false}}
\func{wxDbColDataPtr *}{SetColDefs}{\param{wxDbColInf *}{colInfs}, \param{UWORD }{numCols}}
\docparam{size}{Maximum size in bytes of the {\it pData} object.}
\docparam{keyField}{{\it OPTIONAL}. Indicates if this column is part of the
-primary index. Default is FALSE.}
+primary index. Default is false.}
\docparam{upd}{{\it OPTIONAL}. Are updates allowed on this column?
-Default is TRUE.}
+Default is true.}
\docparam{insAllow}{{\it OPTIONAL}. Inserts allowed on this column?
-Default is TRUE.}
+Default is true.}
\docparam{derivedCol}{{\it OPTIONAL}. Is this a derived column (non-base
-table column for query only)? Default is FALSE.}
+table column for query only)? Default is false.}
\docparam{colInfs}{Pointer to an array of wxDbColInf instances which contains
all the information necessary to create {\it numCols} column definitions.}
colDefs[0].PtrDataObj = PartNumber;
colDefs[0].SqlCtype = SQL_C_CHAR;
colDefs[0].SzDataObj = PART_NUMBER_LEN;
- colDefs[0].KeyField = TRUE;
- colDefs[0].Updateable = FALSE;
- colDefs[0].InsertAllowed= TRUE;
- colDefs[0].DerivedCol = FALSE;
+ colDefs[0].KeyField = true;
+ colDefs[0].Updateable = false;
+ colDefs[0].InsertAllowed= true;
+ colDefs[0].DerivedCol = false;
// Shortcut using this function
SetColDefs(0, "PART_NUMBER", DB_DATA_TYPE_VARCHAR, PartNumber,
- SQL_C_CHAR, PART_NUMBER_LEN, TRUE, FALSE,TRUE,FALSE);
+ SQL_C_CHAR, PART_NUMBER_LEN, true, false,true,false);
\end{verbatim}
\membersection{wxDbTable::SetCursor}\label{wxdbtablesetcursor}
\membersection{wxDbTable::SetColNull}\label{wxdbtablesetcolnull}
-\func{bool}{SetColNull}{\param{UWORD }{colNo}, \param{bool }{set=TRUE}}
+\func{bool}{SetColNull}{\param{UWORD }{colNo}, \param{bool }{set=true}}
\func{bool}{SetColNull}{\param{const wxString \&}{colName},
-\param{bool }{set=TRUE}}
+\param{bool }{set=true}}
Both forms of this function allow a member variable representing a column
in the table associated with this wxDbTable object to be set to NULL.
\docparam{colNo}{Index into the column definitions used when first defining
this wxDbTable object.}
\docparam{colName}{Actual data table column name that is to be set to NULL.}
-\docparam{set}{Whether the column is set to NULL or not. Passing TRUE sets
-the column to NULL, passing FALSE sets the column to be non-NULL. Default is
-TRUE.}
+\docparam{set}{Whether the column is set to NULL or not. Passing true sets
+the column to NULL, passing false sets the column to be non-NULL. Default is
+true.}
\wxheading{Remarks}
rows which match the criteria specified in the {\it pWhereClause}.
All columns that are bound to member variables for this wxDbTable instance
-that were defined with the "updateable" parameter set to TRUE will be updated
+that were defined with the "updateable" parameter set to true will be updated
with the information currently held in the memory variable.
\wxheading{Parameters}
Simply initializes all member variables to a cleared state. Called by
the constructor automatically.
+\section{\class{wxDbGridColInfo}}\label{wxdbgridcolinfo}
+
+This class is used to define columns to be shown, names of the columns,
+order and type of data, when using \helpref{wxdbGridTableBase}{wxdbgridtablebase} to display
+a Table or query in a \helpref{wxGrid}{wxgrid}
+
+See the database grid example in \helpref{wxDbGridTableBase}{wxdbgridtablebase} for
+an introduction to using the wxDbGrid classes.
+
+\wxheading{Include files}
+
+<wx/dbgrid.h>
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxDbGridColInfo::wxDbGridColInfo}\label{wxdbgridcolinfo}
+
+\func{}{wxDbGridColInfo}{\param{int }{colNo}, \param{wxString }{type},
+ \param{wxString }{title}, \param{wxDbGridColInfo *}{next}}
+
+Default constructor. See the database grid example in \helpref{wxDbGridTableBase}{wxdbgridtablebase} to
+see two different ways for adding columns.
+
+
+\wxheading{Parameters}
+
+\docparam{colNo}{Column number in the \helpref{wxDbTable}{wxdbtable} instance to be used (first column is 0).}
+\docparam{type}{Column type ,wxString specifying the grid name for the datatype in this column, or
+ use wxGRID\_VALUE\_DBAUTO to determine the type automatically from the \helpref{wxDbColDef}{wxdbcoldef} definition}
+\docparam{title}{The column label to be used in the grid display}
+\docparam{next}{A pointer to the next wxDbGridColInfo structure if using one-step
+construction, NULL terminates the list. Use Null also if using two step construction.}
+See the database grid example in \helpref{wxDbGridTableBase}{wxdbgridtablebase} to
+see two different ways for adding columns.
+
+\membersection{wxDbGridColInfo::\destruct{wxDbGridColInfo}}
+
+\func{}{\destruct{wxDbGridColInfo}}{}
+
+Destructor.
+
+\membersection{wxDbGridColInfo::AddColInfo}\label{wxdbgridcolinfoaddcolinfo}
+
+\func{void}{AddColInfo}{\param{int }{colNo},
+\param{wxString }{type}, \param{wxString }{title}}
+
+Use this member function for adding columns. See the database
+grid example in \helpref{wxDbGridTableBase}{wxdbgridtablebase} to
+see two different ways for adding columns.
+
+It is important to note that this class is merely a specifier to the \helpref{wxDbGridTableBase}{wxdbgridtablebase}
+constructor. Changes made to this datatype after the \helpref{wxDbGridTableBase}{wxdbgridtablebase} is called will
+not have any effect.
+
+\wxheading{Parameters}
+\docparam{colNo}{Column number in the \helpref{wxDbTable}{wxdbtable} instance to be used (first column is 0).}
+\docparam{type}{Column type ,wxString specifying the grid name for the datatype in this column, or
+ use wxGRID\_VALUE\_DBAUTO to determine the type automatically from the \helpref{wxDbColDef}{wxdbcoldef} definition}
+\docparam{title}{The column label to be used in the grid display}
+
+\wxheading{Remarks}
+
+As wxDbTable must be defined with to have columns which match those to by a wxDbGridColInfo
+info structure as this is the structure which informs the grid of how you want to display your
+\helpref{wxDbTable}{wxdbtable}. If no datatype conversion or the referenced column number does not exist the
+the behavior is undefined.
+
+See the example at \helpref{wxDbGridColInfo::wxDbGridColInfo}{wxdbgridcolinfo}.
+
+\section{\class{wxDbGridTableBase}}\label{wxdbgridtablebase}
+
+You can view a database table in a grid using this class.
+
+If you are deriving your own wxDbTable subclass for your table , then you may consider
+overriding GetCol() and SetCol() to provide calculated fields. This does work but care should
+be taken when using wxDbGridTableBase in this way.
+
+The constructor and AssignDbTable() call allows you to specify the ownership if the wxDbTable
+object pointer. If you tell wxGridTableBase to take ownership , it will delete the passed wxDbTable
+when an new on is assigned or wxGridTableBase's destructor is called.
+However no checks for aliasing are done so Assign(table,..,true); Assign(table,..,true);
+is an error. If you need to requery an table object the preferred way is
+that the client keeps ownership.
+
+\wxheading{Derived From}
+
+\helpref{wxGridTableBase}{wxgridtablebase}
+
+\wxheading{Include files}
+
+<wx/dbgrid.h>
+
+
+\wxheading{Example}
+
+\begin{verbatim}
+ // First step, let's define wxDbTable
+ int numColumns = 2;
+ wxDbTable *table = new wxDbTable (db, tblName, numColumns);
+ int int_var;
+ wxChar string_name[255];
+ table->SetColDef (0, "column 0", DB_DATA_TYPE_INTEGER, &int_var,
+ SQL_C_LONG, sizeof(int_var), true);
+ table->SetColDef (1, "column 1", DB_DATA_TYPE_VARCHAR, &string_name,
+ SQL_C_LONG, sizeof(string_name), false);
+
+ // now let's define columns in the grid
+
+ // first way to do it
+ wxDbGridColInfo *columns;
+ columns = new wxDbGridColInfo(0, wxGRID_VALUE_LONG, "first column",
+ new wxDbGridColInfo(1, wxGRID_VALUE_STRING, "second column",
+ NULL);
+
+ // second way to do it
+ wxDbGridColInfo *columns;
+ // first column is special
+ columns = new wxDbGridColInfo(0, wxGRID_VALUE_LONG, "first column", NULL);
+ // all the rest
+ columns->AddColInfo (1, wxGRID_VALUE_STRING, "second column");
+
+ // second way may be better when columns are not known at compile time
+
+ // now, let's open the table and make a Query()
+ table->Open();
+ // this step is very important
+ table->SetRowMode (wxDbTable::WX_ROW_MODE_QUERY);
+ // in the grid we will see only the rows of the result query
+ m_dbTable->Query();
+
+ wxDbGridTableBase *dbgrid = new wxDbGridTableBase(table, columns, wxUSE_QUERY, true);
+ delete columns; // not needed anymore
+ wxGrid *grid = new wxGrid ( ... );
+ grid->SetTable(dbgrid, true);
+ grid->Fit();
+\end{verbatim}
+
+
+\wxheading{Include files}
+
+<wx/dbgrid.h>
+
+\wxheading{Helper classes and data structures}
+
+\membersection{wxDbGridTableBase::wxDbGridTableBase}\label{wxdbgridtablebaseconstr}
+
+\func{}{wxDbGridTableBase}{\param{wxDbTable *}{tab}, \param{wxDbGridColInfo *}{ColInfo},
+ \param{int }{count = wxUSE\_QUERY}, \param{bool }{takeOwnership = true}}
+
+Constructor.
+
+\wxheading{Parameters}
+
+\docparam{tab}{ The database table you want to display. Must be opened and queried before display the grid.
+See the example \helpref{above}{wxdbgridtablebase}.}
+\docparam{ColInfo}{ Columns titles, and other values. See \helpref{wxDbGridColInfo}{wxdbgridcolinfo}.}
+\docparam{count}{You can use a query result set (wxUSE\_QUERY, to use wxDbTable::Count(wxDbTable::Count()
+ or you can fix the total number of rows (count >= 0) to display, or specify it if you already know the size in avoid calling }
+
+\docparam{takeOwnership}{ If true, this class deletes wxDbTable when it stops
+referring to it, if false application must
+take care of deleting it. }
+
+\membersection{wxDbGridTableBase::ValidateRow}\label{wxdbgridtablebasevalidate}
+
+\func{void}{ValidateRow}{\param{int }{row}}
+
+It ensures that the row data is fetched from the database, and it the wxDbTable local buffer,
+the row number passed should be the grid row.
+
+\wxheading{Parameters}
+
+\docparam{row}{ Row where validation must be done. }
+
+\membersection{wxDbGridTableBase::UpdateRow}\label{wxdbgridtablebaseupdaterow}
+
+\func{bool}{UpdateRow}{\param{int }{row}}
+
+If row has changed it forces that row to be written back to the database, however support
+for detecting whether insert/update is required is currently not in wxDbTable, so this
+function is currently unsupported.
+
+\wxheading{Parameters}
+
+\docparam{row}{ Row you want to update. }
+
+\membersection{wxDbGridTableBase::AssignDbTable}\label{wxdbgridtablebaseassigndbtable}
+
+\func{bool}{AssignDbTable}{\param{wxDbTable *}{tab},\param{int }{count = wxUSE\_QUERY},
+\param{bool }{takeOwnership = true}}
+
+Resets the grid for using with a new database table, but using the same columns definition.
+This can be useful when re-querying the database and want to see the changes.
+
+\wxheading{Parameters}
+
+\docparam{tab}{ Database table you want to assign to the grid. }
+\docparam{count}{ Number of rows you want to show or wxUSE\_QUERY for using a query. }
+\docparam{takeOwnership}{ If false, user must take care of deleting tab after deleting
+the wxDbGridTableBase. If true, deletion is made by destructor class. }
+