当前位置:首页 > 数据库 > 正文

易语言如何操作数据库

易语言通过数据库支持库操作数据库,主要包括连接数据库、执行SQL语句(增删改查)以及处理返回的记录集数据。

易语言操作数据库的详细指南(基于Access/SQLite示例)

核心原理

易语言通过外部数据库支持库(如edbmysql等)操作数据库,核心步骤包括:

  1. 连接数据库 → 2. 执行SQL指令 → 3. 处理结果集 → 4. 关闭连接
    以下以Access数据库(.mdb文件)和SQLite为例说明通用流程。

操作步骤详解

步骤1:准备工作

  1. 数据库准备

    • 创建Access数据库test.mdb,内含表users(字段:id, name, age)。
    • 或创建SQLite数据库test.db(表结构相同)。
  2. 易语言环境配置

    易语言如何操作数据库  第1张

    • 在易语言IDE中勾选支持库:工具支持库配置 → 启用 “数据库操作支持库”“SQLite3支持库”

步骤2:连接数据库(关键代码)

.版本 2
.支持库 eDB
.支持库 sqlite3
.程序集 窗口程序集_启动窗口
.程序集变量 数据库连接, 数据库连接
.程序集变量 记录集, 记录集
.子程序 _按钮_连接_被单击
' Access连接示例
数据库连接.连接Access (取运行目录 () + “test.mdb”, “”)  ' 密码为空时留空
' SQLite连接示例(需先启用sqlite3支持库)
' 数据库连接.连接SQLite (取运行目录 () + “test.db”, , , )
.如果真 (数据库连接.是否已连接 () = 假)
    信息框 (“数据库连接失败!”, 0, , )
    返回
.如果真结束
信息框 (“连接成功!”, 0, , )

步骤3:执行SQL指令

① 插入数据

.子程序 _按钮_插入_被单击
.局部变量 SQL, 文本型
SQL = “INSERT INTO users (name, age) VALUES ('张三', 25)”
数据库连接.执行SQL (SQL)

② 查询数据

.子程序 _按钮_查询_被单击
记录集 = 数据库连接.取记录集 (“SELECT * FROM users WHERE age > 20”)
.判断循环首 (记录集.是否已到尾 () = 假)
    输出调试文本 (“ID:” + 记录集.读字段值 (“id”) + “, 姓名:” + 记录集.读字段值 (“name”))
    记录集.移到下一条 ()
.判断循环尾 ()
记录集.关闭 ()

③ 更新/删除数据

' 更新示例
数据库连接.执行SQL (“UPDATE users SET age=30 WHERE name='张三'”)
' 删除示例
数据库连接.执行SQL (“DELETE FROM users WHERE id=5”)

步骤4:关闭连接

.子程序 _按钮_关闭_被单击
.(数据库连接.是否已连接 ())
    数据库连接.关闭 ()
    信息框 (“连接已关闭”, 0, , )
.否则
    信息框 (“未连接数据库”, 0, , )
.如果结束

注意事项

  1. 防SQL注入

    • 使用参数化查询(易语言需调用参数置文本()等函数):
      .局部变量 参数表, 参数表
      参数表.置文本 (“@name”, “李四”)
      记录集 = 数据库连接.取记录集 (“SELECT * FROM users WHERE name=@name”, 参数表)
  2. 错误处理

    • 取错误文本()捕获异常:
      .如果真 (数据库连接.执行SQL(SQL) = 假)
          信息框 (“执行失败:” + 数据库连接.取错误文本(), 0, , )
      .如果真结束
  3. 数据库兼容性
    | 数据库类型 | 支持库 | 连接方法 |
    |————|—————-|———————-|
    | Access | eDB | 连接Access() |
    | SQLite | sqlite3 | 连接SQLite() |
    | MySQL | mysql支持库 | 连接MySql() |
    | SQL Server | ODBC或MSSQL库 | 连接ODBC() |


常见问题解决

  • 连接失败:检查文件路径、权限、驱动(Access需安装Office驱动)。
  • 乱码问题:在连接字符串中添加字符集参数(如MySQL加?charset=utf8)。
  • 记录集越界:操作前用记录集.是否已到尾()记录集.是否已到头()判断边界。

引用说明:本文代码基于易语言5.9版本及官方支持库文档编写,数据库操作规范参考微软ODBC标准及SQLite官方语法,安全建议依据OWASP SQL注入防护指南。

0