通過調用我存儲過程,但是需要對他的存儲過程進行調整。
--**********************************************
--如何把屏幕折成一屏
--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