gpt4 book ai didi

sql-server - 如何在 MSSQL 的 NVARCHAR() 列中插入包含 #0 的字符串?

转载 作者:行者123 更新时间:2023-12-03 15:23:36 34 4
gpt4 key购买 nike

我确信这有一个非常简单的解决方案,但我已经用尽了我的资源。我需要将一堆可能包含 #0WideString 变量插入到 MSSQL2k8 中的 NVARCHAR(1024) 列中。 #0 被视为转换中某处的字符串终止符...因此,当我存储 #6'r'#0'abc' 时,仅存储 # 6'r' 被存储。我正在使用 TADOQuery。对此我能做什么?

<小时/>

这是我使用的代码:

var
S: string;
begin
S := #6'r'#0'abc';
ADOQuery1.Append;
ADOQuery1S.Value := S;
{ At this point, S = #6'r'#0'abc' and ADOQuery1S.Value = #6'r';}
ADOQuery1.Post;
end;

最佳答案

如果要存储通过任何可能包含 NULL 的方式加密的字符串,请使用 Soap.EncdDecd.pas(旧版本中为 EncdDecd.pas)中的例程将加密数据编码和解码为 Base64。

并且务必使用适当的加密,无论是来自 Microsoft CryptoAPI 还是任何 native Delphi 实现,例如 DCPCrypt .

如果您要存储用于访问系统的密码,请考虑对它们进行散列(和加盐)。显然,如果它们是连接到其他系统的密码,您就不能这样做。

var
B64: string;
begin
B64 := EncodeString(#6'r'#0'abc');
ADOQuery1.Append;
ADOQuery1S.Value := B64;
ADOQuery1.Post;
end;

关于sql-server - 如何在 MSSQL 的 NVARCHAR() 列中插入包含 #0 的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028162/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com