VC往access数据库插入记录问题

johnelf 2010-04-21 04:37:06
我对表设置了3个主键。。。只是为了通过测试的一种写法。
我跟踪了执行,在点击按钮执行插入最后一条记录时程序捕获到一个异常,然后AfxMessageBox(e.Description());
可是我打开数据库查看整个表,所有记录都在啊!调试了半天也没什么头绪,上来问问大家。
谢谢各位了


try
{
szSQL.Format("insert into midi values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
}

这是插入的sql语句.
...全文
331 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxufeng 2010-04-22
  • 打赏
  • 举报
回复
写一行文件做做实验就知道了
jxufeng 2010-04-22
  • 打赏
  • 举报
回复
是不是程序最后多循环了一次或者根本就没有退出循环?只是因为152次插入的是151次的数据,然后异常导致你程序退出了?
johnelf 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jxufeng 的回复:]
写一行文件做做实验就知道了
[/Quote]
谢谢大家,毛病找到了。。索引的问题,索引名字不能乱取啊,呵呵,结账了
johnelf 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xladykiller 的回复:]
引用 11 楼 johnelf 的回复:

引用 9 楼 xladykiller 的回复:
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.

前辈,解释下自增字段的问题吧?

自增字段的数据类型使用“自动编号”
access会自动为其符值,每次加1.
[/Quote]
额,貌似不是这个问题啊。我的操作是这样的:先修改一个文件格式,然后对文件里的数据进行操作,存进数据库,这个表我已经建好了,有3个主键:midi_time,midi_no,midi_vel。文件有151行数据,我执行完程序,数据库里就是151行数据,而且和文件一模一样,但是执行完后非弹出个数据库主键的问题错误。
我是采用行读取模式,用fgets每次读取一行数据,到文件结尾feof判断退出,数据已经存到数据库里了。
就不明白为什么非得报个错。
xladykiller 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 johnelf 的回复:]

引用 9 楼 xladykiller 的回复:
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.

前辈,解释下自增字段的问题吧?
[/Quote]
自增字段的数据类型使用“自动编号”
access会自动为其符值,每次加1.
johnelf 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xladykiller 的回复:]
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.
[/Quote]
前辈,解释下自增字段的问题吧?
zyq5945 2010-04-21
  • 打赏
  • 举报
回复
可以不加,自增字段不用添加,数据库自己会添加。
xladykiller 2010-04-21
  • 打赏
  • 举报
回复
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.
johnelf 2010-04-21
  • 打赏
  • 举报
回复
可是主键没有重复啊!我为了不重复定义了多个主键
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
这个加了‘’就失败了。。
尹成 2010-04-21
  • 打赏
  • 举报
回复
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);主键不能重复
并且语句中的引号是必须要加的
yaozhiyong110 2010-04-21
  • 打赏
  • 举报
回复
都知道是主键重复了还不知道怎么解决?
johnelf 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 r3000 的回复:]
看看异常报的什么信息?
[/Quote]
主键重复
johnelf 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zyq5945 的回复:]
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
[/Quote]
前辈,这个是表明。。也要加引号吗?
zyq5945 2010-04-21
  • 打赏
  • 举报
回复
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
康斯坦汀 2010-04-21
  • 打赏
  • 举报
回复
看看异常报的什么信息?
johnelf 2010-04-21
  • 打赏
  • 举报
回复
莫沉莫沉。。。

4,011

社区成员

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

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