>

StackOverflow의 비교적 새로운 사용자이므로 게시물의 규칙을 위반하면 사과드립니다.

다음은 제 질문의 맥락을 설정하는 간단한 배경입니다. Sage ERP X3 V6.5를 사용하여 관리되는 데이터베이스에 제품, 구매 주문, 거부 정보 등에 대한 모든 관련 정보를 저장하는 제조 회사의 품질 분석가로 근무하고 있습니다.

현재 사용 가능한 것보다 더 강력한 방법으로 거부 정보를 분석 할 수있는 앱을 만들고 싶습니다. 현재 Sage ERP 소프트웨어를 통해 데이터베이스를 연결해야합니다. 저는 파이썬에 훨씬 익숙하며이 데이터 셋을 탐색하는 데 더 강력한 방법이라고 생각합니다.

데이터베이스 작업에 익숙하지 않아서 ODBC 연결을 통해 데이터베이스에 대한 읽기 전용 액세스 권한을 가진 사용자를 설정하도록 요청했습니다. 그는 자신의 추론에 대해 상당히 모호했지만, 실제로는 불가능하다고 생각합니다.

이것은 저의 질문으로 연결됩니다 : 모든 데이터베이스에 대한 일반적인 읽기 전용 액세스 권한을 가진 사용자 (Sage ERP 또는 다른 매체를 통해)를 만들 수 있습니까? 당신이 말할 수 있듯이, 나는 이와 같은 질문에 대한 많은 용어를 알지 못하므로 내 게시물을 확장하거나 최선을 다하는 사람들의 질문에 기꺼이 대답합니다.

  • 답변 # 1

    방금 본 것입니다. 9 개월 지연에 대한 사과. 당신은 이미 이것을 이해했거나 그 주위에 방법을 찾았을지 모르지만 여기에 같은 질문을 가진 다음 사람이 있습니다 :

    예, 가능할뿐만 아니라 매우 쉽습니다. SOTAMAS90 DSN에 대한 간단한 ODBC 연결입니다. 연결 문자열은 다음과 같습니다.

    "DSN = SOTAMAS90;UID = myUserId;PWD = myPassword, Company = XXX"

    myUserId에 올바른 권한이 있는지 확인하십시오 (라이브러리 마스터 모듈의 사용자/역할 유지 관리에서 설정). 그런 다음 일반 ODBC 메소드를 사용하여 데이터를 읽으십시오. 자동으로 읽기 전용 데이터베이스입니다.

    Sage 100을 설치할 때 기본적으로 32 비트 ODBC 드라이버 만 설치됩니다. 64 비트 버전은 Sage 설치 폴더의 WKSetup 디렉토리에서 찾을 수 있습니다.

    안타깝게도 느린 편이다. Sage 100은 데이터를 저장하기 위해 관계형 데이터베이스가 아닌 독자적인 파일 기반 데이터 저장 메커니즘을 사용하므로 실제로 비 클러스터형 인덱스에 액세스 할 수 없습니다. 모든 WHERE 절을 기본적으로 전체 테이블 스캔으로 만듭니다. 과거 에이 문제를 해결하기 위해 수행 한 것은 성능이 문제 일 때 야간 ETL 작업을 작성하여 필요한 모든 MAS 테이블을 SQL Server 또는 MySql과 같은 RDBMS에 복사 한 다음 모든 인덱스를 작성하는 것입니다 외래 키와 열을 검색해야합니다. 24 시간마다 최신 데이터가 필요한 경우 쓰기, 삭제 및 업데이트와 같은 이벤트를 처리하는 MAS 테이블에 대해 사용자 정의 스크립트를 프로그래밍 할 수 있습니다. 이 스크립트에서 SQL 데이터베이스에 연결하고 필요한 레코드를 작성/업데이트/삭제할 수 있습니다.

    물론, Sage 버전 및 설치 옵션에 따라 1,000 개가 넘는 테이블이있을 수 있으므로 현명하게 선택하십시오.

    행운을 빕니다.

    아론

관련 자료

  • 이전 python - 특정 시간에 Chained Celery 작업 실행
  • 다음 mysql - LEFT JOIN에 null 값이 표시되지 않습니다