利用ODBC向一个库表中添加记录,由于name字段不能重复,因此name字段已经设成主键,代码如下:
CRecordset dataset;
int m;
CString m_temp,m_address,m_code,m_name; m_temp.Format( "%s%s%s", "([company].[name] = '", m_name, "')" );
dataSet.m_strFilter = m_temp;
dataSet.Open( );
m=dataSet.GetRecordCount();
/*保证name字段不会重复,如没有重复,下面的代码用于添加记录*/
if(m==0)
{
dataSet.AddNew();
dataSet.m_address = m_address;
dataSet.m_code = m_code;
dataSet.m_title = m_name;
dataSet.Update();
}
dataSet.Close( );现在的问题是每次执行到dataSet.Update(),程序都自动中断,什么原因,大家帮看看
CRecordset dataset;
int m;
CString m_temp,m_address,m_code,m_name; m_temp.Format( "%s%s%s", "([company].[name] = '", m_name, "')" );
dataSet.m_strFilter = m_temp;
dataSet.Open( );
m=dataSet.GetRecordCount();
/*保证name字段不会重复,如没有重复,下面的代码用于添加记录*/
if(m==0)
{
dataSet.AddNew();
dataSet.m_address = m_address;
dataSet.m_code = m_code;
dataSet.m_title = m_name;
dataSet.Update();
}
dataSet.Close( );现在的问题是每次执行到dataSet.Update(),程序都自动中断,什么原因,大家帮看看
{
// 添加记录
}
catch (CDBException *e)
{
TRACE (e->m_strError);
e->Delete();
}然后在DEBUG窗口看你到底是什么异常吧.把异常信息贴出来才好判断是出什么错.
//name字段难道不给赋值吗,虽然是主键,但只要不是自增字段,肯定需要显式赋值
dataSet.AddNew();
dataSet.m_address = m_address;
dataSet.m_code = m_code;
dataSet.m_title = m_name;
dataSet.Update();
ODBC开放数据库互连,通常用来访问不具备OLE-DB特性的非Microsoft数据库中的数据,一般用ADO就可以了