个人博客 用于记载日常收集的一些技术文章 ...
K3 BOS : KIS 旗舰版 引入 License K3 BOS : KIS 旗舰版 引入 License 引入临时许可文件license步骤:在系统管理-加密管理,按住Ctrl+Shift+K,在跳出窗口输入软件特征码跟密码(密码申请网址http://kd.cmcloud.cn/kiscloud/getlicensepwd/),确认后引入license即可 郭少锋 编辑 2023-03-05 21:51:36 创建 2023-01-11 22:19:18 K3 BOS K3 BOS : SQL 弹出错误提示,拼接 FBillNo K3 BOS : SQL 弹出错误提示,拼接 FBillNo IF EXISTS( SELECT 1 FROM StOrder a1 JOIN ICSTJGBillEntry a2 ON a1.FClassTypeID = a2.FSourceTranType AND a1.FID = a2.FSourceInterId )
BEGIN
DECLARE @FBillNo varchar(100)

SELECT @FBillNo = STUFF( (
-------------------------------------------------------------------------------------------------------
SELECT CHAR(10) + FBillNo FROM (
-------------------------------------------------------------------------------------------------------
SELECT DISTINCT a3.FBillNo
FROM StOrder a1
JOIN ICSTJGBillEntry a2 ON a1.FClassTypeID = a2.FSourceTranType AND a1.FID = a2.FSourceInterId
JOIN ICSTJGBill a3 ON a2.FInterID = a3.FInterID
-------------------------------------------------------------------------------------------------------
) b1 FOR XML PATH('')
-------------------------------------------------------------------------------------------------------
) ,1,0,'')

DECLARE @Err varchar(100) SELECT @Err = '存在关联单据,不能反审核!'+ CHAR(10) +'请先删除【受托加工材料入库单】'+ CHAR(10) +''+ @FBillNo

RAISERROR(@Err, 18, 18)
RETURN
END

结果:
消息 50000,级别 18,状态 18,第 21 行
存在关联单据,不能反审核!
请先删除【受托加工材料入库单】

STJGIN000005
STJGIN000006
STJGIN000007
郭少锋 编辑 2023-03-05 03:00:06 创建 2023-03-05 02:55:36 K3 BOS
SQL : SQL 换行符 SQL : SQL 换行符 换行符 CHAR(10) + CHAR(13)

DECLARE @Err varchar(100)
SELECT @Err = '存在关联单据,不能反审核!'+ CHAR(10) +'请先删除【受托加工材料入库单】'+ CHAR(13) +'STJGIN000005'

RAISERROR(@Err, 18, 18)
郭少锋 编辑 2023-03-05 02:58:29 创建 2023-03-05 02:56:59 SQL
HTML : 网页 空格处理 HTML : 网页 空格处理 p { white-space: pre-wrap; }

normal 默认。空格会被浏览器忽略。
pre 空格会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap 保留空格符序列,但是正常地进行换行。
pre-line 合并空格符序列,但是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。
郭少锋 编辑 2023-03-04 13:13:57 创建 2023-03-04 12:19:12 HTML
HTML : 网页 特殊符号 HTML : 网页 特殊符号 默认情况下,无论你在html源代码中敲几个空格,在浏览器中运行都只显示一个空格。

1.使用css中的 { white-space: pre-wrap; },浏览器就会保留html源代码中的空格和换行。
2.使用html空格符号代码来实现网页中多个空格的效果。

html空格符号代码

【&nbsp;】一个字符的半角的不断行的空格,如果需要在网页中插入多个空格,可以将【&nbsp;】代码写多遍
【&ensp;】一个字符的半角的空格
【&emsp;】两个字符的全角的空格
【&thinsp;】小于一个字符的空格

其他字符

【&amp;】和号(&)
【&lt;】小于号(<)
【&gt;】大于号(>)
【&quot;】引号(")
【&qpos;】撇号(')
【&copy;】版权符号(©)
【&reg;】注册商标符号(®)
【&times;】乘号(x)
【&divide;】除号(÷)
郭少锋 编辑 2023-03-04 13:13:37 创建 2023-03-04 12:14:35 HTML
SQL : SQL 查看【存储过程】内容 SQL : SQL 查看【存储过程】内容 sp_helptext proc_ICClosed -- 查看【存储过程】
GO

CREATE PROCEDURE dbo.proc_ICClosed
AS
BEGIN
DECLARE @FValue int
SELECT @FValue = FValue FROM t_SystemProfile WHERE FKey = 'ICClosed'
RETURN @FValue
END
GO
郭少锋 编辑 2023-03-04 13:10:54 创建 2023-02-28 22:28:05 SQL
SQL : SQL 排序 SQL : SQL 排序 --1:先建一张临时表如下

DROP TABLE #table2

CREATE TABLE #table2 ( [sysserialno] varchar(50), [cserialno] varchar(50) )

INSERT INTO #table2
VALUES
( 'YD04DJLG', '8S5CB0P2067112YD84R1428' ),
( 'YD04DJLG', '8SSN20N2521871YD84M60PK' ),
( 'YD04DJLG', '8S5C50P23900S3SZ84S0NPM' ),
( 'YD04DJLG', '8SSW10H24486T1SS84K0XMD' ),
( 'YD04DJLG', '8S5CB0P2068281YD84800DS' ),
( 'YD04DJLG', '8S5B10P2377932YD84A0611' ),
( 'YD04DJLG', '8S5D10N87520B1CH84S06PX' ),
( 'YD04DJMD', '8S5D10N87520B1CH84S06R5' ),
( 'YD04DJLG', '8S5B30P20664E1YD82T18FF' ),
( 'YD04DJMD', '8SSW10H24486T1SS84K0XM6' ),
( 'YD04DJMD', '8S5CB0P2068281YD84800E6' ),
( 'YD04DJLG', '8S5B20P23825S3SZ85B002Z' ),
( 'YD04DJLG', '67421203300050' ),
( 'YD04DJLG', '8S5CB0P2067811YD7CM2593' ),
( 'YD04DJSA', '8S5D10N87520B1CH84S06RT' ),
( 'YD04DJSA', '8S5B30P20664E1YD82T148A' ),
( 'YD04DJMD', '8S5CB0P2067112YD84R1443' ),
( 'YD04DJMD', '8S5B30P20664E1YD82T1903' ),
( 'YD04DJSA', '8S5B10P2377932YD84D1903' ),
( 'YD04DJSA', '67421203300050' ),
( 'YD04DJMD', '8SSN20N2521871YD84M60G9' ),
( 'YD04DJMD', '8S5C50P23900S3SZ84S0ND9' ),
( 'YD04DJSA', '8SSN20N2521871YD84M60QH' ),
( 'YD04DJSA', '8S5CB0P2068281YD84800V6' ),
( 'YD04DJSA', '8SSW10H24486T1SS84K0620' ),
( 'YD04DJSA', '8S5C50P23900S3SZ84S0NH8' ),
( 'YD04DJMD', '8S5B10P2377932YD84A0610' ),
( 'YD04DJMD', '67421203300050' ),
( 'YD04DJMD', '8S5B20P23825S3SZ85B0050' ),
( 'YD04DJMD', '8S5CB0P2067811YD7CM2599' ),
( 'YD04DJSA', '8S5CB0P2067112YD84R2157' ),
( 'YD04DJSA', '8S5B20P23825S3SZ85B009B' ),
( 'YD04DJSA', '8S5CB0P2067811YD7CM1904' )

--2:查询刚刚新建表的信息

SELECT sysserialno,cserialno
FROM #table2 (NOLOCK) WHERE sysserialno IN ('YD04DJSA','YD04DJMD','YD04DJLG') ORDER BY sysserialno

--3:所查信息自动生成序号

SELECT ROW_NUMBER () OVER (ORDER BY sysserialno) AS seqno,sysserialno,cserialno
FROM #table2 (NOLOCK) WHERE sysserialno IN ('YD04DJSA','YD04DJMD','YD04DJLG')
ORDER BY sysserialno

--4:根据组别来排序生成编号项序

SELECT DENSE_RANK() OVER (ORDER BY sysserialno/*←这里放什么就是根据什么来排序生成编号项序*/) AS seqno,sysserialno,cserialno
FROM #table2 (NOLOCK) WHERE sysserialno IN ('YD04DJSA','YD04DJMD','YD04DJLG')
ORDER BY sysserialno

--5:根据多个组别来排序生成编号项序

SELECT RANK() OVER(PARTITION BY sysserialno /*←这里放什么就是根据这里来编号*/ORDER BY cserialno/*←这里有多少笔数目就生成多少个编号*/) AS cserialno_seqno,sysserialno,cserialno
FROM #table2 (NOLOCK) WHERE sysserialno IN ('YD04DJSA','YD04DJMD','YD04DJLG')
ORDER BY sysserialno

--6:下面是串起来的查询

SELECT
ROW_NUMBER () OVER (ORDER BY sysserialno,cserialno) AS seqno,
DENSE_RANK () OVER (ORDER BY sysserialno ) AS sysserialno_seqno ,
sysserialno,
RANK() OVER(PARTITION BY sysserialno ORDER BY cserialno ) AS cserialno_seqno,cserialno
FROM #table2 (NOLOCK) WHERE sysserialno IN ('YD04DJSA','YD04DJMD','YD04DJLG')
ORDER BY sysserialno
郭少锋 创建 2023-03-04 11:58:10 SQL
SQL : SQL 事务 set implicit_transactions on SQL : SQL 事务 set implicit_transactions on 一 spid 60
set implicit_transactions on
select @@TRANCOUNT--值为0
update testtable set c1=11 where id=1
select @@TRANCOUNT--值为1,
select * from testtable with(readpast)--且id为1的记录已成功修改为11,但没有commit则仍锁定该记录,但在同一spid可查询到已被修改
select @@TRANCOUNT--值为1
commit --提交修改
select @@TRANCOUNT--提交后值为1
rollback --没有回滚的transaction,报错"The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION."
select @@TRANCOUNT--值为0


二 spid 63
set implicit_transactions off
select @@TRANCOUNT--值为0
update testtable set c1=11 where id=1
select @@TRANCOUNT--值为0
select * from testtable--id为1的记录已成功修改为11
select @@TRANCOUNT--值为0
rollback--不能回滚,报错"The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION."

三 总结
默认implicit_transactions 是 off。
启用隐含交易(set implicit_transactions on)模式后,
数据库引擎会当需要交易管理的第一句语句执行时候自动激活一笔新交易,从而必须显示地commit才能生效。
郭少锋 编辑 2023-03-03 23:37:02 创建 2023-03-03 23:35:48 SQL
SQL : SQL 对于局部变量,text、ntext 和 image 数据类型无效 SQL : SQL 对于局部变量,text、ntext 和 image 数据类型无效 sql2005或以上版本支持新数据类型:
varchar(max)
nvarchar(max)

微软建议使用 varchar(max) 来代替 text,使用 nvarchar(max) 来代替 ntext,使用 varbinary(max) 来代替 image。

max长度可达到2G,远远大于8000
郭少锋 创建 2023-03-01 13:00:21 SQL
K3 BOS : VB 代码换行 _ K3 BOS : VB 代码换行 _ Public Function EndSave(ByVal sDsn As String, _
ByRef SaveVect As KFO.Vector, _
ByRef ReturnMsg As String) As Boolean

Debug.Print SaveVect(1)("FInterID")
Debug.Print SaveVect(1)("FTransType")
EndSave = True
End Function
郭少锋 创建 2023-02-26 14:49:14 K3 BOS