是否可以锁定Access表

本文关键字:Access 锁定 是否 | 更新日期: 2023-09-27 18:30:08

正如标题所示,我有一个Access 97数据库,想知道是否可以在插入后锁定表,然后立即解锁它?

我需要添加一条记录,并立即获得添加记录的自动编号(通过desc排序)。问题是,在我插入和检索之间,可能会有另一个来自外部的添加(这会得到错误的自动编号)。

不幸的是,我无法使用SELECT @@IDENTITY,因为Access 97数据库文件不支持它(已经尝试并测试过了,参考:此处)。

是否可以锁定Access表

我有一个Access 97数据库,想知道是否可以在插入后锁定表,然后立即解锁?

不是。但是,尽管您不能将SELECT @@IDENTITY与Access 97数据库文件一起使用,但您仍然可以使用DAO.Recordset来添加记录:

// This code requires the following COM reference in your project:
//
//     Microsoft Office 14.0 Access Database Engine Object Library
//
// and the declaration
//
//     using Microsoft.Office.Interop.Access.Dao;
//
// at the top of the class file            
var dbe = new DBEngine();
Database db = dbe.OpenDatabase(@"C:'Users'Public'test'a97_files'a97table1 - Copy.mdb");
Recordset rst = db.OpenRecordset("SELECT * FROM table1", RecordsetTypeEnum.dbOpenDynaset);
rst.AddNew();
// new AutoNumber is created as soon as AddNew() is called
int newID = rst.Fields["ID"].Value;  
rst.Fields["textCol"].Value = "Record added via DAO Recordset.";
rst.Update();
Console.WriteLine("Row added with ID = {0}", newID);
rst.Close();
db.Close();

感谢大家的帮助,但我将选择与刚才输入的相同的详细信息,这将返回所需的信息。