python
  • pypyodbc
  • 2017-06-22 44 views 1 likes 
    1

    对于许多人共享的python脚本,我需要一个解决方案来检测用户驱动程序,以便我可以动态构建连接字符串。我目前使用的环境计算机名称如:在使用Python和pypyodbc的Windows上,你如何列出可用的驱动程序?

    if os.environ['COMPUTERNAME'] == 'MattsDesktop': 
    print("You are using: Oracle 12") 
        self.DataConnectOracle = 'DRIVER={Oracle in 12cR1client32bit};SERVER=Xyz;DBQ=DEVenv;UID=AllDev;PWD=Secret2Secret' 
    

    但是,这必须更新,只要用户进行更改。似乎我应该能够获得他们的驱动程序信息,而不必维护这些如果是。

    回答

    1

    虽然它不会给你司机的确切版本,pypyodbc.drivers()会给你名在Windows上使用它的驱动程序。这应该就足够了,因为您只需要驱动程序名称(不是版本)就可以构建连接字符串。

    例如,我的机器上

    import pypyodbc 
    drivers_list = sorted(pypyodbc.drivers()) 
    for driver_name in drivers_list: 
        print(driver_name) 
    

    打印

    Driver da Microsoft para arquivos texto (*.txt; *.csv) 
    Driver do Microsoft Access (*.mdb) 
    Driver do Microsoft Excel(*.xls) 
    Driver do Microsoft Paradox (*.db) 
    Driver do Microsoft dBase (*.dbf) 
    Driver para o Microsoft Visual FoxPro 
    Microsoft Access Driver (*.mdb) 
    Microsoft Access Driver (*.mdb, *.accdb) 
    Microsoft Access Text Driver (*.txt, *.csv) 
    Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) 
    Microsoft Access-Treiber (*.mdb) 
    Microsoft Excel Driver (*.xls) 
    Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 
    Microsoft Excel-Treiber (*.xls) 
    Microsoft FoxPro VFP Driver (*.dbf) 
    Microsoft ODBC for Oracle 
    Microsoft Paradox Driver (*.db) 
    Microsoft Paradox-Treiber (*.db) 
    Microsoft Text Driver (*.txt; *.csv) 
    Microsoft Text-Treiber (*.txt; *.csv) 
    Microsoft Visual FoxPro Driver 
    Microsoft Visual FoxPro-Treiber 
    Microsoft dBase Driver (*.dbf) 
    Microsoft dBase VFP Driver (*.dbf) 
    Microsoft dBase-Treiber (*.dbf) 
    MySQL ODBC 5.3 ANSI Driver 
    MySQL ODBC 5.3 Unicode Driver 
    ODBC Driver 11 for SQL Server 
    SQL Server 
    SQL Server Native Client 11.0 
    SQLite3 ODBC Driver 
    

    对于刚刚在Oracle驱动程序的列表,我可以用

    oracle_list = [x for x in pypyodbc.drivers() if "Oracle" in x] 
    
    +0

    完美!尤其是如下代码:sqlserver_list = [x for pypyodbc.drivers()x [x]中的“SQL Server Native Client”),就像你的一样!谢谢!!! –

    相关问题