Accessing the values of the current row

A Table object is always located at one of the following positions:

  • Before the first row of the table.
  • On a row of the table.
  • After the last row of the table.

If the Table object is positioned on a row, you can use one of a set of methods appropriate for the data type to retrieve or modify the value of each column.

Retrieving column values

The Table object provides a set of methods for retrieving column values. These methods take the column ID as argument.

Examples

The following code retrieves the value of the lname column, which is a character string.

int lname = t.GetOrdinal( "lname" );
string lastname = t.GetString( lname );

The following code retrieves the value of the cust_id column, which is an integer.

int cust_id = t.GetOrdinal( "cust_id" );
int id = t.GetInt( cust_id );
Modifying column values

In addition to the methods for retrieving values, there are methods for setting values. These methods take the column ID and the value as arguments.

Example

For example, the following code sets the value of the lname column to Kaminski.

t.SetString( lname, "Kaminski" );

By assigning values to these properties you do not alter the value of the data in the database. You can assign values to the properties even if you are before the first row or after the last row of the table, but it is an error to try to access data when the current row is at one of these positions, for example, by assigning the property to a variable.

// This code is incorrect
t.MoveBeforeFirst();
id = t.GetInt( cust_id );
Casting values

The method you choose must match the data type you want to assign. UltraLite automatically casts database data types where they are compatible, so that you could use the getString method to fetch an integer value into a string variable, and so on. See Converting data types explicitly.