eric6/SqlBrowser/SqlBrowserWidget.py

changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8218
7c09585bd960
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
111 """ 111 """
112 Private slot to clear the table. 112 Private slot to clear the table.
113 """ 113 """
114 model = QStandardItemModel(self.table) 114 model = QStandardItemModel(self.table)
115 self.table.setModel(model) 115 self.table.setModel(model)
116 self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) 116 self.table.setEditTriggers(
117 QAbstractItemView.EditTrigger.NoEditTriggers)
117 118
118 self.updateActions() 119 self.updateActions()
119 120
120 def addConnection(self, driver, dbName, user, password, host, port): 121 def addConnection(self, driver, dbName, user, password, host, port):
121 """ 122 """
151 """ 152 """
152 Public slot to add a database connection via an input dialog. 153 Public slot to add a database connection via an input dialog.
153 """ 154 """
154 from .SqlConnectionDialog import SqlConnectionDialog 155 from .SqlConnectionDialog import SqlConnectionDialog
155 dlg = SqlConnectionDialog(self) 156 dlg = SqlConnectionDialog(self)
156 if dlg.exec() == QDialog.Accepted: 157 if dlg.exec() == QDialog.DialogCode.Accepted:
157 driver, dbName, user, password, host, port = dlg.getData() 158 driver, dbName, user, password, host, port = dlg.getData()
158 err = self.addConnection( 159 err = self.addConnection(
159 driver, dbName, user, password, host, port) 160 driver, dbName, user, password, host, port)
160 161
161 if err.type() != QSqlError.NoError: 162 if err.type() != QSqlError.ErrorType.NoError:
162 E5MessageBox.warning( 163 E5MessageBox.warning(
163 self, 164 self,
164 self.tr("Unable to open database"), 165 self.tr("Unable to open database"),
165 self.tr( 166 self.tr(
166 """An error occurred while opening the connection.""")) 167 """An error occurred while opening the connection."""))
170 Public slot to show the contents of a table. 171 Public slot to show the contents of a table.
171 172
172 @param table name of the table to be shown (string) 173 @param table name of the table to be shown (string)
173 """ 174 """
174 model = QSqlTableModel(self.table, self.connections.currentDatabase()) 175 model = QSqlTableModel(self.table, self.connections.currentDatabase())
175 model.setEditStrategy(QSqlTableModel.OnRowChange) 176 model.setEditStrategy(QSqlTableModel.EditStrategy.OnRowChange)
176 model.setTable(table) 177 model.setTable(table)
177 model.select() 178 model.select()
178 if model.lastError().type() != QSqlError.NoError: 179 if model.lastError().type() != QSqlError.ErrorType.NoError:
179 self.statusMessage.emit(model.lastError().text()) 180 self.statusMessage.emit(model.lastError().text())
180 self.table.setModel(model) 181 self.table.setModel(model)
181 self.table.setEditTriggers( 182 self.table.setEditTriggers(
182 QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed) 183 QAbstractItemView.EditTrigger.DoubleClicked |
184 QAbstractItemView.EditTrigger.EditKeyPressed)
183 185
184 self.table.resizeColumnsToContents() 186 self.table.resizeColumnsToContents()
185 187
186 self.table.selectionModel().currentRowChanged.connect( 188 self.table.selectionModel().currentRowChanged.connect(
187 self.updateActions) 189 self.updateActions)
198 model = QStandardItemModel(self.table) 200 model = QStandardItemModel(self.table)
199 201
200 model.insertRows(0, rec.count()) 202 model.insertRows(0, rec.count())
201 model.insertColumns(0, 7) 203 model.insertColumns(0, 7)
202 204
203 model.setHeaderData(0, Qt.Horizontal, "Fieldname") 205 model.setHeaderData(0, Qt.Orientation.Horizontal, "Fieldname")
204 model.setHeaderData(1, Qt.Horizontal, "Type") 206 model.setHeaderData(1, Qt.Orientation.Horizontal, "Type")
205 model.setHeaderData(2, Qt.Horizontal, "Length") 207 model.setHeaderData(2, Qt.Orientation.Horizontal, "Length")
206 model.setHeaderData(3, Qt.Horizontal, "Precision") 208 model.setHeaderData(3, Qt.Orientation.Horizontal, "Precision")
207 model.setHeaderData(4, Qt.Horizontal, "Required") 209 model.setHeaderData(4, Qt.Orientation.Horizontal, "Required")
208 model.setHeaderData(5, Qt.Horizontal, "Auto Value") 210 model.setHeaderData(5, Qt.Orientation.Horizontal, "Auto Value")
209 model.setHeaderData(6, Qt.Horizontal, "Default Value") 211 model.setHeaderData(6, Qt.Orientation.Horizontal, "Default Value")
210 212
211 for i in range(rec.count()): 213 for i in range(rec.count()):
212 fld = rec.field(i) 214 fld = rec.field(i)
213 model.setData(model.index(i, 0), fld.name()) 215 model.setData(model.index(i, 0), fld.name())
214 if fld.typeID() == -1: 216 if fld.typeID() == -1:
232 model.setData(model.index(i, 4), bool(fld.requiredStatus())) 234 model.setData(model.index(i, 4), bool(fld.requiredStatus()))
233 model.setData(model.index(i, 5), fld.isAutoValue()) 235 model.setData(model.index(i, 5), fld.isAutoValue())
234 model.setData(model.index(i, 6), fld.defaultValue()) 236 model.setData(model.index(i, 6), fld.defaultValue())
235 237
236 self.table.setModel(model) 238 self.table.setModel(model)
237 self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) 239 self.table.setEditTriggers(
240 QAbstractItemView.EditTrigger.NoEditTriggers)
238 241
239 self.table.resizeColumnsToContents() 242 self.table.resizeColumnsToContents()
240 243
241 self.updateActions() 244 self.updateActions()
242 245
274 """ 277 """
275 model = self.table.model() 278 model = self.table.model()
276 if not isinstance(model, QSqlTableModel): 279 if not isinstance(model, QSqlTableModel):
277 return 280 return
278 281
279 model.setEditStrategy(QSqlTableModel.OnManualSubmit) 282 model.setEditStrategy(QSqlTableModel.EditStrategy.OnManualSubmit)
280 283
281 currentSelection = self.table.selectionModel().selectedIndexes() 284 currentSelection = self.table.selectionModel().selectedIndexes()
282 for selectedIndex in currentSelection: 285 for selectedIndex in currentSelection:
283 if selectedIndex.column() != 0: 286 if selectedIndex.column() != 0:
284 continue 287 continue
285 model.removeRow(selectedIndex.row()) 288 model.removeRow(selectedIndex.row())
286 289
287 model.submitAll() 290 model.submitAll()
288 model.setEditStrategy(QSqlTableModel.OnRowChange) 291 model.setEditStrategy(QSqlTableModel.EditStrategy.OnRowChange)
289 292
290 self.updateActions() 293 self.updateActions()
291 294
292 def executeQuery(self): 295 def executeQuery(self):
293 """ 296 """
296 model = QSqlQueryModel(self.table) 299 model = QSqlQueryModel(self.table)
297 model.setQuery(QSqlQuery( 300 model.setQuery(QSqlQuery(
298 self.sqlEdit.toPlainText(), self.connections.currentDatabase())) 301 self.sqlEdit.toPlainText(), self.connections.currentDatabase()))
299 self.table.setModel(model) 302 self.table.setModel(model)
300 303
301 if model.lastError().type() != QSqlError.NoError: 304 if model.lastError().type() != QSqlError.ErrorType.NoError:
302 self.statusMessage.emit(model.lastError().text()) 305 self.statusMessage.emit(model.lastError().text())
303 elif model.query().isSelect(): 306 elif model.query().isSelect():
304 self.statusMessage.emit(self.tr("Query OK.")) 307 self.statusMessage.emit(self.tr("Query OK."))
305 else: 308 else:
306 self.statusMessage.emit( 309 self.statusMessage.emit(

eric ide

mercurial