是否可以锁定Access表
本文关键字:Access 锁定 是否 | 更新日期: 2023-09-27 18:30:08
正如标题所示,我有一个Access 97数据库,想知道是否可以在插入后锁定表,然后立即解锁它?
我需要添加一条记录,并立即获得添加记录的自动编号(通过desc排序)。问题是,在我插入和检索之间,可能会有另一个来自外部的添加(这会得到错误的自动编号)。
不幸的是,我无法使用SELECT @@IDENTITY
,因为Access 97数据库文件不支持它(已经尝试并测试过了,参考:此处)。
我有一个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();
感谢大家的帮助,但我将选择与刚才输入的相同的详细信息,这将返回所需的信息。