我往Access数据库里的表里添加纪录,可每次都恢复盖上次的纪录,请问会是什么原因?
我的程序很简单,大概如下:
CMyRecordset* m_pSet(&database);
m_pSet->Open();
m_pSet->AddNew();
m_pSet->m_Name="王军";
...........
m_pSet->Update();
其中,CMyRecordset是用mfc创建的类,基类是CDaoRecordset;
我的程序很简单,大概如下:
CMyRecordset* m_pSet(&database);
m_pSet->Open();
m_pSet->AddNew();
m_pSet->m_Name="王军";
...........
m_pSet->Update();
其中,CMyRecordset是用mfc创建的类,基类是CDaoRecordset;
m_pSet->Refresh();
主 题: 多线程+数据库+网络通讯+性能优化的综合应用大讨论!!!(在线讨论)
作 者: laozhuang (老庄)
等 级:
信 誉 值: 100
所属论坛: Visual C++
问题点数: 20
回复次数: 3
发表时间: 2002-06-26 13:49:12
有这样一个应用:
要从一个oracle 数据库表中取出几万条记录,经过逐笔数据处理后用TCP/IP方式发送给银行的后台,由银行进行进一步的处理最后结果返回。
返回的结果要再次写回刚才的oracle 数据库表中。用的是update(更新记录)的方法。现在的问题是:如何保证能在最快的时间内处理完尽量多的数据比如要求 每秒钟能处理 2笔以上的交易。问题是如果想单笔处理要达到这个要求是无法做到的。我的解决方法:用多线程来处理每一笔交易,即每从数据库中读取一条记录开一个线程,立即再读取下一条记录再接着开一个新线程如此一直到记录取完为止。
关键问题出现了:如果记录数据无比巨大怎么办线程数,要有一定的限制。所以我想用一个线程记数器在记数超过一个数后只能暂停做下一笔的交易,每做完一笔交易线程记数器值减1。如此来保证并发的交易实现交易速度的极大提升。不知各路高手有什么好的建议请不吝赐教!
m_pSet->Refresh()需要吗?
数据没有加在前面.
m_pSet->MoveLast();
m_pSet->AddNew();
m_pSet->m_Name="王军";
...........
m_pSet->Update();
如果要加SQL,该怎么加?能解决这个问题吗?