簡體   English   中英

sqlite3.OperationalError:靠近“show”:語法錯誤

[英]sqlite3.OperationalError: near "show": syntax error

我正在pyqt5構建一個表, pyqt5在表中顯示SQL的輸出。 首先,您必須在命令行中鍵入命令,然后按下按鈕來更新表。

雖然,像insert into table這樣的命令正在工作,但是當我輸入show databases; 在命令行中,它向我顯示了這個錯誤:

Traceback (most recent call last):
  File "c:/Users/intel/Desktop/table.py", line 24, in load_data
    result = connection.execute(inp)
sqlite3.OperationalError: near "show": syntax error

這是我的代碼:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
from PyQt5 import QtWidgets
import sqlite3

inp = input('>> ')

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 table - pythonspot.com'
        self.left = 0
        self.top = 0
        self.width = 300
        self.height = 200
        self.initUI()
#CREATE TABLE employees(email varchar(30), password(30));
    def load_data(self):
        connection = sqlite3.connect('my_db.db')
        #connection.execute(inp)
        #
        result = connection.execute(inp)
        self.tableWidget.setRowCount(0)

        for row_number, row_data in enumerate(result):
            self.tableWidget.insertRow(row_number)
            for column_number, data in enumerate(row_data):
                self.tableWidget.setItem(row_number, column_number, QTableWidgetItem(str(data)))

        connection.close()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.createTable()

        # Add box layout, add table to box layout and add box layout to widget
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.tableWidget) 
        self.setLayout(self.layout) 

        self.btn = QtWidgets.QPushButton(self)
        self.btn.move(100,600)
        self.btn.setText("Hello")
        self.btn.clicked.connect(self.load_data)
        # Show widget
        self.show()

    def createTable(self):

        self.tableWidget = QTableWidget()
        self.tableWidget.setRowCount(1) ##set number of rows 
        self.tableWidget.setColumnCount(8) ##this is fixed for myTableWidget, ensure that both of your tables, sql and qtablewidged have the same number of columns 


        self.tableWidget.move(1,1)

        # table selection change
        self.tableWidget.doubleClicked.connect(self.on_click)

    @pyqtSlot()
    def on_click(self):
        print("\n")
        for currentQTableWidgetItem in self.tableWidget.selectedItems():
            print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_()) 

任何幫助,將不勝感激!!

SQLite 中沒有show databases命令,因為通常只有一個。 但是,有PRAGMA database_list database_list 這將列出主數據庫和任何附加的數據庫(如使用ATTACH DATABASE 'path_to_the_database' the_schema ATTACH

例如PRAGMA database_list; :-

seq name    file
0   main    E:\Navicat\SQlite Databases\soanswers.db
2   sw      E:\Navicat\SQlite Databases\xxx.db  
  • name 是附加數據庫時使用的模式名稱。

否則,如果您想查找 SQLite 數據庫文件,則可能需要搜索文件系統或其中的一部分,可能會檢查文件的前 16 個字節以查找“SQLite 格式 3\\000” database_header

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM