我在Win7 x64上,使用Python 2.7.1 x64.我正在将我在VC++中创建的应用程序移植到Python中,用于教育目的.
使用以下连接字符串连接到MS Access 2007格式DB文件时,原始应用程序没有问题:
OleDbConnection^ conn = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|DB.accdb");
现在,当我尝试使用pyodbc和以下连接到Python中的同一个DB文件(放入C:\这次)时conenction字符串:
conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\DB.accdb;")
,也不管我是否保留OLEDB提供商或我使用Provider=MSDASQL;提到这里(MS提到它不是availiable 64位),我不断收到以下错误:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')
什么可能导致这个问题?
ADD:我已经更仔细地研究了pyodbc文档并尝试了conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c:\\DB.accdb;")- 同样的错误.这真的很奇怪,因为pyodbc.dataSources()表明我有这个提供者.
ADD2:我想win32com.client使用如这里为了使用OLE DB连接-没有成功.似乎这是不可能的,没有任何作用.
我正在开发一个具有QTableWidget的PyQt应用程序,它可能用于显示大量行.我想,每个列的宽度将由整列的最大元素宽度不仅由在的程序化细胞添加数据到表格部件的时刻显示的最大的元素来定义.
resizeColumnToContents()方法描述中的Qt文档说明了这一点
仅调整可见列的大小.重新实现sizeHintForColumn()以调整隐藏列的大小.
问题是,我究竟应该如何正确地做到这一点?不幸的是,我没有PyQt的实际经验,我无法找到任何这种方法的来源给我任何关于我应该怎么做的线索.
是否可以根据在任何给定时刻显示的当前内容进行调整大小,即在表格小部件收到任何paintEvent之后调整大小?