ACCESS插入新记录的语句问题

Zimmerk 2010-06-24 08:20:19
语句格式是这样的 "INSERT INTO [Files]([FileName],[Path],[Ext])VALUES('%s','%s','%s')"
一般都没有什么错误,但遇到字串有“ ' ”的,就会出错,如:

INSERT INTO [Files]([FileName],[Path],[Ext])VALUES('Dave Raggett's Introduction to HTML.url','D:\收藏夹\','url')

原因是后面的“ ' ”(第二个)与前面的对上了,但字串中可能会有不可预料的符号出现,而这些字串又不能随意改动,请问大家有没有办法解决一下?
...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zimmerk 2010-06-27
  • 打赏
  • 举报
回复
没有希望了?
今晚10点左右来结账
Zimmerk 2010-06-25
  • 打赏
  • 举报
回复
#define SQL_INSERT "INSERT INTO [Files]([FileName],[Path],[Ext])VALUES('%s','%s','%s')"

for(...)
{
m_Name.Replace("'","''");
m_sql.Format(SQL_INSERT,m_Name,m_Path,m_Ext);
m_conn->Execute(_bstr_t(m_sql),&RecordsAffected,adCmdText);
}

m_conn 为 _ConnectionPtr 类型
一条晚起的虫 2010-06-25
  • 打赏
  • 举报
回复
// 不知道你怎么插入的。
// 能否把代码和数据发给我。
// 邮箱或者QQ站短给我。
Zimmerk 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lfchen 的回复:]

// 'Dave Raggett''s Introduction to HTML.url'插入数据库之后就是'Dave Raggett's Introduction to HTML.url'
// 特殊字符需要转义。
// 刚才拷贝错了,汗。
[/Quote]
不清楚如何转义
一条晚起的虫 2010-06-24
  • 打赏
  • 举报
回复
// 'Dave Raggett''s Introduction to HTML.url'插入数据库之后就是'Dave Raggett's Introduction to HTML.url'
// 特殊字符需要转义。
// 刚才拷贝错了,汗。
一条晚起的虫 2010-06-24
  • 打赏
  • 举报
回复
// 'Dave Raggett''s Introduction to HTML.url'插入数据库之后就是'Dave Raggett''s Introduction to HTML.url'
// 特殊字符需要转义。
Zimmerk 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lfchen 的回复:]

// 查找单引号,将单引号替换为两个单引号,这样才能插入Access数据库。
[/Quote]
这样不是改变了原来的值么,
Dave Raggett's Introduction to HTML.url
就会变成
Dave Raggett''s Introduction to HTML.url
一条晚起的虫 2010-06-24
  • 打赏
  • 举报
回复
// 查找单引号,将单引号替换为两个单引号,这样才能插入Access数据库。
Zimmerk 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yujia120 的回复:]

可以先查找单引号,再替换
http://www.china-askpro.com/msg43/qa88.shtml
[/Quote]
那就不是原来的字串了,不能改变字串啊
社会栋梁 2010-06-24
  • 打赏
  • 举报
回复
可以先查找单引号,再替换
http://www.china-askpro.com/msg43/qa88.shtml
Zimmerk 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lfchen 的回复:]

// 在SQL语句中,用''表示'
// 这种就是转义,和C/C++中 \\表示\,\n表示换行是一样的。
[/Quote]

不行啊,我试过了
Dave Raggett's Introduction to HTML.url
就转成了
Dave Raggett''s Introduction to HTML.url
一条晚起的虫 2010-06-24
  • 打赏
  • 举报
回复
// 在SQL语句中,用''表示'
// 这种就是转义,和C/C++中 \\表示\,\n表示换行是一样的。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