여러 컴퓨터에서 실행되는 응용 프로그램이 있습니다 (대략 2).이 응용 프로그램은 네트워크에있는 공유 mdb를 업데이트합니다. 두 사용자는 한 번에 공유 mdb를 업데이트하려고하지만 한 사용자 만 업데이트 할 수 있습니다 mdb 한번에. 다른 사용자가 그것을 열 수 없습니다. 누구든지 다중 사용자 환경을 지원하는 액세스를 제안 할 수 있습니까?
편집하다:
TFormRoadAttrib이라는 하나의 형식이 있습니다. 다음 함수를 활성화하면 호출됩니다.
procedure TFrmRoadAttrib.FormActivate(Sender: TObject);
if dmTimeDomain <> nil then
begin
if not (dmTimeDomain.dbTimeDomain.InTransaction) then
begin
dmTimeDomain.dbTimeDomain.BeginTrans;
end;
end;
어디에dbTimeDomain=TADOConnection
그 가치는
'Provider=Microsoft.ACE.OLEDB.12.0; Mode=Share Deny None; Extended Properties=""; Locale Identifier=1033; Jet OLEDB:Registry Path=""; Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=4; Jet OLEDB:Database Locking Mode=0; Jet OLEDB:Global Partial Bulk Ops=2; Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password=""; Jet OLEDB:Create System Database=False; Jet OLEDB:Encrypt Database=False; Jet OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=False; Jet OLEDB:SFP=False; Data Source=Q:\BEL_01\BEL_GADM\ACCESS\Restrictions.mdb; Jet OLEDB:System database=C:\Program Files\Tele Atlas\Common Files\DPT.MDW; User ID=dbadpt; Password=dbadpt;
코드를 실행 한 후 확인 버튼을 클릭하면
if dmTimeDomain <> nil then
begin
if (dmTimeDomain.dbTimeDomain.InTransaction) then
dmTimeDomain.dbTimeDomain.CommitTrans;
end;
end;
좋습니다.
액세스는 다중 사용자 환경을 확실히 지원하지만 권한은 올바르게 설정되어야합니다. 모든 사용자는 데이터베이스가 위치한 디렉토리에 파일을 작성할 수 있어야하며 모든 사용자는 다른 사용자가 해당 디렉토리에서 작성한 파일을 수정할 권한이 있어야합니다. 많은 것을 망쳐 놓을 수있는 방법이 있습니다. 이는 Access에서 동시. 다중 사용자 액세스를 관리하기위한 메커니즘의 일부로 별도의 .ldb 파일을 사용하기 때문입니다.
좋은 테스트는 한 사용자가 공유 디렉토리에 텍스트 파일을 만든 다음 다른 사용자가 해당 파일을 열 수 있는지 확인한 다음 변경 사항을 저장하는 것입니다.
둘 다 앱을 사용할 수 있어야합니다. 한 사용자가 양식이나 표를 편집하는 경우 다른 사용자는 동일한 객체를 편집하지 못하도록 잠급니다. 그러나 일단 앱이 "프로덕션"상태가되면 앱에 아무런 영향이 없어야합니다. 몇 년 전 MS SQL Server 백엔드 (stil MS Access 프론트 엔드)로 큰 응용 프로그램을 변환하는 데 도움이되었고, 그 시점까지는 15 명의 사용자가 동시에 응용 프로그램을 성공적으로 사용하고있었습니다. 앱이 너무 커서 (100 개의 양식, 100 개의 테이블, 수백 개의 행이있는 일부), 성능상의 이유로 이동했습니다. 그렇지 않으면 그들은 아직도 완전히 접근하고있을 것입니다.
일반 액세스 mdb 파일 대신 액세스 프로젝트 (adp 확장자)를 사용하는 것이 좋습니다. 액세스 프로젝트는 Office CD의 별도 설치 파일로 제공되는 SQL 서버 데스크톱 엔진과 작동합니다. 이는 근본적으로 SQL 서버가 약간 쇠약해진 다운 버전을 실행하고이 서버가 모든 동시성 문제를 처리한다는 것을 의미합니다. 또한 DB가 Access 프로젝트에 비해 너무 커지면 DB를 완전한 SQL Server 시스템으로 쉽게 포팅 할 수 있습니다. 저장 프로 시저 (Stored Procedures) 등을 포함하여 SQL Server로 수행 할 수있는 Access 프로젝트에서 대부분의 작업을 수행 할 수 있으며 설치 및 연결이 매우 쉽습니다.