qtp10使用代码使用连接mysql,运行出错。

qtp10使用代码使用连接mysql,运行出错。,第1张

'确认你的数据库名字和端口号,服务器地址,用户名和密码!

Dim

Conn

Set

Conn=CreateObject("ADODB.Connection")

'Const

'ConnectionString="DSN=ADOLinkMysqlDATABASE=testlink185PWD=rootPORT=3306SERVER=localhostUID=root"

Const

ConnectionString="Driver={Mysql

ODBC

5.1

Driver}DATABASE=testPWD=rootPORT=3306SERVER=localhostUID=root"

Conn.Open

ConnectionString

If

Conn.State<>0Then

Reporter.ReportEvent

micPass,"testing","连接数据库成功"

else

Reporter.ReportEvent

micFail,"testing","连接数据库失败"

End

If

pyqt4连接mysql数据库的方法:

原料:sip-4.17.tar.gz、PyQt-gpl-5.5.1.tar.gz安装包

下载后解压缩到用户目录。

键入以下命令:

python configure.py (或python)

make&sudo make install

1、安装mysql的sqldrivers

默认情况下qt只有SQLite驱动,其它驱动要自己安装:

sudo apt-get install libqt4-sql-mysql libqt5sql5-mysql

sudo apt-get install libqt4-sql-psql libqt5sql5-psql

2、对于安装MATLAB的系统可能出现动态链接库版本问题

如import QtPy模块时出错

>>>from PyQt4.QtQtSql import *

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ImportError: /opt/local/MATLAB/R2012a/bin/glnxa64/QtSql.so.4: undefined symbol: _ZN31

locate QtSql.so

然后把链接改到系统库下

/opt/local/MATLAB/R2012a/bin/glnxa64/libQtSql.so.4 ->/usr/lib/x86_64-linux-gnu/libQtSql.so.4.8.6

我的系统里QtCore、QtGui、QtOpenGL、QtNetwork等都有问题、需要以上 *** 作。修改后未发现MATLAB运行异常

3、测试代码

mysql

#-*- coding: utf-8 -*-

from PyQt4.QtGui import *

from PyQt4.QtCore import *

from PyQt4.QtSql import *

import sys

#创建数据库连接

def createConnection():

#选择数据库类型,这里为mysql数据库

db=QSqlDatabase.addDatabase("QMYSQL")

db.setDatabaseName("you_db")

db.setHostName("localhost") #set address

db.setUserName("you_usr")#set user name

db.setPassword("you_passwd")#set user pwd

#打开数据库

#打开数据库

if (db.open()):

print ("Success")

else:

print ("Failed to connect to mysql")

#创建表

def createTable():

#创建QsqlQuery对象,用于执行sql语句

q=QSqlQuery()

q.exec_("create table if not exists t1 (f1 integer primary key,f2 varchar(20))")

q.exec_("delete from t1")

#这里使用 u 将字符串转换成unicode编码,解决中文乱码

q.exec_(u"insert into t1 values(1,'我')")

q.exec_(u"insert into t1 values(2,'我')")

q.exec_("commit")

class Model(QSqlTableModel):

def __init__(self,parent):

QSqlTableModel.__init__(self,parent)

#设置要载入的表名

self.setTable("t1")

#这一步应该是执行查询的 *** 作

self.select()

#数据更新的策略,详细可以查看Qt文档

self.setEditStrategy(QSqlTableModel.OnManualSubmit)

class TestWidget(QWidget):

def __init__(self):

QWidget.__init__(self)

vbox=QVBoxLayout(self)

self.view=QTableView()

self.model=Model(self.view)

self.view.setModel(self.model)

vbox.addWidget(self.view)

if __name__=="__main__":

a=QApplication(sys.argv)

createConnection()

createTable()

w=TestWidget()

w.show()

sys.exit(a.exec_())

测试完成,连接成功。

1,在.pro文件中修改 QT += sql ,大致如下

TEMPLATE = app

TARGET =

DEPENDPATH += .

INCLUDEPATH += .

QT +=sql

2,在程序中添加数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL")

qDebug()<<QString("add database")

//db.setHostName("192.168.1.126")//远程访问

db.setHostName("localhost")

db.setDatabaseName("test")

//db.setDataBaseName("")

db.setUserName("root")

db.setPassword("000000")

if (!db.open())

return db.lastError()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6681174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存