aardio 文档

mysql.client 库模块帮助文档

mysql 成员列表 #

mysql.client( 连接参数表 ) #

mysql.client(  
    server = "localhost";  
    database = "数据库名";  
    uid = "用户名";  
    pwd = "密码";  
);

mysql.client() #

返回对象:mysqlClientObject

mysql.client 成员列表 #

mysql客户端

mysql.client.pluginDir #

默认插件目录,
默认值为 "%LocalAppData%\aardio\mariadb\plugin\客户端主版本号.次版本号"。
连接时如果连接参数中用 pluginDir 字段指定了插件目录,
则忽略 mysql.client.pluginDir

mysql.client.version() #

客户端版本。
返回 XYYZZ 格式的数值:
X为主版本号,YY为副版本号,ZZ 为修订版本号。
如果参数 @1 为 true,则返回字符串格式版本号 "X.Y.Z"

mysqlClientObject 成员列表 #

mysqlClientObject.beginTrans() #

开始事务

mysqlClientObject.changeUser("用户名","密码","数据库名") #

修改登录用户

mysqlClientObject.characterSetName() #

当前连接的默认字符集

mysqlClientObject.charset #

连接的默认字符集,默认为UTF8,
不建议更改此值

mysqlClientObject.clearResult() #

清空查询返回值
如果下次查询报错"Commands out of sync; you can't run this command now"
则应在查询前调用此函数

mysqlClientObject.close() #

关闭服务器连接

mysqlClientObject.commitTrans() #

提交事务

mysqlClientObject.connection #

数据库连接句柄
不要修改该属性

mysqlClientObject.createDb("数据库名") #

如果数据库不存在则创建数据库,
如果成功创建数据库则调用selectDb函数选择数据库
所有操作成功返回true

mysqlClientObject.debug(调试信息) #

用给定的字符串执行DBUG_PUSH

mysqlClientObject.dropDb("数据库名") #

如果存在该数据库则删除

mysqlClientObject.dumpDebugInfo() #

让服务器将调试信息写入日志

mysqlClientObject.each() #

for 字段名,,/*注意首字段必须为非空值*/字段名2 in mysqlClientObject.each("SELECT * FROM 'MYTABLE'"){  

}

mysqlClientObject.errno #

返回错误代码

mysqlClientObject.escape() #

转义参数指定值为用于 MySQL 查询语句的参数化值

mysqlClientObject.escapeId() #

如果传入参数是文本则转换为 SQL 标识符,
返回文本首尾会添加反引号,

如果传入参数是表, 则格式化为 SQL 键值对并以 AND 为分隔符,
如果表中的值为数组,则格式化为 IN 语句

mysqlClientObject.escapeString() #

转义参数指定值为用于 MySQL 查询语句参数化字符串
返回文本不会在首尾添加单引号

将字符串编码为合法的转义SQL字符串,
格式化命名参数时,字符串会自动调用该函数转义为安全的字符串

mysqlClientObject.format(SQL语句,格式化参数...) #

格式化 SQL 查询语句。
所有需要格式化 SQL 语句的函数调用此函数格式化 SQL语句,
如果格式化参数不是表则调用 string.format 格式化,否则按以下规则格式化:

SQL语句中?或??占位符使用表的数组元素格式化,
@字符开始的命名参数使用表的名值对元素格式化,
其中??格式化为标识符,其他占位符格式化为参数值。

字符串转为SQL安全转义字符串,buffer转为X'4D7953514C'格式,
数组则自动展开为列表,例如{'a', 'b'}格式化为'a', 'b'
嵌套数组则格式化为分组列表,例如{{'a', 'b'}, {'c', 'd'}} 格式化为 ('a', 'b'), ('c', 'd')
非数组的命名表,则格式化为 SQL 键值对,默认以逗号为分隔符,
??占位符格式化 SQL 键值对则以 AND 为分隔符,并将数组值转换为IN语句

mysqlClientObject.getAffectedRows() #

sql语句执行后影响的记录行数

mysqlClientObject.getInfo() #

返回最近执行查询信息的文本描述

mysqlClientObject.getProtoInfo() #

返回当前连接所使用的协议版本

mysqlClientObject.getServerVersion() #

服务端版本。
返回 XYYZZ 格式的数值:
X为主版本号,YY为副版本号,ZZ 为修订版本号。
如果参数 @1 为 true,则返回字符串格式版本号 "X.Y.Z"

mysqlClientObject.getSqlstate() #

返回关于上一个错误的SQLSTATE错误代码

mysqlClientObject.getTable("SELECT * FROM 表名",格式化参数) #

