
外部数据库:外部数据库组件:ODBC与ADO :SQL语言外部数据库组件:数据库连接和记录集:记录集组件:示例连接MYSQL数据库:.版本 2 .支持库 mysql .程序集 窗口程序集_启动窗口 .程序集变量 数据库, 整数型 .程序集变量 记录集, 整数型 .子程序 _按钮_连接数据库_被单击 数据库 连接MySql (“192.168.15.4”, “test”, “123456”, “testdb”, 3306) .如果真 (数据库 0) 信息框 (“数据库连接失败”, 0, , ) 返回 () .如果真结束 执行SQL语句 (数据库, “SET NAMES GBK”) 信息框 (“数据库连接成功”, 0, , ) .子程序 _按钮_查询数据_被单击 .局部变量 用户名, 文本型 .局部变量 年龄, 文本型 .局部变量 SQL, 文本型 .局部变量 结果文本, 文本型 .局部变量 总行数, 整数型 .局部变量 i, 整数型 .如果真 (数据库 0) 信息框 (“请先连接数据库”, 0, , ) 返回 () .如果真结束 编辑框_显示结果.内容 “” 结果文本 “” SQL “SELECT * FROM users” .如果真 (执行SQL语句 (数据库, SQL) 假) 信息框 (“查询失败”, 0, , ) 返回 () .如果真结束 记录集 取记录集 (数据库) .如果真 (记录集 0) 信息框 (“暂无数据”, 0, , ) 返回 () .如果真结束 总行数 取记录集行数 (记录集) .如果真 (总行数 ≤ 0) 释放记录集 (记录集) 记录集 0 信息框 (“没有数据”, 0, , ) 返回 () .如果真结束 .如果真 (到首行 (记录集)) .计次循环首 (总行数, i) 读字段值 (记录集, “name”, 用户名) 读字段值 (记录集, “age”, 年龄) 结果文本 结果文本 “用户名” 用户名 “ 年龄” 年龄 #换行符 .如果真 (i 总行数) 到下一行 (记录集) .如果真结束 .计次循环尾 () .如果真结束 编辑框_显示结果.内容 结果文本 释放记录集 (记录集) 记录集 0 .子程序 _按钮_插入数据_被单击 .局部变量 SQL, 文本型 .局部变量 用户名, 文本型 .局部变量 年龄, 文本型 .局部变量 是否正在执行, 逻辑型, 静态 .局部变量 影响行数, 整数型 .局部变量 重复检查SQL, 文本型 .局部变量 重复记录集, 整数型 .局部变量 已存在数量, 整数型 .局部变量 计数文本, 文本型 防重复点击保护 .如果真 (是否正在执行 真) 返回 () .如果真结束 是否正在执行 真 .如果真 (数据库 0) 信息框 (“请先连接数据库”, 0, , ) 是否正在执行 假 返回 () .如果真结束 .如果真 (输入框 (“请输入用户名”, “新增用户”, , 用户名, , ) 假 或 用户名 “”) 信息框 (“用户名不能为空”, 0, , ) 是否正在执行 假 返回 () .如果真结束 .如果真 (输入框 (“请输入年龄”, “新增用户”, , 年龄, , ) 假 或 年龄 “”) 信息框 (“年龄不能为空”, 0, , ) 是否正在执行 假 返回 () .如果真结束 先转义输入内容避免SQL注入 用户名 子文本替换 (用户名, “”, “”, , , 假) 年龄 子文本替换 (年龄, “”, “”, , , 假) 重复用户名校验代码 重复检查SQL “SELECT COUNT(*) FROM users WHERE name” 用户名 “” .如果真 (执行SQL语句 (数据库, 重复检查SQL) 假) 信息框 (“校验用户名失败”, 0, , ) 是否正在执行 假 返回 () .如果真结束 重复记录集 取记录集 (数据库) .如果真 (重复记录集 ≠ 0) 用官方原生的读字段值读取第0列的计数字段再转成整数 读字段值 (重复记录集, 0, 计数文本) 已存在数量 到整数 (计数文本) 释放记录集 (重复记录集) 重复记录集 0 .如果真 (已存在数量 0) 信息框 (“用户名【” 用户名 “】已经存在不允许重复添加”, 0, , ) 是否正在执行 假 返回 () .如果真结束 .如果真结束 执行插入 SQL “INSERT INTO users (name, age) VALUES (” 用户名 “, ” 年龄 “)” .如果真 (执行SQL语句 (数据库, SQL) 真) 影响行数 取影响行数 (数据库) 信息框 (“插入成功共插入” 到文本 (影响行数) “条记录”, 0, , ) _按钮_查询数据_被单击 () 刷新列表 是否正在执行 假 返回 () .如果真结束 清理冗余的重复执行SQL的错误分支 信息框 (“插入失败”, 0, , ) 是否正在执行 假 .子程序 _按钮_更新数据_被单击 .局部变量 SQL, 文本型 .局部变量 原用户名, 文本型 .局部变量 新用户名, 文本型 .局部变量 新年龄, 文本型 .局部变量 影响行数, 整数型 .如果真 (数据库 0) 信息框 (“请先连接数据库”, 0, , ) 返回 () .如果真结束 .如果真 (输入框 (“请输入要修改的【原用户名】”, “更新用户”, , 原用户名, , ) 假 或 原用户名 “”) 返回 () .如果真结束 .如果真 (输入框 (“请输入新用户名”, “更新用户”, 原用户名, 新用户名, , ) 假 或 新用户名 “”) 信息框 (“新用户名不能为空”, 0, , ) 返回 () .如果真结束 .如果真 (输入框 (“请输入新年龄”, “更新用户”, , 新年龄, , ) 假 或 新年龄 “”) 信息框 (“新年龄不能为空”, 0, , ) 返回 () .如果真结束 原用户名 子文本替换 (原用户名, “”, “”, , , 假) 新用户名 子文本替换 (新用户名, “”, “”, , , 假) 新年龄 子文本替换 (新年龄, “”, “”, , , 假) SQL “UPDATE users SET name” 新用户名 “, age” 新年龄 “ WHERE name” 原用户名 “” .如果真 (执行SQL语句 (数据库, SQL) 真) 影响行数 取影响行数 (数据库) .如果真 (影响行数 0) 信息框 (“未找到用户【” 原用户名 “】”, 0, , ) 返回 () .如果真结束 信息框 (“更新成功共更新” 到文本 (影响行数) “条记录”, 0, , ) _按钮_查询数据_被单击 () .如果真结束 .如果真 (执行SQL语句 (数据库, SQL) 假) 信息框 (“更新失败”, 0, , ) .如果真结束 .子程序 _按钮_删除数据_被单击 .局部变量 SQL, 文本型 .局部变量 用户名, 文本型 .局部变量 确认, 整数型 .局部变量 影响行数, 整数型 .如果真 (数据库 0) 信息框 (“请先连接数据库”, 0, , ) 返回 () .如果真结束 .如果真 (输入框 (“请输入要删除的用户名”, “删除用户”, , 用户名, , ) 假 或 用户名 “”) 返回 () .如果真结束 确认 信息框 (“确定删除用户【” 用户名 “】吗”, 4 256, “确认”, ) .如果真 (确认 7) 返回 () .如果真结束 用户名 子文本替换 (用户名, “”, “”, , , 假) SQL “DELETE FROM users WHERE name” 用户名 “” .如果真 (执行SQL语句 (数据库, SQL) 真) 影响行数 取影响行数 (数据库) .如果真 (影响行数 0) 信息框 (“未找到用户【” 用户名 “】”, 0, , ) 返回 () .如果真结束 信息框 (“删除成功共删除” 到文本 (影响行数) “条记录”, 0, , ) _按钮_查询数据_被单击 () .如果真结束 .如果真 (执行SQL语句 (数据库, SQL) 假) 信息框 (“删除失败”, 0, , ) .如果真结束