添加数据库操作后,不知道为什么程序运行出错?请帮忙!!!!!

jsjszg 2004-05-08 02:11:05
数据源注册采用DLL方法的SQLConfigDataSource

然后添加下面的代码:
CDatabase m_db;
m_db.Open(NULL,FALSE,FALSE,_T("db"),TRUE);//连接数据库
CMySet m_set(&m_db);
if(m_set.IsOpen())
m_set.Close();
m_set.Open(); //打开数据库
m_set.AddNew(); //添加记录
UpdateData(true);
m_set.m_NO=m_no;
m_set.m_NAME=m_name;
m_set.m_AGE=m_age;
m_set.Update();
m_set.Requery();

数据项也已经绑定:
RFX_Text(pFX,_T("[NO]"),m_NO);
RFX_Text(pFX,_T("[NAME]"),m_NAME);
RFX_Int(pFX,_T("[AGE]"),m_AGE);

编译连接没有错误,第一次运行程序意外终止,以后的编译连接就会出错。错误代码为:
LINK : fatal error LNK1168: cannot open Debug/Db2.exe for writing

请问我的代码哪里出了问题?
...全文
51 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
菜牛 2004-05-09
CDatabase::Open()第一个参数是数据源哪,怎么为NULL?
CMySet 里有没有设定m_nFields的值?

  • 打赏
  • 举报
回复
specialkid 2004-05-08
用try{} catch() {} 测试,去在线msdn那里复制一个全面的扑捉错误信息的异常程序。(有关方面的)
还有MessageBox()/AfxMessageBox()测试输出有关信息,很有帮助的。
  • 打赏
  • 举报
回复
jsjszg 2004-05-08
我再运行,运行错误,系统的debug调试出现下面的提示:
void CRecordset::BuildSelectSQL()
{
ASSERT_VALID(this);
ASSERT(m_hstmt != SQL_NULL_HSTMT);

// Ignore queries with procedure call keyword or output param
if (!(_tcsnicmp(m_strSQL, _afxCall, lstrlen(_afxCall)-1) == 0 ||
_tcsnicmp(m_strSQL, _afxParamCall, lstrlen(_afxParamCall)-1) == 0))
{
// Ignore queries already built
if (_tcsnicmp(m_strSQL, _afxSelect, lstrlen(_afxSelect)-1) != 0)
{
// Assume m_strSQL specifies table name
ASSERT(m_nFields != 0);//*错误的地方*//

CString strTableName;
strTableName = m_strSQL;
m_strSQL.Empty();
m_strSQL = _afxSelect;

// Set all fields dirty. AppendNames only outputs dirty field names
SetFieldDirty(NULL);
if (AppendNames(&m_strSQL, _T(",")) == 0)
{
TRACE0("Error: no field names - at least 1 required.\n");
ThrowDBException(AFX_SQL_ERROR_EMPTY_COLUMN_LIST);
}

// Overwrite final ',' separator with ' '
ASSERT(m_strSQL[m_strSQL.GetLength()-1] == ',');
m_strSQL.SetAt(m_strSQL.GetLength()-1, ' ');

m_strSQL += _afxFrom;
m_strSQL += strTableName;
}
}
}
  • 打赏
  • 举报
回复
jsjszg 2004-05-08
那为什么不能结束呢?是不是程序有问题啊?

我看过任务管理器,进程列表中没有db2。exe的进程。
  • 打赏
  • 举报
回复
ctoygl 2004-05-08
好像是你的程序db2.exe没有完全结束。看看进程里有没有。
  • 打赏
  • 举报
回复
jsjszg 2004-05-08
不知道?我检测数据库已经注册了。
  • 打赏
  • 举报
回复
悲酥清风 2004-05-08
是不是DLL调用方面的问题?
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库
加入

3957

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2004-05-08 02:11
社区公告
暂无公告