跳到主要内容

执行单SQL查询

命令说明

执行查询SQL语句,返回查询到的第一行结果。SQL语句占位符:MySQL、SQLServer、PostgreSQL使用%s,Sqlite3使用?,Oracle使用:1

命令原型

iRet = Database.QueryOne(objDatabase ,sql, optionArgs)

命令参数

参数必选类型默认值说明
objDatabaseTrueexpressionobjDatabase数据库对象,使用“创建数据库对象“命令(Database.CreateDB)创建的数据库对象
sqlTruestring""查询SQL语句
rdictFalsebooleanFalse是否返回字典
argsFalseexpression[]SQL语句参数,SQL语句占位符:MySQL和SQLServer使用%s,Sqlite3使用?,Oracle使用:1

返回结果

iRet,将命令运行后的结果赋值给此变量。

运行实例

/*********************************执行单SQL查询***************************************
命令原型:
iRet = Database.QueryOne(objDatabase ,sql, optionArgs)
入参:
objDatabase--数据库对象,使用“创建数据库对象“命令(Database.CreateDB)创建的数据库对象
sql--查询SQL语句
rdict--是否返回字典
args--SQL语句参数,遍历参数的二维数组循环执行SQL语句,SQL语句占位符:MySQL 、SQLServer、PostgreSQL都使用%s,Sqlite3使用?,Oracle使用:1
出参:
iRet--命令运行后的结果
注意事项:
数据库连接使用完后记得及时关闭
连接命令的charset参数需要与服务端保持一致
Oracle数据库的SQL与其他数据库略微有区别,使用Oracle时,SQL语句中表名、列名需要使用双引号,SQL尾部不能带‘;’分号
**********************************************************************************/
Dim objDatabase,sql,iRet
Dim ip,port,username,password,db

//*********************************MySQL***************************************
// 连接MySQL数据库
ip = "127.0.0.1"
port = "3306"
username = "root"
password = "rg+d2Wr8T+Dv10iQBk7VUw=="
db = "test"
objDatabase = Database.CreateDB("MySQL", {
"host": ip,
"port": port,
"user": username,
"password": password,
"database": db,
"charset": "utf8"
})
// 执行单SQL查询
sql = "select * from test"
iRet = Database.QueryOne(objDatabase ,sql)
TracePrint(iRet)
// 关闭数据库连接
Database.CloseDB(objDatabase)

//*********************************PostgreSQL***************************************
// 连接PostGreSQL数据库
ip = "127.0.0.1"
port = "5432"
username = "root"
password = "rg+d2Wr8T+Dv10iQBk7VUw=="
db = "postgres"
objDatabase = Database.CreateDB("PostgreSQL", {
"host": ip,
"port": port,
"user": username,
"password": password,
"database": db
})
// 执行单SQL查询
sql = "select * from test"
iRet = Database.QueryOne(objDatabase ,sql)
TracePrint(iRet)
// 关闭数据库连接
Database.CloseDB(objDatabase)

//*********************************Sqlite3***************************************
// 连接Sqlite3数据库
objDatabase = Database.CreateDB("Sqlite3", {"filepath": '''D:\工作文档\sqlite\test.db'''})
// 执行单SQL查询
sql = "select * from test"
iRet = Database.QueryOne(objDatabase ,sql)
TracePrint(iRet)
// 关闭数据库连接
Database.CloseDB(objDatabase)

//*********************************SQLServer***************************************
// 连接SQLServer数据库
ip = "127.0.0.1"
port = "1433"
username = "SA"
password = "rg+d2Wr8T+Dv10iQBk7VUw=="
db = "TestDB"
objDatabase = Database.CreateDB("PostgreSQL", {
"host": ip,
"port": port,
"user": username,
"password": password,
"database": db,
"charset": "utf8"
})
// 执行查询语句
sql = "select * from Inventory"
iRet = Database.QueryOne(objDatabase ,sql)
TracePrint(iRet)
// 关闭数据库连接
Database.CloseDB(objDatabase)

//*********************************Oracle***************************************
// 连接Oracle数据库
ip = "127.0.0.1"
port = "1521"
username = "oracle"
password = "OvUZIny9qZUrgJE0ho2tnQ=="
service_name = ""
sid = "helowin"
objDatabase = Database.CreateDB("Oracle", {
"host": ip,
"port": port,
"user": username,
"password": password,
"service_name": service_name,
"sid": sid,
"charset": "utf8"
})
// 执行查询语句
sql = '''select * from "student"'''
iRet = Database.QueryOne(objDatabase ,sql, {"rdict": false, "args": []})
TracePrint(iRet)
// 关闭数据库连接
Database.CloseDB(objDatabase)

可视化样例