ms sql изменение типа данных в PyQt5 на плавающее и изменение даты = PyQt5.QtCore.QDateTime (гггг, мм, дд, 0, 0) - PullRequest
0 голосов
/ 19 апреля 2020

enter image description here

Привет всем, я подключился к серверу ms sql и отображаю данные таблицы в pyqt5 tablewidget.everything работает нормально. но я вижу, что тип данных изменяется для некоторых столбцов (которые в основном типа int). и столбец даты также изменяется на PyQt5.QtCore.QDateTime (2016, 2, 4, 0, 0). из таблицы, которая уже имеет тип float, у меня нет проблем с этим. Итак, как решить эту проблему? Я имею в виду, я хочу показать данные в tableWidget так же, как Ms sql data.

Note1: Я использовал Convert (int, iinsightAccountID) в query_string, это работало. но я не хочу конвертировать один за другим столбец вручную, потому что у меня слишком много столбцов. Примечание 2: : я не могу изменить тип данных на сервере ms sql, он всегда корректен.

mainWindow.py

 from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QMenu
    from PyQt5 import QtCore, QtGui, QtWidgets
    from window import Ui_MainWindow
    from eventHandler import *
    class MainWindow(QtWidgets.QMainWindow,Ui_MainWindow):
        def __init__(self, parent=None):
            super(MainWindow, self).__init__(parent)
            self.setupUi(self)
            self.positionButton.clicked.connect(self.poscall)
        def poscall(self):
            input_value=self.lineEdit.text()
            type_value=str(self.comboBox.currentText()
            positionData=loadPosition(input_value,type_value)

            header_list = positionData[0]
            value_list =  positionData[1]
            no_rows = len(value_list)
            no_columns= len(header_list)

            self.tableWidget.setRowCount(no_rows)
            self.tableWidget.setColumnCount(no_columns)

            self.tableWidget.setHorizontalHeaderLabels(tuple(header_list))
            self.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
            self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)

            for row in range(no_rows):
                for col in range(no_columns):
                    self.tableWidget.setItem(row,col,QTableWidgetItem(str(value_list[row][col])))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

eventHandler.py

   from database import *
from PyQt5 import QtCore, QtGui, QtWidgets
from  PyQt5.QtWidgets import *

def loadPosition(input_value,type_value):

    if type_value=="AccountID":
        query_string="SELECT iinsightaccountid,dtpositiondate,* from insightProcessing.dbo.insightPositions(nolock) where iinsightAccountID="+input_value

        mydata=loadData(query_string)
        header_list = mydata[0]
        value_list =  mydata[1]
        return (mydata)


    if type_value=="Account Number":
        query_string="SELECT  top 100 dtPositionDate,iinsightAccountID from insightProcessing.dbo.insightPositions(nolock) where vchCustodianAccountNumber="+input_value
        mydata=loadData(query_string)
        header_list = mydata[0]
        value_list =  mydata[1]
        return (mydata)

database.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...