我跟踪了执行,在点击按钮执行插入最后一条记录时程序捕获到一个异常,然后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语句.
16 个解决方案
#1
莫沉莫沉。。。
#2
看看异常报的什么信息?
#3
szSQL.Format("insert into
'midi
' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
midi_time,midi_channel,midi_no,midi_vel,m_filename);
#4
前辈,这个是表明。。也要加引号吗?
#5
主键重复
#6
都知道是主键重复了还不知道怎么解决?
#7
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);主键不能重复
并且语句中的引号是必须要加的
midi_time,midi_channel,midi_no,midi_vel,m_filename);主键不能重复
并且语句中的引号是必须要加的
#8
可是主键没有重复啊!我为了不重复定义了多个主键
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
这个加了‘’就失败了。。
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
这个加了‘’就失败了。。
#9
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.
还有,我觉得那个midi是不用加''的,,因为那个是表名.
#10
可以不加,自增字段不用添加,数据库自己会添加。
#11
前辈,解释下自增字段的问题吧?
#12
自增字段的数据类型使用“自动编号”
access会自动为其符值,每次加1.
#13
额,貌似不是这个问题啊。我的操作是这样的:先修改一个文件格式,然后对文件里的数据进行操作,存进数据库,这个表我已经建好了,有3个主键:midi_time,midi_no,midi_vel。文件有151行数据,我执行完程序,数据库里就是151行数据,而且和文件一模一样,但是执行完后非弹出个数据库主键的问题错误。
我是采用行读取模式,用fgets每次读取一行数据,到文件结尾feof判断退出,数据已经存到数据库里了。
就不明白为什么非得报个错。
#14
是不是程序最后多循环了一次或者根本就没有退出循环?只是因为152次插入的是151次的数据,然后异常导致你程序退出了?
#15
写一行文件做做实验就知道了
#16
谢谢大家,毛病找到了。。索引的问题,索引名字不能乱取啊,呵呵,结账了
#1
莫沉莫沉。。。
#2
看看异常报的什么信息?
#3
szSQL.Format("insert into
'midi
' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
midi_time,midi_channel,midi_no,midi_vel,m_filename);
#4
前辈,这个是表明。。也要加引号吗?
#5
主键重复
#6
都知道是主键重复了还不知道怎么解决?
#7
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);主键不能重复
并且语句中的引号是必须要加的
midi_time,midi_channel,midi_no,midi_vel,m_filename);主键不能重复
并且语句中的引号是必须要加的
#8
可是主键没有重复啊!我为了不重复定义了多个主键
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
这个加了‘’就失败了。。
szSQL.Format("insert into 'midi' values('%s','%s','%s','%s','%s')",
midi_time,midi_channel,midi_no,midi_vel,m_filename);
这个加了‘’就失败了。。
#9
是不是设了自增字段了?
还有,我觉得那个midi是不用加''的,,因为那个是表名.
还有,我觉得那个midi是不用加''的,,因为那个是表名.
#10
可以不加,自增字段不用添加,数据库自己会添加。
#11
前辈,解释下自增字段的问题吧?
#12
自增字段的数据类型使用“自动编号”
access会自动为其符值,每次加1.
#13
额,貌似不是这个问题啊。我的操作是这样的:先修改一个文件格式,然后对文件里的数据进行操作,存进数据库,这个表我已经建好了,有3个主键:midi_time,midi_no,midi_vel。文件有151行数据,我执行完程序,数据库里就是151行数据,而且和文件一模一样,但是执行完后非弹出个数据库主键的问题错误。
我是采用行读取模式,用fgets每次读取一行数据,到文件结尾feof判断退出,数据已经存到数据库里了。
就不明白为什么非得报个错。
#14
是不是程序最后多循环了一次或者根本就没有退出循环?只是因为152次插入的是151次的数据,然后异常导致你程序退出了?
#15
写一行文件做做实验就知道了
#16
谢谢大家,毛病找到了。。索引的问题,索引名字不能乱取啊,呵呵,结账了