2011-05-05 6 views
7

입찰 할 계획 인 프로젝트의 주요 목표는 Python을 사용하여 Microsoft Access 데이터베이스를 만드는 것입니다. 주요 DB 백엔드는 포스트그레스가 될 예정이지만 액세스 이미지를 내보내는 것이 계획입니다.Python을 사용하여 MS Access 데이터베이스 구축

사용자로부터 입력을 받아 블랙 박스를 통해 결과를 액세스 DB로 출력하는 웹 앱입니다. 웹 응용 프로그램은 리눅스 서버에 구축 될 것입니다.

  • 사용할 수있는 신뢰할 수있는 라이브러리 나 모듈이 있습니까 :

    나는 몇 가지 관련 질문이?
  • Access와 Python을 사용해 본 경험이 있습니까?
  • 팁, 트릭 또는 내가 알아야 할 사항이 있습니까?

감사합니다 :)

+0

Access가 설치된 경우 Python for Windows 확장을 사용하여 Python에서 자동화 할 수 있습니다. http://sourceforge.net/projects/pywin32/ – HansUp

+0

@HansUp - 웹 앱이 설치 될 때 설치되지 않습니다. 리눅스 서버 – dassouki

+0

중복 된 http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux – abbot

답변

4

대신 sqlite 데이터베이스를 사용할 수 있습니까?

편집 :

가 리눅스에되어야하고 MS 액세스해야하는 경우는, 그때 this is your only choice 확신하지만, $ 1,550의 요금으로 제공됩니다.

돈을 버리거나 클라이언트가 다른 두 매개 변수 중 하나를 변경하도록 유도해야합니다. 개인적으로, 나는 데이터베이스 파일을 sqlite로 변경하려고한다.

당연히 당신은 당신 자신의 데이터베이스 드라이버를 코딩 할 수 있지만, 아마 $ 1,550을 껍질을 벗기는 시간이 될 것입니다. mdbtools는 수년 동안이 작업을 해왔으며 프로젝트는 거의 포기되었습니다.

좋아, 그것을 발견, 그래서 난 그냥이 가만 두지 않을 수 있고 실행할 수 있습니다 모든 플랫폼에서 MS 액세스 MDB 파일을 작성합니다 Jackcess라는 자바 라이브러리가 있음을 발견 jvm. 허락하신다면, 자바이고 파이썬이 아니 겠지만, 어쩌면 당신은 응용 프로그램을 함께 던져서 파이썬에서 실행할 충분한 자바를 배울 수 있을까요? 또는 전체 앱을 java로 전환하면됩니다.

+0

엄밀히 말하면 앱에 대한 출력 **은 반드시 MS Access MDB 파일이어야합니다. – dassouki

+0

당신이 그렇게 말할 것이라고 생각했습니다. – James

+0

제안 해 주셔서 감사합니다. 나는 8 년 만에 자바를 만질 수는 없지만 파이썬에서 할 수있는 API로 실행할 수있을만큼 충분히 선택할 수 있다고 확신한다. – dassouki

0

내가 액세스 moving는 A Microsoft SQL 데이터베이스에 데이터, 다음 linking or importing 데이터를 건의 할 것입니다.

+0

프로젝트의 핵심 요구 사항은 msaccess db를 출력하는 것입니다. 그들이 호스팅하는 서버는 리눅스 – dassouki

+0

입니다. 그리고 백엔드는 내가 원할 수 있습니다. 출력은 Access MDB에 저장되어야합니다. – dassouki

2

중복 질문에 대한 다양한 대답은 Linux 서버에서 MS Access 데이터베이스를 만드는 "기본 목표"를 달성 할 수 없음을 시사합니다.

물론 이러한 목표 자체는 전혀 가치가 없습니다. Access 데이터베이스의 사용자/소비자가 일 때으로 처리 할 것이라고 말하면 어쩌면 도움을 줄 수 있습니다. 가능성 : (1) 캐주얼 사용자 시험/조작만을위한 경우 Excel 파일이 수행 할 수있는 Access and Access DB (2)를 만들기 위해 사용자가 다운로드 및 실행하는 스크립트 및 파일 세트를 작성하십시오.

+0

엄밀히 말하면 앱에 대한 출력은 MS Access MDB 파일이어야합니다. – dassouki

+0

목표는 Jython/Jackcess, Python 및 Java/Jackcess 변환기를 사용하거나 Jackcess의 Python 포트를 사용하여 달성 할 수있는 것으로 보입니다. 의심 할 여지없이 고통이 될 것입니다. 또는 1500을 지불하고 unixODBC를 사용하십시오 (아마도 사내 iwth Jackcess를 개발하는 것보다 저렴할 것입니다). – extraneon

0

