Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » UltraLite - C 及 C++ 编程 » 应用程序开发 » 使用 UltraLite C++ API 开发应用程序 » 使用 Table API 访问数据

 

访问当前行

Table 对象始终位于以下位置之一:

如果 Table 对象位于某一行上,可以在适合该数据类型的一组方法中使用一种方法来检索或修改该行中各列的值。

检索列值

Table 对象提供了一组用于检索列值的方法。这些方法都将列 ID 作为参数。

以下代码片段用于检索 lname 列的值,该值是一个字符串。

ULValue val;
char lname[ MAX_NAME_LEN ];
val = tbl->Get( UL_TEXT("lname") );
val.GetString( lname, MAX_NAME_LEN );

以下代码检索 cust_id 列的值,该值是一个整数。

int id = tbl->Get( UL_TEXT("cust_id") );
修改列值

除用于检索值的方法外,还有用于设置值的方法。这些方法将列 ID 和值作为参数。

例如,以下代码将 lname 列的值设置为 Kaminski。

ULValue lname_col( UL_TEXT("fname") );
ULValue v_lname( UL_TEXT("Kaminski") );
tbl->Set( lname_col, v_lname );

通过设置列值,您不用直接变更数据库中的数据。即使是在该表的第一行之前或最后一行之后,您也可以给属性指派值。当前行未定义时,不要尝试访问数据。例如,尝试读取以下示例中的列值是错误的:

// This code is incorrect
tbl.BeforeFirst();
id = tbl.Get( cust_id );
转换值

所选方法应与要指派的数据类型匹配。UltraLite 自动转换兼容的数据库数据类型,这样您就可以使用 GetString 方法将一个整数值读取到字符串变量中,以及执行类似的操作。请参见显式转换数据类型