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 格式