详解易语言操作sql server实例

来源:脚本之家  责任编辑:小易  

最近看到很多初学者在问在易语言中如何操作SQL Server以外部数据库,也有人提出想要个全面的操作过程,为了让大家能够尽快上手,我给大家简单介绍一下操作SQL的过程,希望能起到抛砖引玉的作用。

由于我本身工作业比较忙,就以我目前做的一个软件的部份内容列给大家简单讲讲吧,高手就不要笑话了,只是针对初学者
第一步,首先需要建立一个数据库:

以建立一个员工表为例,各字段如下:

3 员工ID int 4 0
0 登陆帐号 nvarchar 30 1
0 密码 nvarchar 15 1
0 所属部门 nvarchar 30 1
0 姓名 nvarchar 10 1
0 性别 nvarchar 2 1
0 年龄 nvarchar 10 1
0 当前职务 nvarchar 10 1
0 级别 nvarchar 10 1
0 出生日期 nvarchar 40 1
0 专业 nvarchar 10 1
0 学历 nvarchar 8 1
0 婚姻状况 nvarchar 4 1
0 身份证号 nvarchar 17 1
0 籍贯 nvarchar 50 1
0 毕业院校 nvarchar 50 1
0 兴趣爱好 nvarchar 600 1
0 电话 nvarchar 11 1
0 家庭成员 nvarchar 20 1
0 工作经历 nvarchar 600 1
0 销售行业经验nvarchar 600 1
0 离职原因 nvarchar 600 1
0 升迁记录 nvarchar 600 1
0 调岗记录 nvarchar 600 1
0 特殊贡献 nvarchar 600 1
0 奖励记录 nvarchar 600 1
0 处罚记录 nvarchar 600 1
0 同事关系 nvarchar 4 1
0 企业忠诚度 nvarchar 4 1
0 入司日期 nvarchar 30 1
0 在职状态 nvarchar 4 1
0 上级评语 nvarchar 600 1
0 最后登陆时间 nvarchar 20 1
0 登陆次数 nvarchar 50 1
0 照片 image 16 1

一般我习惯用nvarchar,因为这是可变长的的非Unicode数据,最大长度为8000个字符,您可以根据您的情况来设定,我这里只是举例说明。

第二步:在易言语中建立数据库连接,用外部数据库控件,可先建立4个全局变量:

1、建立全局变量:

.版本 2
.全局变量 服务器, 文本型
.全局变量 服务器数据库, 文本型
.全局变量 服务器用户名, 文本型
.全局变量 服务器密码, 文本型

2、给变量赋值:

.版本 2
服务器 = 读配置项 (取运行目录 () + “\sys.ini”, “server info”, “server”, “您的服务器地址”)
服务器用户名 = 读配置项 (取运行目录 () + “\sys.ini”, “server info”, “uid”, “您的服务器用户名”)
服务器密码 = 读配置项 (取运行目录 () + “\sys.ini”, “server info”, “pwd”, “您的服务器密码”)
服务器数据库 = 读配置项 (取运行目录 () + “\sys.ini”, “server info”, “database”, “您的数据库名城”) 

3、然后建立外部数据库的连接。

