请教请教!sql存储过程开发中间件

jie361539146 2014-03-19 10:28:27
USE [GWJDB]
GO
/****** Object: StoredProcedure [dbo].[UploadDrvData] Script Date: 03/19/2014 09:30:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <汪进>
-- Create date: <2013-05-12>
-- Description: <上传设备数据>
-- 请注意,添加了参数@LockKeyPosition,键盘锁定位置,用于调用锁定设备扩展接口
-- =============================================
ALTER PROCEDURE [dbo].[UploadDrvData]
@IsNewData bit=0 , --输入参数 是否新数据 =1新数据 =0历史数据
@CSN varchar(50), --输入参数 流水号
@GID int, --输入参数 控制器ID/组ID
@DID int, --输入参数 设备编号
@DataType int, --输入参数 数据类型
@SerialDate varchar(50), --输入参数 刷卡时间
@Info varchar(50), --输入参数 刷卡内容
@IsReturnDrvCmd bit=1 OUTPUT, --输出参数 是否有返回设备指令 =0无返回 =1有设备指令返回
@IsDsp1 int OUTPUT, --第一行是否显示 :1为显示 其他数值为不显示
@IsDsp2 int OUTPUT, --第二行是否显示: 1为显示 其他数值为不显示
@IsDsp3 int OUTPUT, --第三行是否显示: 1为显示 其他数值为不显示
@IsDsp4 int OUTPUT, --第四行是否显示: 1为显示 其他数值为不显示
@Dsp1 nvarchar(50) OUTPUT, --第一行显示内容
@Dsp2 nvarchar(50) OUTPUT, --第二行显示内容
@Dsp3 nvarchar(50) OUTPUT, --第三行显示内容
@Dsp4 nvarchar(50) OUTPUT, --第四行显示内容
@SndNum int OUTPUT, --发声次数0为不发声
@KeyStatus int OUTPUT, --键盘状态 0键盘开启,1键盘关闭
@Relay int OUTPUT, --继电器工作状态0继电器开启 1继电器关闭
@Soundval int OUTPUT, --发声间隔 1-250毫秒
@tempstring varchar(8) OUTPUT, --当前时间
@IsVoice bit OUTPUT, --是否语音 2.1版本新增参数
@VoiceContent nvarchar(50) OUTPUT, --语音内容 2.1版本新增参数
@IsValidFinger bit OUTPUT, --是否验正指纹 2.2版本新增参数
@FingerNo int OUTPUT, --指纹编号 2.2版本新增参数
@LockKeyPosition int=-1 OUTPUT, --键盘锁定位置,<0参数值不起作用 2.3版本新增参数
@BgConNum int=0 OUTPUT, --背光闪烁,闪烁次数 2.4版本新增参数
@BgConDelay int=0 OUTPUT, --背光闪烁,闪烁间隔 2.4版本新增参数
@ReaderState int=0 OUTPUT, --读头状态 1:读卡,2:禁止读卡 2.4版本新增参数
@ExtCmd varchar(32) OUTPUT --扩展指令 扩展命令输出指令 16字节,用32个16进制字符表示 2.4版本新增参数
AS
BEGIN
select @LockKeyPosition=0
--InsertNew命令的相关参数可以参照文档【工位机中间件需求】安装包中已带
--用户可自定义操作
INSERT INTO CardInfo(CSN,GID,DID,DataType,SerialDate,Info)VALUES(@CSN,@GID,@DID,@DataType,@SerialDate,@Info)
--初始化输出参数值
SELECT @IsVoice=0,@VoiceContent=''
select @IsValidFinger=0,@FingerNo=0
SELECT @IsReturnDrvCmd=0
SELECT @IsDsp1=0,@IsDsp2=0,@IsDsp3=0,@IsDsp4=0
SELECT @tempstring=convert(varchar(8),getdate(),108)
SELECT @Dsp1='',@Dsp2='',@Dsp3='',@Dsp4=''
SELECT @SndNum=0,@KeyStatus=0,@Relay=0,@Soundval=0
SELECT @BgConNum=0,@BgConDelay=0,@ReaderState=0,@ExtCmd=''

IF (@IsNewData=1)
BEGIN
set @IsReturnDrvCmd=1 --设置为 有返回设备指令
set @IsDsp1=1
set @IsDsp2=1
set @IsDsp3=1
set @Dsp1='欢迎使用 '
set @Dsp2='WIT报工系统 '
set @Dsp3='请刷卡登录 '+ @IsNewData --这里的刷卡登录是工位机上刷卡后转到另一个界面去。我这里该怎么做呢?
set @SndNum=1
set @KeyStatus=5
set @Relay=5
set @Soundval=200
END
end
...全文
202 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiveCoding 2014-11-19
  • 打赏
  • 举报
回复
这种和彩屏机我都弄过,不过也是太TM烦人了,现在都还没弄好。劳资头都大了。
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 14 楼 shaver 的回复:
1、有问题这里讨论吧,帮的人更多 2、界面放数据库,好处是容易调整,但是需要很多细节考虑,比如也许需要对齐,也许需要字体大小,也许需要颜色变化,还有的时候有些界面不是纯粹菜单,比如显示内容
嗯,是的。目前我也出现了字体过多显示不出来的情况,而且字体居中和颜色也是个问题。字体可以先不讨论,我要是想实现刷卡登录,那么需要定义哪些参数来进行输出呢?还有,我想用if else语句来实现,但是无从下手,你可以给个思路吗?
shaver 2014-03-19
  • 打赏
  • 举报
回复
1、有问题这里讨论吧,帮的人更多 2、界面放数据库,好处是容易调整,但是需要很多细节考虑,比如也许需要对齐,也许需要字体大小,也许需要颜色变化,还有的时候有些界面不是纯粹菜单,比如显示内容
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 12 楼 shaver 的回复:
想法很独到,把界面内容放在数据库中,可以很方便调整,不需要重新编译安装程序 问题: 1、一个程序不是仅有界面,还有实际的功能,比如和硬件交互的,这些实际的功能定义在什么地方,如何界面调用开始,如何接受参数,返回执行结果,再在界面显示 2、放存储过程中并不合适,觉得直接放在数据表中更好
你好,我这是第一次接触这种开发模式, 我这边也建了表,但是第一次做,很多都不懂,你可以试着写一些简单的案例给我看看么?我QQ是361539146,以后有什么不懂的可以问你么?
shaver 2014-03-19
  • 打赏
  • 举报
回复
想法很独到,把界面内容放在数据库中,可以很方便调整,不需要重新编译安装程序 问题: 1、一个程序不是仅有界面,还有实际的功能,比如和硬件交互的,这些实际的功能定义在什么地方,如何界面调用开始,如何接受参数,返回执行结果,再在界面显示 2、放存储过程中并不合适,觉得直接放在数据表中更好
發糞塗牆 2014-03-19
  • 打赏
  • 举报
回复
case when 来判断也行吧,反正才7次
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 9 楼 DBA_Huangzj 的回复:
你这怎么看也不像是T-SQL的操作流程啊,很多都只是和sql server交互而已
恩,这个就是需要到存储过程来进行交互。它有一个datatype,1=刷卡,2=MENU键,3=数字键,4ESC键,5=ON键,6=上箭头键,7=下箭头键。就是通过datatype数据类型来进行设置编写存储过程,用if esle来进行判断输出的。有什么好的想法给予我帮助么,亲
發糞塗牆 2014-03-19
  • 打赏
  • 举报
回复
你这怎么看也不像是T-SQL的操作流程啊,很多都只是和sql server交互而已
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
你那个转换是不是在数据库中转换URL,然后前端读取啊?即使是也听坑爹的
是很坑爹,不过主要是通过存储过程来实现的。我发图了,不知道你能看得懂不?我主要的思路是,建两张表,一个是栏目大纲,一个是子菜单。取开机前的数据集=0,这样在工位机按上下箭头键,那么就会0+1,1+1,2+1,这样就能根据相应的栏目进去别的界面。还有一种类型是‘1’+‘1’=‘11’类的,但是在界面转换坑爹啊,可以帮忙想想办法吗?
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
發糞塗牆 2014-03-19
  • 打赏
  • 举报
回复
你那个转换是不是在数据库中转换URL,然后前端读取啊?即使是也听坑爹的
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
中间件,应该用程序来实现把,而存储过程更多的是实现业务逻辑。
我把需求文档给你们看下吧。
jie361539146 2014-03-19
  • 打赏
  • 举报
回复
引用 1 楼 fredrickhu 的回复:
转到另外一页面。这个需要在程序端去实现吧。
我是刚刚接触到中间件,而且明确要求说要存储过程实现工位机的界面转换。我就是这里卡主了。55555
LongRui888 2014-03-19
  • 打赏
  • 举报
回复
中间件,应该用程序来实现把,而存储过程更多的是实现业务逻辑。
發糞塗牆 2014-03-19
  • 打赏
  • 举报
回复
这个不应该用sql来做,sql是操作和管理数据用的
--小F-- 2014-03-19
  • 打赏
  • 举报
回复
转到另外一页面。这个需要在程序端去实现吧。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