有关ADOQuery->SaveToFile 的问题

areasd 2002-12-04 11:46:16
我用以下的语句把ADOQuery中的数据导出到硬盘中,我想用一个进度条(CGauge1)显示数据导出的过程, 请问各位该如何做?

if (OpenDialog1->Execute())
DataModule4->ADOQuery1->SaveToFile(OpenDialog1->FileName);
...全文
23 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
真如实观 2002-12-07
  • 打赏
  • 举报
回复
数据集是一次性的,没有顺次,速度太快,只能用superyeoman(自由民)的办法.
Screen->Cursor=crSQLWait;
if(SaveDialog1->Execute())
{
ADODataSet1->SaveToFile(SaveDialog1->FileName,pfXML);
}
Screen->Cursor=crDefault;
MessageBox(NULL,"数据保存成功!","保存信息!",MB_OK);
warton 2002-12-06
  • 打赏
  • 举报
回复
不行的!!
它自动保存,加上进度也是假的!!
chameleon 2002-12-05
  • 打赏
  • 举报
回复
呵呵
superyeoman 2002-12-04
  • 打赏
  • 举报
回复
没有办法啊,就让鼠标变成沙漏好了,然后在状态栏上写行字“saving...please wait.”呵呵
xpyilin 2002-12-04
  • 打赏
  • 举报
回复
你要保存的记录在一个结果集中了,应该不能分开了。如果你非要显示进度的话:
CGauge1->Position = 0;
TStringList *ps = new TStringList();
ADOQuery1->First();
for ( int j=0;j<ADOQuery1->RecordCount;j++ )
{
for ( int i=0;i<ADOQuery1->FieldCount;i++)
{
ps->Add(ADOQuery1->Fields->Fields[i]->AsString);
}
ADOQuery1->Next();
CGauge1->Position++;
}
ps->SaveToFile(OpenDialog1->FileName);//此时才真正保存,但是速度觉快
delete ps;
这样到是可以,但是也是一种假像。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