Advantage数据库存在以下限制:
不允许在具有已冻结父事务的事务中更新列。
不允许在具有现有事务(包括SELECT查询中的事务)的连接中更新列。
解决这些限制的方法是在更新之前检查并释放连接中的任何现有事务。以下是一个示例代码:
try{
// 检查是否有事务并清除之
AdsConnection.ClearTransactions();
// 查询和更新语句
AdsCommand query = new AdsCommand("SELECT * FROM myTable WHERE ID = 1", conn);
AdsDataReader reader = query.ExecuteReader();
if (reader.Read())
{
AdsCommand update = new AdsCommand("UPDATE myTable SET MyColumn = 'NewValue' WHERE ID = 1", conn);
update.ExecuteNonQuery();
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}