import mysql;

io.open();

io.stdout.write("正在连接到 MySQL 服务器...");
var link = mysql(
	"localhost",	// IP
	"root",			// 用户名
	"123456"		// 密码
);
 
if ( ! link.handle ) {
	io.print('\r ...连接到 MySQL 服务器失败');
}
else {
	io.print('\r ...已连接到 MySQL 服务器');
	
	link.query("SET NAMES 'gbk'"); // 设置 MySQL 编码
	// 也可用 link.set_charset("gbk");
	
	// 创建数据库: aautotest
	io.print("正在创建数据库: aautotest...");
	if (!link.query("CREATE DATABASE IF NOT EXISTS `aautotest`")) {
		io.print("创建数据库失败: " + link.error);
		link.close();
		return;
	}
	
	// 选择数据库: aautotest
	io.print("正在选择数据库: aautotest...");
	if (!link.select_db("aautotest")) {
		io.print("选择库失败: " + link.error);
		link.close();
		return;
	}
	
	// 创建表: temp
	io.print("正在创建表: temp...");
	var re = link.query(
		"CREATE TABLE IF NOT EXISTS `temp` (
			`id` smallint(11) unsigned NOT NULL AUTO_INCREMENT,
  			`username` varchar(20) NOT NULL,
  			`password` varchar(32) NOT NULL,
  			PRIMARY KEY (`id`),
  			UNIQUE KEY `username` (`username`)
		) CHARSET=gb2312"
	);
	if (!re) {
		io.print("创建表失败: " + link.error);
		link.close();
		return;
	}
	
	// 加入数据
	io.print("正在向表中加入数据...");
	
	var t = time.tick();
	// 开始事务
	link.autocommit(false);
	for (i = 1; 2000) {
		link.query("INSERT INTO `temp` (`username`,`password`) VALUES ('测试记录" + i + "', '" + i + "')");
	}
	// 提交事务
	link.commit();
	// 关闭事务
	link.autocommit(true);
	io.print("添加 2000 条记录完成，共耗时: " + tostring(time.tick() - t) + "ms");
	
	// 倒序读出数据
	io.print("正在倒序读出前十条数据...");
	// link.query 返回的是一个记录集
	var result = link.query("SELECT `id`,`username`,`password` FROM `temp` ORDER BY `id` DESC LIMIT 10");
	if (!result) {
		io.print("读取数据失败: " + link.error);
		link.close();
		return;
	}
	io.print("id", "username", "password");
	var row = result.fetch_array();
	while (row) {
		io.print(row.id, row.username, row.password);
		row = result.fetch_array();
	}
	result.free(); // 释放记录集
	
	// 删除表: temp
	io.print("正在删除表: temp...");
	if (!link.query("DROP TABLE IF EXISTS `temp`")) {
		io.print("删除表失败: " + link.error);
		link.close();
		return;
	}
} 
link.close();

io.print("演示结束，按任意键退出...");
execute("pause > nul");
io.close();