Python 2.7.2, PyQt 4.8.4-1, PyInstaller 1.5, WinXp, база- MS SQL Server 2008.
Есть вот такой вот код:
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore, QtSql
if __name__ == '__main__' :
import sys
app = QtGui.QApplication(sys.argv)
codec = QtCore.QTextCodec.codecForName("UTF-8")
QtCore.QTextCodec.setCodecForCStrings(codec)
database = QtSql.QSqlDatabase().addDatabase('QODBC')
database.setUserName('sa')#192.168.12.44
database.setPassword('123123')#93.188.153.130,9999
database.setDatabaseName("Driver={SQL Server Native Client 10.0};Server=192.168.12.44;Database=infopin;Uid=sa;Pwd=123123;")
database.open()
res = QtSql.QSqlQueryModel()
res.setQuery('select tp.id , tp.name , COUNT(cust.CustomerID) as "count" , tp.date_from , tp.date_to , case tp.is_active when 1 then 1 else 0 end active, tp.min_charge , tp.user_charge , sum(ac.user_charge) sum from infopin.tarifficator.tariff_plan tp left join infopin.tarifficator.tariff_plan_type tpt on tp.type_id= tpt.id left join infopin.dbo.Customers cust on cust.TarifID=tp.id left join infopin.tarifficator.available_component ac on ac.tariff_plan_id=tp.id where tp.type_id = 1 group by tp.id, tp.name, tpt.name, tp.date_from, tp.date_to, tp.user_charge, tp.min_charge, tp.is_active', database)
mw = QtGui.QTableView()
mw.setModel(res)
mw.show()
query_result = QtSql.QSqlQuery(database)
query_result.exec_('select tp.id , tp.name , COUNT(cust.CustomerID) as "count" , tp.date_from , tp.date_to , case tp.is_active when 1 then 1 else 0 end active, tp.min_charge , tp.user_charge , sum(ac.user_charge) sum from infopin.tarifficator.tariff_plan tp left join infopin.tarifficator.tariff_plan_type tpt on tp.type_id= tpt.id left join infopin.dbo.Customers cust on cust.TarifID=tp.id left join infopin.tarifficator.available_component ac on ac.tariff_plan_id=tp.id where tp.type_id = 1 group by tp.id, tp.name, tpt.name, tp.date_from, tp.date_to, tp.user_charge, tp.min_charge, tp.is_active')
result = []
r = query_result.record()
cnt = r.count()
while query_result.next() :
for i in xrange(0, cnt):
print r.fieldName(i), query_result.value(i).isNull(), query_result.value(i).isValid()
hr = dict(((str(r.fieldName(i)), unicode(query_result.value(i).toString())) for i in xrange(0, cnt)))
result.append(hr)
print [str(i) for i in database.drivers()]
driver = database.driver()
print driver, driver.objectName(), driver.hasFeature(QtSql.QSqlDriver.LowPrecisionNumbers), driver.lastError().text()
sys.exit(app.exec_())
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)