2014-11-12 4 views
1

제목에서 알 수 있듯이 Access 97 db가 있으며 삽입 후 테이블을 잠그고 즉시 잠금을 해제 할 수 있는지 알고 싶습니다.Access 테이블을 잠글 수 있습니까?

레코드를 추가하고 즉시 추가 된 레코드의 일련 번호를 가져와야합니다 (desc로 정렬). 문제는 내가 삽입하고 거기에서 다른 뭔가를 추가 할 수 있습니다 (잘못된 일련 번호를 얻을 것이라고 외부)입니다.

불행히도 SELECT @@IDENTITY은 Access 97 데이터베이스 파일 (이미 시도 및 테스트 됨, here)에 지원되지 않으므로 사용할 수 없습니다.

+0

[this] (http://office.microsoft.com/en-us/access-help/set-options-for-a-shared-access-database-mdb-HP005188297.aspx) 및 [this] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). 이것은 확실히 XY 문제입니다. 대신에 해결하려는 문제를 설명해 주시겠습니까? –

+0

레코드를 추가하고 추가 레코드가 추가 된 레코드의 자동 번호를 가져와야합니다 (내림차순으로 정렬 됨). 문제는 삽입하고 검색 할 때 외부에서 다른 것부터 추가 할 수 있습니다 (잘못된 것입니다. autonumber) – user1559524

+0

[This (http://www.mikesdotnetting.com/Article/54/getting-the-identity-of-the-most-recently-added-record) 도움이 될 수 있습니다. 지정한 문제를 해결하는지 확신 할 수 없습니다. 그것을 해결할 가능성은 낮습니다. 하지만 적어도 orderby 쿼리는 피할 수 있습니다. –

답변

2

나는 Access 97 db가 있으며 삽입 후 테이블을 잠그고 잠금을 해제 할 수 있는지 알고 싶습니다.

아니요. 당신이 당신의 Access 97 데이터베이스 파일과 SELECT @@IDENTITY을 사용할 수 있지만, 그러나, 당신은 여전히 ​​레코드를 추가 할 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(); 
0

감사하지만 난 거 같은 세부 사항을 내가 그냥 선택 해요 입력하면, 필요한 것을 반환합니다.

+0

신중하게 생각하십시오. 이것을 구현하기 전에. 모든 삽입 후 테이블 스캔을 수행하는 것이 좋습니다. 모든 "세부 사항"필드가 색인되어 있더라도 각 색인을 명중해야합니다. 두 경우 모두 데이터베이스 파일에 대한 경합을 증가 시키며 액세스가 특히 잘 조정되지 않는다는 사실이 널리 받아 들여지고 있습니다. 실제로 ASP.NET *에서 Access 데이터베이스를 사용하면 안됩니다 (참고 : [here] (http://msdn.microsoft.com/en-us/library/jj653753.aspx#access_database)). –