当我尝试在MS ACCESS表中存储包含“C”代码的文本时(以编程方式)。它用一些问号符号替换转义序列('\ n','\ t')。
示例:
存储代码:
#include<stdio.h>
int main()
{
printf("\n\n\t Hi there...");
return 0;
}
当我看到上面插入的代码的MS-Access表时,它显示每个换行符和'\ t'字符替换为'?'一种象征。
我的问题“是否存在MS-Access字段的任何其他数据类型,它存储代码,而不用某些符号替换转义序列?” 和 “像'MYSQL这样的其他DBMS中存在'原始'数据类型是否可以完成我的工作?”
这是它在access-07中的显示方式:
答案 0 :(得分:0)
看起来源文本中的换行符不是Windows标准的CRLF(回车符,换行符)。找出那些神秘人物的字符代码。
使用下面的程序,我可以为它提供一个文本字符串,它将列出每个字符的代码。以下是立即窗口中的示例。
AsciiValues "a" & vbcrlf & "b"
position Asc AscW
1 97 97
2 13 13
3 10 10
4 98 98
如果我想检查存储在表格文本字段中的值,我可以使用DLookup
获取该值并将其提供给该函数。
AsciiValues DLookup("memo_field", "tblFoo", "id=1")
position Asc AscW
1 108 108
2 105 105
3 110 110
4 101 101
5 32 32
确定问题字符的代码后,您可以执行UPDATE
语句,将问题字符代码替换为合适的替代字符。
UPDATE YourTable
SET YourField = Replace(YourField, Chr(x), Chr(y));
这就是程序......
Public Sub AsciiValues(ByVal pInput As String)
Dim i As Long
Dim lngSize As Long
lngSize = Len(pInput)
Debug.Print "position", "Asc", "AscW"
For i = 1 To lngSize
Debug.Print i, Asc(Mid(pInput, i, 1)), AscW(Mid(pInput, i, 1))
Next
End Sub
答案 1 :(得分:0)
我会说你可能缺少整个换行符。 Access中的换行符包含回车符(ASCII 13) AND 换行符(ASCII 10)。这缩写为CRLF。你可能只有一个或另一个,但不是两个。
使用HansUp的AsciiValues程序来查看。