执行SQL返回包含行记录组成的table数组对象,
每行是由列名、值组成的table表对象
格式化参数规则请参考 format 函数说明,
格式化参数也可以是一个表参数,用于替换SQL中占位符指定的参数,
如果参数表不是数组,SQL语句用@前缀标明命名参数,
如果格式化参数是数组,请使用?或??占位符

mysqlClientObject.getThreadId() #

返回连接的线程ID,可传入kill函数以杀死线程

mysqlClientObject.kill() #

杀死线程,参数指定线程ID

mysqlClientObject.lastInsertId() #

最后插入记录的ID

mysqlClientObject.lasterr() #

返回错误信息,错误代码

mysqlClientObject.listDbs("查找数据库名") #

查找数据库并返回记录集
数据库名允许使用SQL通配符%或下划线
不指定数据库名则返回所有数据库

mysqlClientObject.listDbs() #

返回对象:mysqlRecordsetObject

mysqlClientObject.listFields("表名","查找字段") #

查找字段并返回记录集
字段名允许使用SQL通配符%或下划线
不指定字段名则返回全部字段

mysqlClientObject.listFields() #

返回对象:mysqlRecordsetObject

mysqlClientObject.listProcesses() #

返回描述当前服务器线程的结果集

返回对象:mysqlRecordsetObject

mysqlClientObject.listTables("查找表名") #

查找表名并返回记录集
表名允许使用SQL通配符%或下划线
不指定表名则返回所有表

mysqlClientObject.listTables() #

返回对象:mysqlRecordsetObject

mysqlClientObject.moreResults() #

是否有其他返回值,
使用useNextResult或storeNextResult返回下一个返回值

mysqlClientObject.mysqlDb #

数据库对象句柄
不要修改该属性

mysqlClientObject.nextResult() #

如果还有下一个返回值,返回真

mysqlClientObject.open( 连接参数表 ) #

mysqlClientObject.open(  
    server = ".";  
    database = "数据库名";  
    uid = "用户名";  
    pwd = "密码";  
);

mysqlClientObject.ping() #

检查与服务器的连接是否工作,如有必要重新连接

mysqlClientObject.query #

= 执行SQL并调用 storeResult 函数返回值,
无返回记录的SQL执行成功返回包含字段 affectedRows(影响记录行数),insertId(最后插入ID)的表对象,
如果SQL查询出错返回空值以及错误信息

mysqlClientObject.query("SELECT * FROM 表名",格式化参数) #

执行参数 @1 指定的SQL语句,
可选指定格式化参数,格式化规则请参考 format 函数说明,
格式化参数可以是一个表参数,用于替换SQL中占位符指定的参数,
如果参数表不是数组,SQL语句用@前缀标明命名参数,
如果格式化参数是数组,请使用?或??占位符

mysqlClientObject.query() #

返回对象:mysqlRecordsetObject

mysqlClientObject.refresh() #

刷新表或高速缓冲或复位复制服务器信息,
用户必须具有RELOAD权限

mysqlClientObject.rollbackTrans() #

回滚事务

mysqlClientObject.selectDb("数据库名") #

设置当前默认数据库,成功返回true,
类似sql中的 use 数据库名

mysqlClientObject.setOption(选项,值) #

可用于设置额外的连接选项,并影响连接的行为,
值可以是字符串,整数,布尔值或结构体

mysqlClientObject.shutdown() #

关闭SQL服务器

mysqlClientObject.sslSet(key文件路径名,证书文件路径,授权文件路径,包含受信任CA证书目录,允许密码的列表) #

该函数必须在调用open函数打开连接前调用

mysqlClientObject.stat() #

以字符串形式返回服务器状态

mysqlClientObject.stepQuery("SELECT * FROM 表名",格式化参数) #

用法与query函数类似,
但直接返回首行数据库并关闭结果集
格式化参数规则请参考 format 函数说明,
格式化参数也可以是一个表参数,用于替换SQL中占位符指定的参数,
如果参数表不是数组,SQL语句用@前缀标明命名参数,
如果格式化参数是数组,请使用?或??占位符

mysqlClientObject.storeNextResult() #

如果有其他返回值,获取下一个返回值
在客户端缓存记录集

返回对象:mysqlRecordsetObject

mysqlClientObject.storeResult() #

获取返回值,在客户端缓存记录集

返回对象:mysqlRecordsetObject

mysqlClientObject.useNextResult() #

如果有其他返回值,获取下一个返回值
在SQL服务器上缓存记录集

返回对象:mysqlRecordsetObject

mysqlClientObject.useResult() #

获取返回值,在SQL服务器上缓存记录集

返回对象:mysqlRecordsetObject

mysqlClientObject.warningCount #

