Ms access 取消转义Access 2003中绑定到控件的记录集中存在的字符
我在SQL Server中存储了一些包含撇号的数据。在SQL Server表中,撇号被转义。例如,短语“Roberts的论文”存储为“Roberts的论文”。我使用Access 2003作为应用程序的字体端,并使用ADO使用存储过程访问存储在SQL Server中的数据 我遇到的问题是,当使用记录集检索数据并绑定到控件时,如何“取消转义”双撇号。下面是一些示例代码Ms access 取消转义Access 2003中绑定到控件的记录集中存在的字符,ms-access,recordset,escaping,Ms Access,Recordset,Escaping,我在SQL Server中存储了一些包含撇号的数据。在SQL Server表中,撇号被转义。例如,短语“Roberts的论文”存储为“Roberts的论文”。我使用Access 2003作为应用程序的字体端,并使用ADO使用存储过程访问存储在SQL Server中的数据 我遇到的问题是,当使用记录集检索数据并绑定到控件时,如何“取消转义”双撇号。下面是一些示例代码 Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Set
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.ConnectionString = myConnectionString
cnn.Open
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cnn
rs.Source = "EXEC uspMyStoredProcedureName"
rs.LockType = adLockOptimistic
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.Open
Set ListControl.Recordset = rs
Set rs = Nothing
Set cnn = Nothing
我必须手动“循环”记录集并取消撇号转义吗?谢谢。你不必逃避任何事情。双撇号形式仅用于SQL语句中的字符串文本。通过
INSERT…”插入数据库的实际值罗伯特的论文
是罗伯特的论文,这是当你从一个从选择
抓取的记录集中读取它时会得到的值
如果
uspMyStoredProcedureName
中的任何东西做了一些奇怪的事情,导致双撇号返回,那么它就坏了,需要修复;如果您在数据库中有罗伯特的论文作为实际值,那么您已经插入了损坏的数据,您应该考虑修复完成该操作的代码,并清理数据。如果您无法更改uspMyStoredProcedureName,那么您将不得不在结果集中循环。
否则,将存储过程中的select语句从col
更改为Replace(col,“,”)
就可以了。
是的,在第二个参数中有六个单引号,在第三个参数中有四个单引号:两个单引号包含一个字符串,在这个字符串中,每个引号都被加倍以转义
顺便说一句:为什么要用双引号存储数据?看起来我根本不需要在数据库中存储“转义”的数据。我想我已经习惯了通过直接SQL插入数据,并且必须转义某些字符。多亏了“博宾斯”和“弗兰克”!