.版本 2
.如果真 (外部数据库1.打开 (“DRIVER=SQL Server;SERVER=” + 服务器 + “;UID=” + 服务器用户名 + “;PWD=” + 服务器密码 + “;WSID=” + 服务器 + “;DATABASE=” + 服务器数据库, ) = 真)
.如果真 (外部数据库1.打开SQL数据库 (服务器, 服务器用户名, 服务器密码, 服务器数据库, , ) = 假)
信息框 (“打开数据库失败”, #警告图标, )
结束 ()
.如果真结束

此,您已经完成了与SQL数据库的连接,可以开始使用,以下讲讲在数据库中要到的增加、查询、修改、删除命令:

建立全局变量:

.版本 2 
.全局变量 脚本, 文本型
.全局变量 记录集句柄 

1、 SQL增加语句的使用:

.版本 2 
脚本 = “insert into 员工表 ([姓名],[性别],[年龄],[出生日期],[专业],[学历],[婚姻状况],[身份证号],[籍贯],[毕业院校],[兴趣爱好],[电话],[家庭成员],[工作经历],[销售行业经验],[离职原因],[所属部门],[当前职务],[升迁记录],[调岗记录],[特殊贡献],[奖励记录],[处罚记录],[同事关系],[企业忠诚度],[入司日期],[在职状态],[上级评语],[照片]) values ('” + 编辑框_职员信息_姓名.内容 + “','” + 编辑框_职员信息_性别.取项目文本 (编辑框_职员信息_性别.现行选中项) + “','” + 编辑框_职员信息_年龄.内容 + “','” + 编辑框_职员信息_出生日期.内容 + “','” + 编辑框_职员信息_专业.内容 + “','” + 组合框_职员信息_学历.取项目文本 (组合框_职员信息_学历.现行选中项) + “','” + 组合框_职员信息_婚姻状况.取项目文本 (组合框_职员信息_婚姻状况.现行选中项) + “','” + 编辑框_职员信息_身份证号.内容 + “','” + 编辑框_职员信息_籍贯.内容 + “','” + 编辑框_职员信息_毕业院校.内容 + “','” + 编辑框_职员信息_兴趣爱好.内容 + “','” + 编辑框_职员信息_电话.内容 + “','” + 编辑框_职员信息_家庭成员.内容 + “','” + 编辑框_职员信息_工作经历.内容 + “','” + 编辑框_职员信息_销售行业经验.内容 + “','” + 编辑框_职员信息_离职原因.内容 + “','” + 编辑框_职员信息_所属部门.内容 + “','” + 编辑框_职员信息_当前职务.内容 + “','” + 编辑框_职员信息_升迁记录.内容 + “','” + 编辑框_职员信息_调岗记录.内容 + “','” + 编辑框_职员信息_特殊贡献.内容 + “','” + 编辑框_职员信息_奖励记录.内容 + “','” + 处罚记录编辑框.内容 + “','” + 组合框_职员信息_同事关系.取项目文本 (组合框_职员信息_同事关系.现行选中项) + “','” + 组合框_职员信息_企业忠诚度.取项目文本 (组合框_职员信息_企业忠诚度.现行选中项) + “','” + 编辑框_职员信息_入司日期.内容 + “','” + 组合框_职员信息_在职状态.取项目文本 (组合框_职员信息_在职状态.现行选中项) + “','” + 编辑框_职员信息_上级评语.内容 + “',?)”

.如果 (SQL数据库.执行 (脚本, 照片图片框.图片) = 真)
信息框 (“保存员工信息成功!”, 0, )
.否则
信息框 (“保存员工信息失败!”, 0, )
.如果结束

SQL数据库.关闭记录集 (记录集句柄)

需要注意的是,在上面红色部分有个?,这是保存图片的字段,在蓝色部分可以看见,(SQL数据库.执行 (脚本, 照片图片框.图片) 照片图片框.图片是字节集数据,也就是数据库中对应的照片字段,image类型

易语言操作SQL Server数据库之二

2、 SQL查询语句的使用:

.版本 2
脚本 = “select 员工ID,姓名 from 员工表 where 姓名” + “= ” + “'” + 编辑框_职员信息_姓名.内容 + “'”
记录集句柄 = SQL数据库.查询 (脚本)
.如果真 (编辑框_职员信息_姓名.内容 = SQL数据库.读 (记录集句柄, “姓名”))
信息框 (“您要录入的员工姓名:” + 编辑框_职员信息_姓名.内容 + “已经存在!”, 0 + #询问图标, “销售管理系统提醒您!”)
返回 ()
.如果真结束

SQL数据库.关闭记录集 (记录集句柄)

以上是查询的时候,需要注意的是,如果是文本型数据,需要用单引号,红色部分样式,
如果需要多表查询,select可以这样写:,
select A.*,B.* from A,B where A.ID=B.ID
介绍一个小技巧,如果您SQL数据库操作的很熟悉,可以用视图来帮您建立多表的查询,如果把视图里的SQL语句稍微改动一下就可以放到易语言中使用了,
如我这里需要把客户表与其他的表关联,用视图得到的SQL语句是这样的:
SELECT dbo.客户表.客户ID, dbo.客户表.客户姓名, dbo.客户表.身份证号,
dbo.客户表.客户等级, dbo.客户表.性别, dbo.客户表.年龄, dbo.客户表.电话,
dbo.客户表.手机, dbo.客户表.电子邮件, dbo.客户表.联系地址,
dbo.员工资料.姓名 AS 销售顾问, dbo.客户表.拜访时间, dbo.客户进程表.回访次数,
dbo.客户进程表.意向房号, dbo.客户进程表.接待人员, dbo.客户进程表.主要问题,
dbo.客户进程表.跟踪次数, dbo.客户进程表.跟踪人员, dbo.客户进程表.付款金额,
dbo.客户进程表.预订日期, dbo.客户进程表.首付日期, dbo.客户进程表.预订金额,
dbo.客户进程表.退定时间, dbo.客户进程表.退定原因, dbo.客户进程表.收款人,
dbo.客户进程表.备注
FROM dbo.员工资料 INNER JOIN
dbo.客户表 ON dbo.员工资料.员工ID = dbo.客户表.员工ID INNER JOIN
dbo.客户进程表 ON dbo.客户表.客户ID = dbo.客户进程表.客户ID
修改成我们要在易语言中使用的SQL语句就应该写成这样:
SELECT客户表.客户ID,客户表.客户姓名,客户表.身份证号,客户表.客户等级,客户表.性别,客户表.年龄,客户表.电话,客户表.手机,客户表.电子邮件,客户表.联系地址,员工资料.姓名 AS 销售顾问,客户表.拜访时间,客户进程表.回访次数,客户进程表.意向房号,客户进程表.接待人员,客户进程表.主要问题,客户进程表.跟踪次数,客户进程表.跟踪人员,客户进程表.付款金额,客户进程表.预订日期,客户进程表.首付日期,客户进程表.预订金额,客户进程表.退定时间,客户进程表.退定原因,客户进程表.收款人,客户进程表.备注
FROM 员工表,客户表 ,客户进程表
WHERE 员工资料.员工ID =客户表.员工AND 客户表.客户ID =客户进程表.客户ID
细心的读者应该可以看到,把上面的DBO,全部取消了,后面多加了一个WHERE和AND语句,只要大家多动动脑,复杂的语句也可以用SQL Server数据库来为我们完成。

3、 SQL修改语句的使用:

.版本 2
SQL数据库.关闭记录集 (记录集句柄)
.判断开始 (选定项目2 = 1)
脚本 = “update 员工表 set ” + 选定项目1 + “='” + 删首尾空 (新员工名称编辑框.内容) + “', 备注” + “='” + 删首尾空 (备注编辑框.内容) + “' where ” + 选定项目1 + “='” + 项目文本1 + “'”
.判断 (选定项目2 = 2)
脚本 = “update 员工表 set ” + 选定项目1 + “='” + 删首尾空 (新员工名称编辑框.内容) + “', 备注” + “='” + 删首尾空 (备注编辑框.内容) + “' where ” + 部门编号1 + “= ” + “'” + “1” + “' and ” + 选定项目1 + “='” + 项目文本1 + “'”
.默认
.判断结束
.判断开始 (SQL数据库.执行 (脚本, ) = 真)
部门管理窗口.读取并显示当前记录集 ()
SQL数据库.关闭记录集 (记录集句柄)
销毁 ()

.默认
信息框 (“修改员工姓名失败!”, #警告图标, )

上面用了一个判读语句,用来选择要使用的SQL语句,第一个脚本是直接修改员工的名字,第二个脚本是修改某个部门下的员工的名字,必须是在那个部门下的人员才可以修改。相信大家应该可以看得明白。

4、 SQL删除语句的使用:

版本 2
脚本 = “delete from 员工表 where ” + 选定姓名1 + “='” + 姓名 + “' and 员工ID='”+取得的ID+”'”
.判断开始 (SQL数据库.执行 (脚本, ) = 真)
信息框 (“删除员工成功!”, #信息图标, )
员工管理窗口.读取并显示当前记录集 ()
SQL数据库.关闭记录集 (记录集句柄)
销毁 ()
.默认
信息框 (“删除员工失败!”, #警告图标, )

上面出现的 选定姓名1、 姓名、 取得的ID、三个,是我用的临时的变量,是为了从其他地方动态的取得要删除的内容,简化以后得到的SQL语句就是这样。

delete from 员工表 where 员工姓名 = ‘姓名' and 员工ID=1

以上是我目前开发的我们公司的一个销售管理系统的程序,把大家想知道的内容提出来并简化给大家做个参考,源代码我就不送上了,相信大家也应该可以看的明白,由于工作一直比较忙,没有截图,也没有细心整理,不过语句都没有错误的,大家放心使用,等有时间给大家出一个专门操作SQL Server数据库网络版软件的教程,这里只是简单的操作而已,给初学者一个借鉴。

发布完才发现其中有几个错误的地方,

1、到此,您已经完成了与SQL数据库的连接,可以开始使用,以下讲讲在数据库中要到的增加、查询、修改、删除命令:
后面应该是:以下讲讲数据库中要用到的增加……

2、如我这里需要把客户表与其他的表关联,用视图得到的SQL语句是在于的:
后面应该是:用视图得到的SQL语句是这样的

3、FROM员工表,客户表 ,客户进程表
应该是: FROM 员工表,客户表 ,客户进程表
FRMO与员工表之间加一个空格

您可能感兴趣的文章:


  • 本文相关:
  • sql server 2008数据库分布式查询知识
  • sql server游标的介绍与使用
  • sql server三种锁定模式的知识讲解
  • sql server视图的讲解
  • sql server的一些知识点定义总结
  • c#连接sql server的实现方法
  • laravel5使用freetds连接sql server的方法
  • sql server中的select会阻塞select吗
  • sqlserver2008首次登录失败问题及解决方法
  • sql server四个系统表的知识讲解
  • 详解更改易语言的皮肤
  • 详解易语言的dns缓存
  • 易语言获取当前是几月份的方法
  • 易语言高级表格选择任意行列获取内容的代码示例
  • 易语言手动备份方法
  • 浅析易语言web服务器html协议头
  • 易语言获取进程所在路径的方法
  • 易语言将画板中指定区域清空的方法
  • 易语言设置在月历框架内是否显示今天的日期
  • 零基础易语言入门教程(一)
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved