我一直在寻找这个问题的解决方案。虽然这个特定的问题已经在这个论坛上讨论过很多次,但我没有得到任何正确的答案。
我将从第 3 方获取可以包含单引号的数据。此数据需要插入到数据库中,当它包含单引号时,它会失败并引发以下错误:
Msg 105, Level 15, State 1, Line 7
Unclosed quotation mark after the character string '
---以下是将 trandata 与其他参数一起作为输入传递并从 SQL 服务器调用 fn_stripsingleQuote10 函数的 C++ 代码:
strSQLText = "declare @returnType as varchar(max)\n EXEC @returnType = CABINET..fn_stripsingleQuote10 ";
sqlTxtParams.Format("'%s', '%s', '%s', tranData, sing_quote, double_sing_quote);
strSQLText += sqlTxtParams;
----我的sql函数(fn_stripsingleQuote10)替换单引号
USE [cabinet]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[fn_stripsingleQuote10](
@strip varchar(Max),@patern varchar(5),@replace varchar(5)
)
returns varchar(Max) as begin
declare @CleanString varchar(Max)
SET @CleanString=(REPLACE(@strip,@patern, @replace))
return @CleanString
end
示例输出:例如:将@returnType 声明为 varchar(max) EXEC @returnType = CABINET..fn_stripsingleQuote10 'fsds'd','''',''''''
我觉得我调用该功能的方式不正确。请提供解决方案。