【问题标题】:Can I use a config file to hold connection string parameters?我可以使用配置文件来保存连接字符串参数吗?
【发布时间】:2014-09-30 18:29:22
【问题描述】:

我有一个连接到数据库的脚本。我想从脚本中提取服务器、用户、密码、数据库并将其放入配置文件中。我成功地从配置文件中提取了值。我遇到的问题是当我在语法中有变量时 pymssql.connect 失败。我在下面粘贴了我的示例代码。这可能吗?

###database connection  
config = configparser.ConfigParser()  
config.read('test.config')  
server = config['DEFAULT']['SQLServer']  
db = config['DEFAULT']['Database']  
user = config['DEFAULT']['User']  
password = config['DEFAULT']['Password']  

###this works  
####conn = pymssql.connect(host='Server1', user='Joe',password='MyPass', database='MyDB')

###this doesn't
try:
    conn = pymssql.connect(host=server, user=user,password=password, database=db)
except Exception as e:
    print(str(e))
    sys.exit()

【问题讨论】:

  • 在 shell 中运行它并确保您从配置文件中读取的值是准确的。
  • 这些值是我所期望的。当我从控制台运行它时,我得到:“'Server1'”,“'Joe'”,“'MyPass'”,“'MyDB'”。这些额外的引号会导致问题吗?
  • 你能粘贴完整的错误吗?
  • 从控制台:>>> conn = pymssql.connect(server,user,password,db) Traceback(最近一次调用最后):文件“pymssql.pyx”,第 595 行,在 pymssql 中。连接 (pymssql.c:9251) 文件“mssql.pyx”,第 1829 行,在 _mssql.connect (_mssql.c:19198) 文件“_mssql.pyx”,第 597 行,在 _mssql.MSSQLConnection.__init_ i> (_mssql.c:5868) _mssql.MSSQLDriverException: 由于未知原因连接到数据库失败。
  • 在处理上述异常的过程中,发生了另一个异常: Traceback (最近一次调用 last): File "", line 1, in conn = pymssql.connect(server ,user,password,db) 文件“pymssql.pyx”,第 602 行,在 pymssql.connect (pymssql.c:9370) pymssql.InterfaceError: Connection to the database failed for an unknown reason.

标签: python python-3.x pymssql


【解决方案1】:

这就是我检索连接属性和连接 sql server 数据库的方式

**App.ini file**

[CoreContext]
host=sservername.database.windows.net
user=dbuser@servername
password=password
database=DeltaXCore



**Connection.py file**

appConfig = ConfigParser.ConfigParser()
appConfig.read("App.ini")
ConnectionString.HOST = appConfig.get("CoreContext", "host")
CoreConnectionString.USER = appConfig.get("CoreContext", "user")
CoreConnectionString.PASSWORD = appConfig.get("CoreContext", "password")
CoreConnectionString.DATABASE = appConfig.get("CoreContext", "database")



pymssql.connect(host=objdeltaxConnectionString.HOST, user=objdeltaxConnectionString.USER,password=objdeltaxConnectionString.PASSWORD, database=objdeltaxConnectionString.DATABASE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2019-07-13
    • 2012-01-02
    • 1970-01-01
    • 2011-07-07
    • 2018-02-15
    相关资源
    最近更新 更多