菜鸟,请教大家,如何将adoDataSet里面的数据清空?

tjkjdx1 2005-04-26 09:44:31
情况如下:
1.首先,我将excel表格导入,命名为tab1
2.其次,将betteradodataset控件与tab1相连,select * from tab1
3.但是,当我再次导入另外的excel的时候,betteradodataset中的fields还是上次哪个excel的字段,
并没有变化,
代码如下:
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjkjdx1 2005-04-27
  • 打赏
  • 举报
回复
up~~~
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
up~~~~~~~~~
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
我在betteradodataset中已经写死:select * from tab1

然后在导入完以后,开始提取数据
with betteradodataset do
begin
close;
open;
end;
可是数据总是不能刷新,不知为什么?我想可能是导入excel那段代码的问题,不太明白,请高手函授~不胜感激
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
这是导入excel的代码:
FDN := OpenDialog1.FileName;
FN := Copy(FDN, LastDelimiter('\', FDN) + 1, Length(FDN) - LastDelimiter('\', FDN));//文件名称
FN := Copy(FN, 1, Length(FN) - 4); //去掉了后缀 .xls
FDP := Copy(FDN, 1, LastDelimiter('\', FDN) - 1);//文件所在路径

Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', True) then
WriteString(dsn, 'Microsoft Excel-Treiber (*.xls)')
else
begin
Application.MessageBox('ODBC 初始化错误', pChar('Information'), mb_ok +
MB_ICONEXCLAMATION);
exit;
end;
CloseKey;
//-----------------------------------------------------------------------
if OpenKey('Software\ODBC\ODBC.INI\' + dsn, True) then
begin
WriteString('Driver', 'C:\WINNT\System32\odbcjt32.dll');
WriteString('DBQ', FDN);
WriteString('DefaultDir', FDP);
WriteInteger('DriverId', 790);
WriteString('FIL', 'excel 8.0');
WriteInteger('ReadOnly', 1);
WriteInteger('SafeTransactions', 0);
WriteString('UID', '');
end
else
begin
Application.MessageBox('ODBC 初始化错误,无法添加数据原名称', pChar('Error'),
mb_ok + MB_ICONEXCLAMATION);
exit;
end;
CloseKey;
//------------------------------------------------------------------------
if OpenKey('Software\ODBC\ODBC.INI\' + dsn + '\Engines\Excel', True) then
begin
WriteString('ImplicitCommitSync', '');
WriteInteger('MaxBufferSize', 8);
WriteInteger('Threads', 3);
WriteString('UserCommitSync', 'Yes');
WriteInteger('FirstRowHasNames', 1);
//Application.MessageBox('用户信息注册成功', pChar('SUCCEED'),
// mb_ok + mb_iconinformation);
end
else
begin
Application.MessageBox('ODBC 初始化错误:无法设置驱动程序信息', pChar('Error'), mb_ok +
MB_ICONEXCLAMATION);
exit;
end;
//------------------------------------------------------------------------
CloseKey;
Free;
end;
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
不胜感激~~
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
差不多,
意思就是:
1.先导入excel1
2.后导入excel2,但是当我getfieldnames的时候,显示的所有字段都是excel1中的字段,并没有excel中的字段
我怀疑是不是注册表没有清干净?
还是什么原因?

busheng
huanyi 2005-04-26
  • 打赏
  • 举报
回复
你是不是说第一次导入没问题,第二次导入后还有第一次的数据?

如果是这样,试试在导入第二次时用下面代码
with betteradodataset do
begin
close;
SQL.Clear;
SQL.Text := 'select top 0 * from tabl';
open;
end;

如果还是不行,你就要自己写代码控制了。
tjkjdx1 2005-04-26
  • 打赏
  • 举报
回复
up~~~~

thanks
surpassable 2005-04-26
  • 打赏
  • 举报
回复
帮你顶~~~~~~~

2,497

社区成员

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

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