个人博客 用于记载日常收集的一些技术文章 ...
云星空 : 表达式 条件 云星空 : 表达式 条件 ISDRAW() = 1
关联上游单据生成时,锁定字段

字段【FAmountStock(加工金额)】的值更新事件绑定的服务【加工单价2 = 加工金额 / 业务数量】的条件公式【["FPriceSale2 = FAmountStock / FQtySale"]】存在除零风险,前提条件公式为【】,请核查后修复。

更正后:FPriceSale2 = FAmountStock / FQtySale if (FQtySale <> 0) else 0
郭少锋 编辑 2025-11-12 22:11:43 创建 2025-04-14 17:36:37 云星空
windows : win11 专业版 无法访问 win2008 共享文件夹 windows : win11 专业版 无法访问 win2008 共享文件夹 \\192.168.0.188
win11 专业版 访问 win2008 共享文件夹 提示如下:
你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁。

你遇到的问题是由于Windows 11默认启用了更严格的安全策略,阻止了对未经验证的来宾账户的访问。以下是解决方案:

方法1:通过组策略编辑器修改(推荐)

按 Win+R,输入 gpedit.msc打开组策略编辑器
导航到:计算机配置 → 管理模板 → 网络 → Lanman工作站
双击 "启用不安全的来宾登录"策略
选择 已启用,然后点击 确定
重启计算机使设置生效

结果:

\\192.168.0.188 出现扩展错误。

\\192.168.0.188\db90s 无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。
网络错误(1208)。
郭少锋 创建 2025-11-12 08:49:18 windows
SQL : 读取 image 到文件 SQL : 读取 image 到文件
-- 1. 启用高级选项

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- 2. 启用 xp_cmdshell

EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

-- 3. 执行你的命令(例如导出二进制数据)

DECLARE @sql NVARCHAR(1000);
SET @sql = 'BCP "SELECT FCONTENT FROM K3DBConfiger250609.dbo.T_BD_PRODUCTMODEL where FID = ''Kingdee''" queryout "C:\Data\output.txt" -T -N';
EXEC xp_cmdshell @sql;

SELECT FCONTENT FROM K3DBConfiger250609.dbo.T_BD_PRODUCTMODEL where FID = 'Kingdee'

-- 4. 使用后建议关闭(安全考虑)

EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;
郭少锋 创建 2025-10-17 11:59:56 SQL
SQL : 数据库 查找包含文字的 数据表 SQL : 数据库 查找包含文字的 数据表
DECLARE @SearchStr NVARCHAR(100) = '99291303-1d0d-42d2-9c5e-5ce8153172d2' -- 修改为你要查找的字符串
DECLARE @SQL NVARCHAR(MAX)
DECLARE @TableName NVARCHAR(256)
DECLARE @ColumnName NVARCHAR(128)
DECLARE @Schema NVARCHAR(128)
DECLARE @DataType NVARCHAR(128)

-- 创建临时表存储结果

if exists (select * from sys.objects where object_id = object_id(N'dbo.Tmp_FindTxt') and type in (N'U'))
drop table dbo.Tmp_FindTxt


CREATE TABLE Tmp_FindTxt (

SchemaName NVARCHAR(128),
TableName NVARCHAR(256),
ColumnName NVARCHAR(128),
ColumnValue NVARCHAR(MAX),
MatchCount INT -- 修改为MatchCount更准确
)

-- 获取所有字符串类型的列(包括数据类型信息)

DECLARE TableCursor CURSOR FOR
SELECT
s.name AS SchemaName,
t.name AS TableName,
c.name AS ColumnName,
ty.name AS DataType
FROM
sys.tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
INNER JOIN sys.types ty ON c.user_type_id = ty.user_type_id
WHERE
ty.name IN ('nvarchar','varchar','char','nchar','text','ntext') -- and t.name = 'T_META_OBJECTTYPECACHE'

OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @Schema, @TableName, @ColumnName, @DataType

