gpt4 book ai didi

advantage-database-server - 如何锁定记录和更新自己锁定的记录。 (Asp.Net 和 ADS)

转载 作者:行者123 更新时间:2023-12-04 18:12:27 27 4
gpt4 key购买 nike

我想锁定一条记录以防止在我使用时没有人可以更新。

但是锁定记录后,即使我自己也无法更新锁定记录:(

在更新记录之前我必须解锁吗?

或者有没有办法更新我锁定自己的记录?

string query = "SELECT * FROM table1";
AdsCommand cmd = conn.CreateCommand();
cmd.CommandText = query;

AdsExtendedReader reader = cmd.ExecuteExtendedReader();
reader.Read();

int recordNo = reader.RecordNumber;
reader.LockRecord(recordNo);

// do something with table1 record
// while doing something, I need to lock the record before I update record

AdsCommand cm = new AdsCommand("UPDATE table1 SET field1 = 'UPDATED'", conn);
cm.ExecuteNonQuery();

最佳答案

不可能在“直接”打开的表(与通过 SQL 操作相反)和 SQL 操作或其他表实例之间共享记录锁。

一种可能性是在获得锁后通过扩展读取器进行更新。您可以使用 SetStringSetValue .

reader.SetString( colNumber, 'UPDATED' );

另一种可能性可能是更新事务中的记录。然后该记录将由该用户保持锁定,直到提交事务。例如,您可以使用类似以下语句作为“无操作”(假设不涉及触发器)来锁定事务中的记录而不修改数据:
UPDATE table1 set field1 = field1 WHERE pk=1;

关于advantage-database-server - 如何锁定记录和更新自己锁定的记录。 (Asp.Net 和 ADS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12353301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com