社区
数据库
帖子详情
vc数据库专家们你们在哪儿,快来帮帮俺吧!
skyrain
2000-08-28 03:56:00
我用VC ODBC开发数据库,但在调用m_pSet->AddNew();时报纪录集为只读?我该怎么解决?
请各位大侠们帮忙,我几经没有办法了,如果还有其他的ODBC办法也行急!!!
我的数据库名字是test.mdb
有一个表单ziliao
有两个字段 "名字"和"年龄"
...全文
524
13
打赏
收藏
vc数据库专家们你们在哪儿,快来帮帮俺吧!
我用VC ODBC开发数据库,但在调用m_pSet->AddNew();时报纪录集为只读?我该怎么解决? 请各位大侠们帮忙,我几经没有办法了,如果还有其他的ODBC办法也行急!!! 我的数据库名字是test.mdb 有一个表单ziliao 有两个字段 "名字"和"年龄"
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
--茶--
2000-08-29
打赏
举报
回复
我使用Dao方法添加数据记录,对ODBC不知是否可行,仅供参考:(其实,在VC中访问数据库,完全没有必要使用AppWizard自动设置数据源,使用ODBC数据源直接调用CDatabase、CRecordset类即可,如果使用DAO接口,直接调用CDaoDatabase、CDaoRecordset类即可)
CDaoDatabase dbDst;
.....//打开数据库
CDaoRecordset rsDst(&dbDst);
rsDst.Open(dbOpenTable,LPCTSTR(tbfinfo.m_strName),0);//打开数据表名称
for(int c=0; c<countSrc;c++)//以源数据表的记录数来控制目标数据表的记录数
{
rsDst.AddNew();
rsDst.Update();
rsDst.SetBookmark(rsDst.GetLastModifiedBookmark());
}
//然后添加数据
rsSrc.MoveFirst();
rsDst.MoveFirst();
while(!rsSrc.IsEOF())
{
COleVariant var;
for(int k=0;k<21;k++){
rsDst.Edit();
rsSrc.GetFieldValue(k,var);
TRY
{
rsDst.SetFieldValue(k,var);
rsDst.Update();
}
CATCH (CDaoException, e){ e=NULL;
AND_CATCH (CMemoryException, e)
{
e=NULL;
}
END_CATCH
}
rsSrc.MoveNext();
rsDst.MoveNext();
}//循环结束,数据复制完毕
skyrain
2000-08-29
打赏
举报
回复
CDatebase db
db.ExecuteSQL
("INSERT INTO ziliao1(name) values('123')"); 到底行不行呀
我试验了,出错,并且没有错误码,是还需要其他的设置吗?
ODBC API中怎么用INSRT语句?我用的时间编译报类型不匹配
ufc
2000-08-29
打赏
举报
回复
ExecuteSQL("")括号内是标准SQL语句啊,应写成ExecuteSQL
("INSERT INTO ziliao1(name) values('123')"); ziliao1 为你数据库的里的表名,name应是表里的字段名 当然你可以用ODBC API去实现,但MFC ODBC 应更方便
skyrain
2000-08-29
打赏
举报
回复
我知道原因在于我的def...SQL()返回了3个表单,所以不能执行更改纪录操作
ufc的方法我也试验过
CDatabase db;
db.xecuteSQL("INSERT INTO 'ziliao1'('name')VELUES('123')");编译通过,执行报没有错误号的错误
如果这个方法可行请告诉我怎么做
我现在想用ODBCAPISQLHENV henv;SQLRETURN retcode;SQLHDBC hdbc;SQLHSTMT hstmt;
retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
//
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void *)SQL_OV_ODBC3,0
);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
//SQLSetConnectAttr(hdbc,(void *)SQL_LOGIN_TIMEOUT, 5, 0);
retcode = SQLConnect(hdbc, (SQLCHAR*)"ziliao",SQL_NTS,NULL,SQL_NTS
,NULL,SQL_NTS);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_I
NFO)
{
///在这儿怎么运用INSERT方法???
///急!!!!
///处理数据
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
}
}
SQLFreeHandle(SQL_HANDLE_ENV,henv);
}
ufc
2000-08-28
打赏
举报
回复
如果是在引导下与数据库相连建立的程序,则把snapshot(默认的)改成dynaset就行了,你可以
查到它,当然也可更简单地用MFC ODBC,用CDatabase的 Open 一个数据库,然后直接用ExecuteSQL来执行SQL语句,非常方便,再结合CRecordSet 你能完成一切,请给我加分
iceberg
2000-08-28
打赏
举报
回复
把你打开即操作表的源码贴上来,我们好为你会诊:)
skyrain
2000-08-28
打赏
举报
回复
你说的构造函数是自己写还
是MFC自动生成的?该怎样指定?能不能讲清楚一点,谢谢!(文件属性没问题)
PatrickGamp
2000-08-28
打赏
举报
回复
Sunlet说的没错,在构造函数中指定就可,如果仍然有错,检查文件属性是否只读.
skyrain
2000-08-28
打赏
举报
回复
高手们救救我吧!!!
skyrain
2000-08-28
打赏
举报
回复
MFC创建时m_pSet已经打开了数据库,应该在哪儿设置让它用可以增加的方式打开??
skyrain
2000-08-28
打赏
举报
回复
我全部用MFC自己创建的类,只更改了在初始数据时的那句 ...type=dynaset
可是不行,你说的创建是自己创建吗?
skyrain
2000-08-28
打赏
举报
回复
我设置了...type=dynaset呀,你说的方法创建时间设置应该在什么地方设?
Sunlet
2000-08-28
打赏
举报
回复
创建m_pSet对应的类时有两种模式,动态模式与快照模式.如果想addnew,应该动态模式.
VC
6
数据库
综合开发资料
VC
6
数据库
综合开发资料 目录 用
VC
++6.0开发多表联接的
数据库
应用程序 《使用OLEDB编写
数据库
应用程序》 《在Visual C++中用ADO进行
数据库
编程》 《用Visual C++开发
数据库
应用程序》 Visual C++ 中 的ODBC 编 程 利用ODBC管理
数据库
在ODBC 中 应 用DDX 和RFX MFC 中ODBC 类 库 简
学习
vc
的经验之谈
我开始学
vc
时就是自己一个人在啃,也没什么人指导,当时没有条件上网,资料特别少,在书店里随便买本书就学了,在学
vc
的过程中走了许多弯路,现在回想起来觉得做了很多无用功。看见大家在这里畅所欲言,有高手也有新入门的ddmm,我也来谈谈学
vc
的一点“捷径”吧,这条“捷径”纯粹走的是c/c++的路子,不考虑学习其他语言。(我只会c/c++,略懂vb和java,所以对于通过其他语言来切入
vc
的没
【转】
数据库
编程总结
from: http://blog.csdn.net/byxdaz/archive/2010/04/11/5473557.aspx当前各种主流
数据库
有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, M
数据库
编程总结
当前各种主流
数据库
有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。
数据库
编程是对
数据库
的创建、读写等一列的操作。
数据库
编程分为
数据库
客户端编程与
数据库
服务器端编程。
数据库
客户端编程主要使
数据库
表结构设计
1. 原始单据与实体之间的关系ITPUB个人空间~Y2~/?Umgf
可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对
QU/z.l$R0sz0 应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实ITPUB个人空间S)uSZ&D
体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计
@.hX@#b
数据库
4,012
社区成员
39,817
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章