executeQuery
这些方法使用参数变量列表执行一个 SQL 选择语句,返回一个包含满足查询的表行集的 QueryResult 。
executeQuery()
的第一个版本会启动一个隐式只读数据库事务,并在完成时回滚该事务。当调用 executeQuery()
的第二个版本(带有 trans
参数)时,该查询会在这个事务的上下文中执行。调用应用程序代码负责启动、提交或回滚该事务。
ResultSet* SqlEngine::executeQuery(sql, ...);
ResultSet* SqlEngine::executeQuery(trans, sql, ...)
参数
sql
char const*
包含可能从变量列表中替换参数的 SQL 选择语句的字符串。
trans
Transaction*
一个事务实例。当传递时,不会启动或提交隐式数据库事务。
当不存在时,SQL 选择语句会在隐式数据库事务中执行。
...
char const*
一个可变长度的参数列表,用于替换到 SQL 字符串中。
参数替换,请参阅参数替换格式说明页面。
返回
QueryResult
此方法返回一个QueryResult 对象。
RuntimeException
在出现错误的情况下抛出一个 RuntimeException 异常。
示例
const char * dbname = "SqlDb";
int main(int argc, char* argv[])
{
McoSqlEngine engine;
...
engine.open(
db_name, // 数据库名
SqlDb_get_dictionary(), // 数据库字典
DATABASE_SIZE, // 数据库大小
MEMORY_PAGE_SIZE, // 页面大小:通常由处理器架构决定。
MAP_ADDRESS); // 共享内存模式的映射地址
...
QueryResult result(engine.executeQuery("select * from Person order by age"));
...
}