详解易语言操作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与员工表之间加一个空格

(0)

相关推荐

  • SQL Server视图的讲解

    在初期的工作中,要做一个系统登录验证,翻阅同事做的登录验证,发现同事们做用户名验证时,查的结果集来自一个视图,之前也弄过视图,但很少去仔细看过有关方面的详细知识,于是特意百度谷歌了一下,总结如下知识: 视图,是基于SQL语句的结果集的可视化表.从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据.从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表.从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一

  • Sql Server的一些知识点定义总结

    数据库完整性:是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性 实体完整性(Entity Integrity 行完整性):实体完整性指表中行的完整性.主要用于保证操作的数据(记录)非空.唯一且不重复.即实体完整性要求每个关系(表)有且仅有一个主键,每一个主键值必须唯一,而且不允许为"空"(NULL)或重复. 域完整性(Domain Integrity 列完整性):是指数据库表中的列必须满足某种特定的数据类型或约束.其中约束又包括取值范围.精度等规定.表中的CHECK.FOREI

  • SQL Server游标的介绍与使用

    游标概念 数据库操作中我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录.那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案. 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果. 每个游标区都有一个名字.用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制. 游标总是与一条SQL 查询语句

  • C#连接SQL Server的实现方法

    前言 对于专业的程序员来说,C#连接SqlServer进行新增.修改.查询哪简直就是小菜一碟,信手拈来 ,但对刚入门孩童们就不是哪么一回事了,有时一个代码出错就折腾好几天,所以下面这篇文章就来给大家介绍下C#连接SQL Server的相关内容. C# 用 Connection 连接数据库,一般在连接字符串里需要指定要连接数据源的种类.数据库服务器的名称.数据库名称.登陆用户名.密码.等待连接时间.安全验证设置等参数信息,这些参数之间用分号隔开.下面将详细描述这些常用参数的使用方法. 1. Pro

  • SQL Server 2008数据库分布式查询知识

    在接触公司一个系统时,公司使用的是SQL Server 2008数据库,里面涉及到了多个数据库之间的查询,而且数据库是分布式的,数据库分布在多台服务器之间,并且各个数据库各尽其责,负责存放不同模块功能的数据.这里面就要涉及到了数据库的分布式查询. 补充一下分布式查询的知识: 分布式查询从多异类数据源中访问数据.这些数据源可以存储在同一台计算机或不同的计算机上.Microsoft SQL Server 通过使用 OLE DB 来支持分布式查询. SQL Server 用户可以使用分布式查询访问以下

  • SQL Server三种锁定模式的知识讲解

    sql server 锁定模式有三种:共享( S锁),更新(U锁),排他(X锁): S锁是共享锁,如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁.获准共享锁的事务只能读数据,不能修改数据. 个人理解为,对数据A的操作就只能是SELECT ,(联想下,S锁,不就是Select的首字母么),其他事务对A数据的UPDATE ,DELETE都不能进行: U锁是更新锁.用于可更新的资源中.防止当多个会话在读取.锁定以及随后可能进行的资源更新时发生常见形式的死锁. 原理解释: 更

  • sqlserver2008首次登录失败问题及解决方法

    首次安装完sqlserver之后,使用(local)登陆失败情况分析: 失败的可能行有两个,在sqlserver管理器里面查看下图所标位置,并设置成如下配置 如上设置完成后,使用(local)连接还是失败,则继续检查: 右击,属性:检查IPADDRESS,找到IP3设置成如下参数 设置完成之后,急需找到IPALL设置成 重启Service 总结 以上所述是小编给大家介绍的sqlserver2008首次登录失败问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.

  • laravel5使用freetds连接sql server的方法

    相关版本 系统ubuntu 16.04, 使用的PHP版本是7.0.30, sqlserver 2012, freetds为0.92 Laravel5.5和5.4都测试过了 什么是FreeTDS  简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源的程序库,是TDS(表列数据流 )协议的再次实现.它可以被用在Sybase的db-lib或者ct-lib库.它也包含一个ODBC的库.允许许多开源的应用软件比如Perl和PHP(或者你自己

  • SQL Server四个系统表的知识讲解

    SQL SERVER 中有四个系统表 master, model, msdb,tempdb.这四个表有什么用? 一般DB使用中我们开发人员很少去关注这四个表.但是这四个表个人感觉很重要,掌握一些基本的知识会对自己有好处,于是我记录下来. master 这个表保存了SQL server的系统信息,用于跟踪整个SQL系统: model 这个是个模板表.可以基于这个表来得到一个副本,怎么说呢,就是说要改变新建标准数据库的样式的话,可以根据需要改变model ,是新建DB的模板: msdb 是SQL 代

  • SQL Server中的SELECT会阻塞SELECT吗

    前言 在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.TEST WHERE OBJECT_ID =1 这个查询语句,其申请.释放的锁资源的过程如下所示: 而且从最常见的锁模式的兼容性表,我们可以看到IS锁与S锁都是兼容的,也就是说SELECT查询是不会阻塞SELECT查询的. 现有的授权模式 请求的模式 IS S U IX SIX X 意向共享 (

随机推荐