通过调用我存储过程,但是需要对他的存储过程进行调整。
--**********************************************
--如何把屏幕折成一屏
--declare @str varchar(200),@lensize integer,@screen1 varchar(50),@screen2 varchar(50),@screen3 varchar(50),@screen4 varchar(50)
--select @str='你好'+char(13)+'ABC中国你好,你是中国人',@lensize=16
--exec PSS_GetKKScreen @str,@lensize,@screen1 output,@screen2 output,@screen3 out,@screen4 out
--select @screen1,@screen2,@screen3,@screen4
--**********************************************
CREATE proc PSS_GetKKScreen
@Str varchar(200)='ABC中国你好,你是中国人',
@LenSize tinyint=16,
@Screen1 varchar(50)='' output,
@Screen2 varchar(50)='' output,
@screen3 varchar(50)='' output,
@Screen4 varchar(50)='' output
as
set nocount on
select @Screen1='',@Screen2='',@screen3='',@Screen4=''
declare @i integer,@j integer,@Size integer,@CurRow integer,@strr varchar(2)
select @i=1,@CurRow=1,@Size=0,@j=0
while @i<=len(@str)
begin
select @strr=SUBSTRING(@Str,@i,1)
set @i=@i+len(@Strr)
if @currow=1
begin
if @strr=char(13)
select @CurRow=2
else if DATALENGTH(@Screen1)+datalength(@strr)>@LenSize
select @CurRow=2,@Screen2=@Strr
else select @Screen1=@Screen1+@strr
--select @Screen1,DATALENGTH(@Screen1),datalength(@strr),datalength(@Strr),@i
end
else if @currow=2
begin
if @strr=char(13)
select @CurRow=3
else if DATALENGTH(@Screen2)+datalength(@strr)>@LenSize
select @CurRow=3,@Screen3=@Strr
else select @Screen2=@Screen2+@strr
--select @Screen2,DATALENGTH(@Screen2),datalength(@strr),datalength(@Strr),@i
end
else if @currow=3
begin
if @strr=char(13)
select @CurRow=4
else if DATALENGTH(@Screen3)+datalength(@strr)>@LenSize
select @CurRow=4,@Screen4=@Strr
else select @Screen3=@Screen3+@strr
end
else if @currow=4
begin
if DATALENGTH(@Screen4)+datalength(@strr)>@LenSize
goto _Exit
else select @Screen4=@Screen4+@strr
end
--select @i,@strr
end
--@i=DATALENGTH(@str)
--select @i,len(@Str)
--select substring(@str,1,1),,substring(@str,2,1),substring(@str,3,1),substring(@str,4,1)
_Exit:
--select @Screen1,@Screen2,@screen3,@Screen4
return 0
set nocount off
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(400), --输入参数 刷卡内容
@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=-1
--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 @IsDsp4=1
set @Dsp1='测试1 ' + @tempstring
set @Dsp2='测试2 '+@tempstring
set @Dsp3='测试3 '+ @SerialDate
set @Dsp4='测试4 '+@tempstring
set @SndNum=1
set @KeyStatus=5
set @Relay=5
set @Soundval=200
declare @str varchar(200),@CompanyId bigint,@TerminalNo bigint,@date datetime
select @str='AAAAAAABBBBB'+char(13)+'AAA',@TerminalNo=@Gid*1000+@Did,@CompanyId=2020051121315254377,@date=GETDATE(),
@DataType=case when @DataType=1 then 83 else @DataType end
if @Datatype=2
select @DataType=82,@Info='7'
else if @DataType=3 and @Info<>@SerialDate
select @dataType=81,@info=REPLACE(@info,'.',' ')
else if @Datatype=3
select @Datatype=82,@Info='13'
else if @Datatype=4
select @DataType=82,@info='27'
else if @Datatype=5
select @DataType=82,@info='2'
else if @Datatype=6
select @DataType=82,@info='37'
else if @Datatype=7
select @DataType=82,@info='39'
select @CompanyId,@GID,@TerminalNo,@DataType,@info,@serialDate
exec Kingzhizhu.dbo.PCK_WorkFlow @CompanyId,@GID,@TerminalNo,@DataType,@info,@date,1,@Str output,0,0
exec PSS_GetKKScreen @str,16,@Dsp1 output,@Dsp2 output,@Dsp3 out,@Dsp4 out
END
END