用VC和SQL做了个图书馆管理系统,问题如下: 整个系统做好了后,当想创建第一条新书入库记录、第一条借书证记录时总时提示出现内存无法read的情况,并且在SQL库里也新建了第一条记录,后面再办理新书入库和借书证时就没有这种情况了,不知什么原因,从网上百度了下说是空库,没有指定第一条游标,不是太明白,请高手解释解释...... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 内存无法read一般是内存越界之类的。你可以断点看看内存是否使用正确。此类问题真的只能自己慢慢调试 这是上面问题的一部分程序,我感觉空记录集时没有让游标指向第一条记录,可网上有的说是空集自动指向第一条记录的,不需要判断了,可那样就出现了内存不能read的情况,可第一条记录也添加进SQL表里了,添加后续记录就不会有内存read的情况了,这是什么原因??? strSQL.Format("select * from Proof_Info"); m_pset -> Open(AFX_DB_USE_DEFAULT_TYPE, strSQL); if(m_pset -> GetRecordCount()=0) { MessageBox("数据中还没有一份借阅证信息,将办理第一份借阅证","办理借阅证"); } m_pset->AddNew();//添加新的记录 m_pset->SetFieldNull(&(m_pset->m_Proof_ID),FALSE); m_pset->m_Proof_ID=m_strProofID; m_pset->SetFieldNull(&(m_pset->m_Name),FALSE); m_pset->m_Name=m_strName; m_pset->SetFieldNull(&(m_pset->m_Sex),FALSE); m_pset->m_Sex=m_strSex; CTime m_strBirthTime(m_year,m_month,m_day,10,5,6,-1); m_pset->SetFieldNull(&(m_pset->m_Birth_Time),FALSE); m_pset->m_Birth_Time=m_strBirthTime; m_pset->SetFieldNull(&(m_pset->m_Address),FALSE); m_pset->m_Address=m_strAddress; m_pset->SetFieldNull(&(m_pset->m_ID_Number),FALSE); m_pset->m_ID_Number=m_strID; m_pset->SetFieldNull(&(m_pset->m_Tel_Number),FALSE); m_pset->m_Tel_Number=m_strTel; m_pset->SetFieldNull(&(m_pset->m_Now_Borrow_Amount),FALSE); m_pset->m_Now_Borrow_Amount=0; m_pset ->Update();//保存记录 m_pset ->Requery();//刷新数据库 m_pset ->Close(); m_database.Close(); 你用什么的连接库的?ADO ODBC?可以先下载这些连接库的调试程序,保证环境和链接是OK的情况下,再继续调试你的业务逻辑。 用的ODBC,链接没有问题,现在的问题就是往数据库里输入第一条记录会出现内存无法read的情况... When working with attached tables or ODBC databases, GetRecordCount always returns – 1. 怎么样在读取文件时将鼠标该我漏斗形状 位图的左上角和右上角带有一个白色小区域 怎么去掉啊! 实现一个cedit贴图的问题 怎样阅读读MSDN? 如何在对话框中动态创建n个编辑框? 小弟急用,怎么把摄像枪视频显示在指定控件里?给分 问题是这样的,C++基础!! 需要一个QQ号码,给100分 怎样得到与特定文件关联的缺省位图 如何用winInet获知http服务器上的某个文件的大小或者谁有类似蚂蚁和网际快车的下载工具的源代码 高手帮帮忙看看怎么优化这条SQL语句 关于KillTimer 的用法
strSQL.Format("select * from Proof_Info");
m_pset -> Open(AFX_DB_USE_DEFAULT_TYPE, strSQL);
if(m_pset -> GetRecordCount()=0)
{
MessageBox("数据中还没有一份借阅证信息,将办理第一份借阅证","办理借阅证");
} m_pset->AddNew();//添加新的记录
m_pset->SetFieldNull(&(m_pset->m_Proof_ID),FALSE);
m_pset->m_Proof_ID=m_strProofID; m_pset->SetFieldNull(&(m_pset->m_Name),FALSE);
m_pset->m_Name=m_strName;
m_pset->SetFieldNull(&(m_pset->m_Sex),FALSE);
m_pset->m_Sex=m_strSex; CTime m_strBirthTime(m_year,m_month,m_day,10,5,6,-1);
m_pset->SetFieldNull(&(m_pset->m_Birth_Time),FALSE);
m_pset->m_Birth_Time=m_strBirthTime;
m_pset->SetFieldNull(&(m_pset->m_Address),FALSE);
m_pset->m_Address=m_strAddress; m_pset->SetFieldNull(&(m_pset->m_ID_Number),FALSE);
m_pset->m_ID_Number=m_strID; m_pset->SetFieldNull(&(m_pset->m_Tel_Number),FALSE);
m_pset->m_Tel_Number=m_strTel; m_pset->SetFieldNull(&(m_pset->m_Now_Borrow_Amount),FALSE);
m_pset->m_Now_Borrow_Amount=0; m_pset ->Update();//保存记录
m_pset ->Requery();//刷新数据库
m_pset ->Close();
m_database.Close();