我打算投標的項目的主要目標涉及使用python創建Microsoft Access數據庫。主數據庫後端將是postgres,但計劃是導出Access圖像。使用python構建MS Access數據庫
這將是一個Web應用程序,它將從用戶處獲得輸入,並通過黑盒並將結果作爲訪問數據庫輸出。網絡應用程序將建立在Linux服務器上。
我有幾個相關的問題:
- 是否有可以使用可靠的庫或模塊?
- 你有什麼經驗使用Access和python?
- 任何提示,技巧,或必須避免我需要知道?
謝謝:)
我打算投標的項目的主要目標涉及使用python創建Microsoft Access數據庫。主數據庫後端將是postgres,但計劃是導出Access圖像。使用python構建MS Access數據庫
這將是一個Web應用程序,它將從用戶處獲得輸入,並通過黑盒並將結果作爲訪問數據庫輸出。網絡應用程序將建立在Linux服務器上。
我有幾個相關的問題:
謝謝:)
你可以使用sqlite數據庫嗎?
編輯:
如果它必須是在Linux和它必須是到MS Access,那麼我敢肯定this is your only choice,但它的成本$ 1,550。
您將不得不掏錢,或說服客戶改變其他兩個參數之一。就個人而言,我會推動將數據庫文件更改爲sqlite。
當然,你可以隨時編寫自己的數據庫驅動程序,但它可能是值得花時間1550美元。多年來,mdbtools一直在努力,這個項目已經被放棄了。
發現,還挺
好了,我不能讓這個去,發現有一個叫Jackcess一個Java庫,會寫到MS Access MDB文件,可以運行在任何平臺上JVM。當然,它是java而不是python,但是也許你可以學習足夠的java來將應用程序放在一起並從python執行它?或者只是將整個應用程序切換到Java,無論如何。
我建議moving數據到Microsoft SQL數據庫,然後linking or importing的數據訪問。
重複問題的各種答案表明,您在Linux服務器上創建MS Access數據庫的「主要目標」是無法實現的。
當然,這樣的目標本身並不值得。如果你告訴我們什麼Access數據庫的用戶/消費者預計做與它,也許我們可以幫助你。可能性:(1)創建一個用戶下載並運行的腳本和(一組)文件,以創建一個Access DB(2),如果它只是用於臨時用戶檢查/操作,則可以使用Excel文件。
您可以創建一個自解壓文件發送給安裝了Microsoft Access的Windows用戶嗎?
這對用戶來說是一個額外的步驟,但是您可以依靠他們現有的驅動程序,軟件和桌面。
我希望,如前所述,輸出必須是mdb應用程序。 – dassouki 2011-05-10 19:02:16
如果你知道這不夠好:
那麼你應該知道如何做到這一點:
如果是這樣,那麼你非常接近你所需的解決方案。訣竅是,您可以打開一個MDB文件作爲ODBC數據源。現在:我不知道,如果你能在一個MDB文件「創建表」使用ODBC,所以讓我提出這個食譜:
會爲你工作嗎?
由於對ODBC的支持將得到最廣泛的應用,因此在Windows上這樣做幾乎肯定會更容易。不過,我認爲原則上你可以在Linux上這樣做,只要你找到正確的ODBC組件來通過ODBC訪問MDB。
誰給了你一對互相矛盾的要求,輸出必須是Jet/ACE MDB,並且創建必須發生在Linux機器上?那簡直是瘋狂。 – 2011-05-12 01:27:15
@ David-W-Fenton:那就是你的客戶:) – extraneon 2011-05-14 19:22:45
我解僱了那些不讓我做他們支付我工作的客戶。 – 2011-05-18 21:34:52
您可以使用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>
谷歌搜索「甕:架構 - 微軟COM:officedata」應該把一些有用的結果。
好吧,在我看來,你需要在運行windows的linux系統上運行vmware服務器,在vm中寫入訪問的web服務,以及從主linux框中與之通信。你不會在Linux上找到創建訪問數據庫的手段。把它稱爲一項要求不會使其技術上成爲可能。
任何事情都可能在Linux上;) – James 2011-05-12 03:15:43
http://adodb.sourceforge.net/ - 安裝在Linux上,用php或python編寫,連接到Access和PostgreSQL。
我們已經使用了它多年,它的工作原理非常漂亮。
因此,如果我有一個「模板」毫秒訪問數據庫,它應該工作完美,然後進行小編輯/更改? – dassouki 2011-05-14 19:00:46
如果安裝了Access,您可以使用Python for Windows自動從Python進行自動化擴展:http://sourceforge.net/projects/pywin32/ – HansUp 2011-05-05 00:40:40
@HansUp - 不會安裝它,因爲Web應用程序將繼續linux服務器 – dassouki 2011-05-05 00:42:47
重複http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux – abbot 2011-05-05 06:28:37