2012-08-24 44 views
2

我用如何使用谷歌應用程序引擎與MS-SQL

  • 蟒蛇2.7
  • pyodbc模塊
  • 谷歌應用程序引擎1.7.1

我可以使用pydobc與Python,但Google App Engine無法加載模塊。我得到一個沒有名爲pydobc錯誤的模塊。

我該如何解決這個錯誤,或者如何在我的本地Google App Engine中使用MS-SQL數據庫。

+0

你只是不能使用pyodbc它依賴於基於'c'的實現,並且不能在appengine上使用。看到這個信息。 http://code.google.com/p/pyodbc/wiki/Building。我想要使​​用appengine,您必須按照以下答案使用CloudSQL,在您的MSSQL服務器上創建Web服務,以使您的appengine應用可以使用或不使用appengine。 (請注意,您只能使基於http的連接出站 - 因此下面的註釋關於無法連接到您自己的數據庫服務器。) –

回答

4

Google App Engine的確支持而不是支持訪問您自己的SQL服務器,並且不支持加載您自己的C-API庫。

可以使用Google Cloud SQL存儲,該存儲使用MySQL數據庫實現,您可以通過他們的Cloud SQL API for Python訪問該數據庫。

注意,rdbms模塊谷歌提供了實現PEP 249 Python database API 2.0規範,就像pyodbc模塊,所以你應該使用它沒有問題:

from google.appengine.api import rdbms 

conn = rdbms.connect(instance=INSTANCE_NAME, database=DATABASE) 
cursor = conn.cursor() 
cursor.execute('SELECT * FROM sometable') 
+0

非常感謝Martjin Pieters 我的數據庫MS SQL不是mysql可以以這種方式使用mssql數據庫嗎? – user1622511

+2

@ user1622511:不,正如我所說的,您不能使用自己的服務器,只有Google *提供Google Cloud SQL存儲或Google Cloud存儲;請參閱https://developers.google.com/appengine/docs/python/datastore/ –

0

你可以,至少在理論上,從複製數據MS-SQL轉換爲Google Cloud SQL數據庫。可以在MS-SQL數據庫中創建觸發器,以便每個事務都通過您必須構建的REST API反映在您的App Engine應用程序上。