100分求助数据库方面的问题 1,CRecordSet好像可以指定多个表吧!2,默认情况下CRecordSet类的成员变量名就是"m_"+字段名3,在两个对话框中分别处理你要添加数据的表对应的CRecordSet不就行了吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 I only can up you with the word! to zy_9922: 1.我是这样用的,但总是提示记录集是只读的, 2,可能老兄误解了,我是想获取字段名在对话框中输出 3但记录集指针不是下移了吗 1,看你有几个查询,如果是多个,则要创建多个recordset对象。 2,m_recordset.GetODBCFieldInfo( i, (CODBCFieldInfo fieldinfo ));fieldinfo.m_strName3,可以先将两个对话框的内容存在变量里,然后一起存入数据库。或者可以将记录集指针上移。 多个表的CRecordSet好象就是只读的,可能是不知道你要修改哪个表你应该知道你的表里的字段名吧,直接输出到对话框不就行了吗?记录集指针下移,你再给他移回去不就行了吗?//要不你就别用这个类了,我好象见过别人写的一些类,功能不错,忘了在什么地方,你可以查查! 建议用DAO方式,CDaoDataBase类和CDaoRecordSet类就可以搞定你的问题:com初始化: CoInitialize(NULL);打开数据库 CDaoDatabase m_GDB; m_GDB.Open("TestDB.mdb");打开记录集: CString strSQL; strSQL = "SELECT * FROM table1 "; CDaoRecordset* ThisRecordSet = new CDaoRecordset(&m_GDB); ThisRecordSet->Open(AFX_DAO_USE_DEFAULT_TYPE, strSQL);接下来就对每个字段根据类型转化取出值就可以了。执行SQL语句: CString strSQL; strSQL.Format("INSERT INTO table1 (id,var1,var2,var3,var4,dt) values (%i,'%i','%i','%i','%i',CDATE('%s'))",i,i,i,i,i,strTime); m_GDB.Execute(strSQL);你说的两个对话框对一个表操作,其实没有什么区别,只要你将SQL语句组织好了随便你怎么玩。 1、我以前就是为每一个表声明一个CRecordSet派生类(比如为CDBUser类)2、打开表后,用你声明的这各类的变量(CDBUser m_user)就可以引用字段,取出字段值m_user.m_username(假设username为CDBUser表中的字段)3、没太明白你的意思,是指写一条记录吗?如果是不同记录,就分别写入呗,如果是同一条记录,可以先写一个对话框的内容,然后再写另一个对话框的内容,Update一下数据库就可以了。 1.用ADO好了,RECORDSET可以描述所有的记录集。2.RECORDSET中有个FIELDS 的属性可以得到字段名。3.我想你没弄明白 你想问什么,楼上的说的对。 为每一个表声明一个CRecordSet是有毛病的,导致表不可修改告诉你一种方法,是我经过一个多月的时间搞出来的,如果你的数据原有多个表,你又想为每一个表声明一个CRecordSet,可以这样做:1.建一个工程,引入一个对应第一个表的CRecordSet派生类。2.再见一个工程,引入第二个表对应的CRecordSet派生类。3.把第二个表的派生类的.h和.cpp文件加到第一个工程4.这样在第一个工程中就可以修改第二个表了,而且两个表都有各自对应的类(我曾经比较过: 在一个工程创建时建的CRecordSet派生类的.h文件比使New Class建的.h文件多4K) 用ADO好了简单而且速度快 快速的模糊算法???? 关于TCP不丢包的疑问? 一个关于父窗体和子窗体的参数传递问题?(试了很久,还是想不通) 请问高手,想指定UDP客户端的数据发送端口,问是否能实现,怎样实现? PdhEnumObjectItems 函数一个很奇怪的问题. SQL SERVER如何进行备份???? 关于 error LNK2001 的问题 远程点播系统用那个工具开发比较好 VC里面有没有这样的一个控件?在线等待......... 那位可以提供类似CFileDialog的但可以查看网上邻居的source code,我懒得写! 帮忙看看socket怎么运行 请问如何读写mp3文件的IDv1和IDv2标签?
1.我是这样用的,但总是提示记录集是只读的, 2,可能老兄误解了,我是想获取字段名在对话框中输出 3但记录集指针不是下移了吗
2,m_recordset.GetODBCFieldInfo( i, (CODBCFieldInfo fieldinfo ));fieldinfo.m_strName
3,可以先将两个对话框的内容存在变量里,然后一起存入数据库。或者可以将记录集指针上移。
忘了在什么地方,你可以查查!
com初始化:
CoInitialize(NULL);
打开数据库
CDaoDatabase m_GDB;
m_GDB.Open("TestDB.mdb");
打开记录集:
CString strSQL;
strSQL = "SELECT * FROM table1 ";
CDaoRecordset* ThisRecordSet = new CDaoRecordset(&m_GDB);
ThisRecordSet->Open(AFX_DAO_USE_DEFAULT_TYPE, strSQL);接下来就对每个字段根据类型转化取出值就可以了。执行SQL语句:
CString strSQL;
strSQL.Format("INSERT INTO table1 (id,var1,var2,var3,var4,dt) values (%i,'%i','%i','%i','%i',CDATE('%s'))",i,i,i,i,i,strTime);
m_GDB.Execute(strSQL);你说的两个对话框对一个表操作,其实没有什么区别,只要你将SQL语句组织好了随便你怎么玩。
2、打开表后,用你声明的这各类的变量(CDBUser m_user)就可以引用字段,取出字段值m_user.m_username(假设username为CDBUser表中的字段)
3、没太明白你的意思,是指写一条记录吗?如果是不同记录,就分别写入呗,如果是同一条记录,可以先写一个对话框的内容,然后再写另一个对话框的内容,Update一下数据库就可以了。
2.RECORDSET中有个FIELDS 的属性可以得到字段名。
3.我想你没弄明白 你想问什么,楼上的说的对。
告诉你一种方法,是我经过一个多月的时间搞出来的,
如果你的数据原有多个表,你又想为每一个表声明一个CRecordSet,可以这样做:
1.建一个工程,引入一个对应第一个表的CRecordSet派生类。
2.再见一个工程,引入第二个表对应的CRecordSet派生类。
3.把第二个表的派生类的.h和.cpp文件加到第一个工程
4.这样在第一个工程中就可以修改第二个表了,而且两个表都有各自对应的类
(我曾经比较过:
在一个工程创建时建的CRecordSet派生类的.h文件比使New Class建的.h文件多4K)
简单而且速度快