Microsoft Access가 설치된 Windows 사용자에게 자동 압축 풀림 파일을 보내실 수 있습니까?

  1. 빈 .mdb 파일을 포함하십시오.
  2. 동적
  3. 가 액세스 .MDB 파일은 XML 문서의 모든 을 가지고 로 가져옵니다 가져 오기 실행 파일을 포함 테이블, 스키마 및 데이터와 XML 문서를 구축 할 수 있습니다.

이것은 사용자를위한 추가 단계이지만 기존 드라이버, 소프트웨어 및 데스크톱에 의존하게됩니다.

+0

앞서 말했듯이 출력은 mdb 앱이어야합니다. – dassouki

2

이 충분히 잘 알고있는 경우 :

  • 데이터베이스를 열 :

    • 파이썬, 그것의 데이터베이스 모듈 및 ODBC 구성을 다음

    이 수행하는 방법을 알고 있어야합니다 , 일부 데이터를 읽고 다른 데이터베이스에 삽입하십시오.

그렇다면 필요한 솔루션에 매우 가깝습니다. 트릭은 ODBC 데이터 원본으로 MDB 파일을 열 수 있다는 것입니다. 필요한로 -

  1. 이름 "TARGET.MDB"과 MDB 파일을 만듭니다 : 이제 : 당신은 MDB 파일에 ODBC와 "테이블 만들기"그래서 내가이 조리법을 제안 할 수 있는지 확실하지 않습니다 테이블, 양식, 보고서 등 (더미 데이터를 넣고 고객이 원하는 것으로 테스트하십시오.)
  2. "TARGET.MDB"파일에 ODBC 데이터 원본을 설정하십시오. 테스트를 통해 읽고 쓸 수 있는지 확인하십시오.
  3. 더미 데이터를 모두 제거하고 테이블을 그대로 유지합니다. "TEMPLATE.MDB"파일의 이름을 바꿉니다.
  4. 새 MDB 파일을 생성해야 할 때 : 파이썬 TEMPLATE.MDB를 TARGET.MDB로 복사하십시오.
  5. TARGET.MDB에 쓸 데이터 원본을 엽니 다. 필요한 레코드를 생성/복사하십시오.
  6. 데이터 원본을 닫고 TARGET.MDB의 이름을 TODAYS_REPORT.MDB ... 또는이 특정 데이터 내보내기에 적합한 것으로 변경하십시오.

그게 도움이 되겠습니까?

ODBC에 대한 지원이 가장 널리 사용됨에 따라 Windows에서이 작업을 수행하는 것이 거의 확실합니다. 그러나 ODBC를 통해 MDB에 액세스하는 올바른 ODBC 구성 요소를 찾으면 Linux에서이 작업을 수행 할 수 있다고 생각합니다.

+0

출력이 Jet/ACE MDB 여야하며 상호 운용성이 필요한 한 쌍을 누가 제공하고 있으며 생성은 Linux 상자에서 수행되어야합니까? 그것은 단순히 광기입니다. –

+0

@ David-W-Fenton : 그것은 당신을위한 고객입니다. :) – extraneon

+0

나는 그들이 나를 지불하고있는 일을하게하지 않을 고객을 해고합니다. –

1

MS의 officedata 네임 스페이스를 사용하여 XML로 내보낼 수 있습니다. 액세스에 문제가 없어야합니다. 별도의 xsd 스키마를 제공하거나 유형 및 관계를 문서 트리에서 직접 인코딩 할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<dataroot xmlns="urn:schemas-microsoft-com:officedata"> 

<Table1><Foo>0.00</Foo><Bar>2011-05-11T00:00:00.000</Bar></Table1> 
<Table1><Foo>3.00</Foo><Bar>2011-05-07T00:00:00.000</Bar></Table1> 

<Table2><Baz>Hello</Baz><Quux>Kitty</Quux></Table2> 
</dataroot> 

인터넷 검색 : 여기 간단한 예입니다 "항아리 : 스키마 - Microsoft - com : officedata"몇 가지 유용한 안타를 설정해야합니다.

0

글쎄, 내게 당신이 창문을 실행하는 리눅스 상자에 vmware 서버의 복사본, VM에 액세스하려면 쓰기 웹 서비스, 그리고 주요 리눅스 상자에서 통신이 필요해 보인다. Linux에서 액세스 DB를 만드는 방법을 찾을 수 없습니다. 요구 사항을 기술적으로 가능하게 만들지는 않을 것입니다.

+0

리눅스에서 뭐든지 가능합니다.) – James

0

http://adodb.sourceforge.net/ - php 또는 python으로 작성된 linux에서의 설치가 Access와 PostgreSQL에 연결됩니다.

우리는 수년 동안 그것을 사용해 왔으며 아름답게 작동합니다.

+0

그래서 "템플릿"ms 액세스 db가 있으면 사소한 편집/변경으로 완벽하게 작동합니까? – dassouki