WHILE @@FETCH_STATUS = 0
BEGIN
-- 对text/ntext类型字段特殊处理
IF @DataType IN ('text', 'ntext')
BEGIN
SET @SQL =
'INSERT INTO Tmp_FindTxt (SchemaName, TableName, ColumnName, ColumnValue, MatchCount)
SELECT
''' + REPLACE(@Schema, '''', '''''') + ''',
''' + REPLACE(@TableName, '''', '''''') + ''',
''' + REPLACE(@ColumnName, '''', '''''') + ''',
CAST(SUBSTRING(CAST(' + QUOTENAME(@ColumnName) + ' AS NVARCHAR(MAX)), 1, 100) AS NVARCHAR(100)),
COUNT(*) AS MatchCount
FROM
' + QUOTENAME(@Schema) + '.' + QUOTENAME(@TableName) + '
WHERE
CAST(' + QUOTENAME(@ColumnName) + ' AS NVARCHAR(MAX)) LIKE ''%' + REPLACE(@SearchStr, '''', '''''') + '%''
GROUP BY
CAST(' + QUOTENAME(@ColumnName) + ' AS NVARCHAR(MAX))'
END
ELSE
BEGIN
SET @SQL =
'INSERT INTO Tmp_FindTxt (SchemaName, TableName, ColumnName, ColumnValue, MatchCount)
SELECT
''' + REPLACE(@Schema, '''', '''''') + ''',
''' + REPLACE(@TableName, '''', '''''') + ''',
''' + REPLACE(@ColumnName, '''', '''''') + ''',
CAST(' + QUOTENAME(@ColumnName) + ' AS NVARCHAR(MAX)),
COUNT(*) AS MatchCount
FROM
' + QUOTENAME(@Schema) + '.' + QUOTENAME(@TableName) + '
WHERE
' + QUOTENAME(@ColumnName) + ' LIKE ''%' + REPLACE(@SearchStr, '''', '''''') + '%''
GROUP BY
' + QUOTENAME(@ColumnName)
END

BEGIN TRY
EXEC sp_executesql @SQL
END TRY
BEGIN CATCH
PRINT 'Error searching [' + @Schema + '].[' + @TableName + '].[' + @ColumnName + ']: ' + ERROR_MESSAGE()
END CATCH

FETCH NEXT FROM TableCursor INTO @Schema, @TableName, @ColumnName, @DataType
END

CLOSE TableCursor
DEALLOCATE TableCursor

-- 显示结果

SELECT

'select '+ ColumnName +' ,* from '+ TableName +' where '+ ColumnName +' like ''%' + REPLACE(@SearchStr, '''', '''''') + '%''' AS '查询',

SchemaName AS '架构名',
TableName AS '表名',
ColumnName AS '字段名',
ColumnValue AS '包含的字段值',
MatchCount AS '匹配行数'
FROM
Tmp_FindTxt
ORDER BY
SchemaName, TableName, ColumnName

结果:

查询 架构名 表名 字段名 包含的字段值 匹配行数
select FID ,* from T_META_OBJECTTYPECACHE where FID like '%99291303-1d0d-42d2-9c5e-5ce8153172d2%' dbo T_META_OBJECTTYPECACHE FID 99291303-1d0d-42d2-9c5e-5ce8153172d2 1
郭少锋 编辑 2025-10-16 11:05:11 创建 2025-10-16 11:04:35 SQL
云星空 : 读取 系统设置 云星空 : 读取 系统设置
var aUserId = aContext.UserId.ToString(); // 当前用户 id
var aFOrgId = aContext.CurrentOrganizationInfo.ID; // 当前组织 id

#region| 取得:系统设置 |

var aSql = $@"/*dialect*/
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 读取:系统设置

select * from (
--------------------------------------------------------------------------------------------
select FOrgId

,a1.value('(Seq)[1]', 'int') FSeq
,a1.value('(FUserId/User/Id)[1]', 'int') FUserId

,a1.value('(FUserId/User/Name)[1]', 'nvarchar(50)') FUserName

,a1.value('(FType)[1]', 'nvarchar(50)') FType
,a1.value('(FValue)[1]', 'int') FValue

from t_Bas_SysParameter

cross apply FParameters.nodes('/FHead/FEntity/FEntity') T(a1)

where FParameterObjId = 'aGsf_SysSet'
--------------------------------------------------------------------------------------------
) a where FUserId = {aUserId} and FOrgId in ( 0,{aFOrgId} )

order by FOrgId desc

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
";
DynamicObjectCollection aTable1 = DBServiceHelper.ExecuteDynamicObject(aContext, aSql);
#endregion
郭少锋 创建 2025-10-10 10:08:45 云星空
SQL : 读取 xml 字段 SQL : 读取 xml 字段
------------------------------------------------------------------------------------------------------------------------
-- 读取 xml 成 table

select * from (
--------------------------------------------------------------------------------------------
select

a1.value('(Seq)[1]', 'int') AS Seq,
a1.value('(FUserId/User/Id)[1]', 'int') AS UserId,
a1.value('(FUserId/User/Name)[1]', 'nvarchar(50)') AS UserName,
a1.value('(FType)[1]', 'nvarchar(50)') AS FType,
a1.value('(FValue)[1]', 'int') AS FValue

from t_Bas_SysParameter

cross apply FParameters.nodes('/FHead/FEntity/FEntity') T(a1)

where FParameterObjId = 'aGsf_SysSet'
--------------------------------------------------------------------------------------------
) a where UserName = '郭少锋'




/*
select FParameters from t_Bas_SysParameter where FParameterObjId = 'aGsf_SysSet'

------------------------------------------------------------------------------------------------------------------------
-- 取得 xml

<FHead>
<FEntity>
<FEntity>
<Id>1</Id>
<Seq>1</Seq>
<FUserId_Id>100076</FUserId_Id>
<FUserId>
<User>
<Id>100076</Id>
<Name>郭少锋</Name>
<UserAccount>gsf</UserAccount>
</User>
</FUserId>
<FType>年</FType>
<FValue>1</FValue>
</FEntity>
<FEntity>
<Id>2</Id>
<Seq>2</Seq>
<FUserId_Id>133043</FUserId_Id>
<FUserId>
<User>
<Id>133043</Id>
<Name>测试</Name>
<UserAccount>cs</UserAccount>
</User>
</FUserId>
<FType>月</FType>
<FValue>2</FValue>
</FEntity>
</FEntity>
</FHead>
------------------------------------------------------------------------------------------------------------------------
*/
郭少锋 编辑 2025-10-09 17:24:28 创建 2025-10-09 17:11:30 SQL
SQL : 日期对比 SQL : 日期对比 sql2012 +

select dateFromParts(2021,1,1) 数字转日期 ,(case when dateFromParts(2021,1,1) > '2025-1-2' then '大于' else '小于等于' end) 日期对比

select max( dateFromParts( FYear ,FPeriod ,1) ) from t_RP_ContactBal where FRP = 0 and ( FYear * 12 + FPeriod <= 2021 * 12 + 1 )

sql2008

select max( convert(nvarchar(10) ,FYear) +'-'+ right( '000'+ convert(nvarchar(10) ,FPeriod) ,2) ) from t_RP_ContactBal where FRP = 0 and ( FYear * 12 + FPeriod <= 2021 * 12 + 1 )

郭少锋 编辑 2025-09-26 15:38:45 创建 2025-09-24 14:47:22 SQL
云星空 : BOS配置 云星空 : BOS配置 属性:采购员 过滤 FBizOrgId='GetValue(FPurchaseOrgId)'

FPurchaseOrgId 采购组织 字段标识
FBizOrgId 采购员 的 使用组织 字段标识。

属性:部门 过滤 FDEPTID IN (SELECT FDEPTID FROM T_BD_STAFF WHERE FEMPINFOID = GetValue(F_DN_Person) )


FCustId ='GetValue(FReceiveId)' and FIsUsed=1

郭少锋 编辑 2025-09-08 16:04:11 创建 2024-05-31 10:32:28 云星空
SQL : 链接服务器 SQL : 链接服务器 -- 创建链接服务器

EXEC master.dbo.sp_addlinkedserver

@server = N'Link_188_10',

@srvproduct = N'',
@provider = N'SQLNCLI',

@datasrc = N'192.168.188.10' -- 数据库地址: 192.168.1.100\SQL2019
go

-- 配置登录凭据

EXEC master.dbo.sp_addlinkedsrvlogin

@rmtsrvname = N'Link_188_10', -- 链接名

@useself = N'False',
@locallogin = NULL,

@rmtuser = N'sa', -- 用户名
@rmtpassword = N'sql2019' -- 密码
go

-- 测试连接:链接数据库

SELECT name FROM Link_188_10.master.sys.databases


select * from Link_188_10.KIS_U_42.dbo.t_ItemClass
go



-- 查询所有链接服务器

EXEC sp_linkedservers
go

-- 查询特定链接服务器的信息

EXEC sp_helpserver N'Link_188_10'
go

-- 查询链接服务器的表

select * from Link_188_10.KIS_U_42.dbo.t_ItemClass
go


-- 先删除登录映射

EXEC master.dbo.sp_droplinkedsrvlogin

@rmtsrvname = N'Link_188_10',
@locallogin = NULL


-- 再删除链接服务器

EXEC master.dbo.sp_dropserver

@server = N'Link_188_10',
@droplogins = 'droplogins'



郭少锋 编辑 2025-08-08 11:37:24 创建 2025-08-08 11:26:44 SQL
SQL : 分组 逐行累计 SQL : 分组 逐行累计 select
a.FStockName,a.FMtrlNo,a.FMtrlName,a.FUnitStockName
,a.FIdentityId
,a.FQtyStock4

,sum(b.FQtyStock4) FQtyStock4_Sum

from TMP2983AE495E5511F0ACB40050563 a
join TMP2983AE495E5511F0ACB40050563 b on ( b.FStockName = a.FStockName ) and ( b.FMtrlNo = a.FMtrlNo ) and ( b.FMtrlName = a.FMtrlName ) and ( b.FUnitStockName = a.FUnitStockName )

and ( b.FIdentityId <= a.FIdentityId )

group by
a.FStockName,a.FMtrlNo,a.FMtrlName,a.FUnitStockName
,a.FIdentityId
,a.FQtyStock4

order by a.FStockName,a.FMtrlNo,a.FMtrlName,a.FUnitStockName ,a.FIdentityId
;



SELECT
a.group_column,
a.date_column,
a.value_column,
SUM(b.value_column) AS group_running_total
FROM your_table a
JOIN your_table b ON
b.group_column = a.group_column
AND b.date_column < a.date_column
GROUP BY
a.group_column,
a.date_column,
a.value_column
ORDER BY a.group_column, a.date_column;
郭少锋 编辑 2025-07-11 21:43:13 创建 2025-07-11 21:07:36 SQL