返回执行前一个SQL语句期间生成的告警数目

mysqlRecordsetObject 成员列表 #

mysqlRecordsetObject.affectedRows #

影响记录行数,
执行无返回数据的 SQL 此字段才会有值

mysqlRecordsetObject.dataSeek(行号) #

在查询结果集中寻找任意行。偏移值为行号,范围从0到numRows-1

mysqlRecordsetObject.each() #

for 字段名,/*注意首字段必须为非空值*/字段名2 in mysqlRecordsetObject.each(){  

}

mysqlRecordsetObject.eof() #

是否已到结果集尾部

mysqlRecordsetObject.fetchFieldLengths() #

返回当前行所有数据列的的长度数组
仅对当前行有效

mysqlRecordsetObject.fetchFieldTypes() #

返回所有字段类型描述

mysqlRecordsetObject.fetchObject() #

stepQuery 函数的别名,
返回下一行记录的以字段名为键的关联数组

mysqlRecordsetObject.fetchRow() #

返回下一行记录列数组

mysqlRecordsetObject.free() #

释放记录集,
释放后不能再调用其他使用该记录集的函数

mysqlRecordsetObject.getColumns() #

返回所有列名数组

mysqlRecordsetObject.getTable() #

返回包含行记录组成的table数组对象,
每行是由列名、值组成的table表对象

mysqlRecordsetObject.insertId #

最后插入 ID,
执行无返回数据的 SQL 此字段才会有值

mysqlRecordsetObject.numFields() #

返回字段总数

mysqlRecordsetObject.numRows() #

返回行数
使用useResult创建的结果集必须在调用fetchRow获取所有行后才能调用该函数

mysqlRecordsetObject.rowSeek(行偏移量) #

将行光标置于查询结果集中的任意行,并返回当前行号
偏移值相对于rowTellb函数返回的当前行号
该函数要求在客户端包含全部结果,即使用storeResult创建结果集

mysqlRecordsetObject.rowTell() #

返回当前行号
该函数要求在客户端包含全部结果,即使用storeResult创建结果集

mysqlRecordsetObject.stepQuery() #

fetchObject 函数的别名,
返回下一行记录的以字段名为键的关联数组

全局常量

::MySql #

返回对象:dllModuleObject

自动完成常量

_MYSQL_DATABASE_DRIVER=0x1B58
_MYSQL_DEFAULT_AUTH=0x17
_MYSQL_INIT_COMMAND=2
_MYSQL_OPT_BIND=0x18
_MYSQL_OPT_COMPRESS=1
_MYSQL_OPT_CONNECT_ATTR_ADD=0x21
_MYSQL_OPT_CONNECT_ATTR_DELETE=0x22
_MYSQL_OPT_CONNECT_ATTR_RESET=0x20
_MYSQL_OPT_CONNECT_TIMEOUT=0
_MYSQL_OPT_GUESS_CONNECTION=0x10
_MYSQL_OPT_LOCAL_INFILE=8
_MYSQL_OPT_NAMED_PIPE=6
_MYSQL_OPT_NONBLOCK=0x1770
_MYSQL_OPT_PROTOCOL=9
_MYSQL_OPT_READ_TIMEOUT=0xB
_MYSQL_OPT_RECONNECT=0x14
_MYSQL_OPT_SSL_CA=0x1B
_MYSQL_OPT_SSL_CAPATH=0x1C
_MYSQL_OPT_SSL_CERT=0x1A
_MYSQL_OPT_SSL_CIPHER=0x1D
_MYSQL_OPT_SSL_CRL=0x1E
_MYSQL_OPT_SSL_CRLPATH=0x1F
_MYSQL_OPT_SSL_KEY=0x19
_MYSQL_OPT_SSL_VERIFY_SERVER_CERT=0x15
_MYSQL_OPT_USE_EMBEDDED_CONNECTION=0xF
_MYSQL_OPT_USE_REMOTE_CONNECTION=0xE
_MYSQL_OPT_USE_RESULT=0xD
_MYSQL_OPT_WRITE_TIMEOUT=0xC
_MYSQL_PLUGIN_DIR=0x16
_MYSQL_PROGRESS_CALLBACK=0x176F
_MYSQL_READ_DEFAULT_FILE=3
_MYSQL_READ_DEFAULT_GROUP=4
_MYSQL_REPORT_DATA_TRUNCATION=0x13
_MYSQL_SECURE_AUTH=0x12
_MYSQL_SET_CHARSET_DIR=5
_MYSQL_SET_CHARSET_NAME=7
_MYSQL_SET_CLIENT_IP=0x11
_MYSQL_SHARED_MEMORY_BASE_NAME=0xA

Markdown 格式