关于Adoquery的简单问题(50分)

  • 主题发起人 主题发起人 huamulan
  • 开始时间 开始时间
H

huamulan

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎么将Adoquery查询到的结果保存成桌面数据库db和DbaseIV,(.dbf) 或者是excel格式的文件啊?
 
利用Dbgrideh的导出功能,还可以选择路径
简单修改,就可以导出为Excel等格式
 
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,row,column:integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('Excel 没有安装',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.Caption:='Excel Not Istalled!';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
query1.Open;
row:=1;
column:=1;
for j:= 0 to Query1.FieldCount-1 do
begin
ExcelWorksheet1.Cells.Item[row,column]:=query1.fields[j].FieldName;
column:=column+1;
end;
row:=2;
While query1.Eof do
begin
column:=1;
for i:=1 to query1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=query1.fields[i-1].AsString;
column:=column+1;
end;
query1.Next;
row:=row+1;
end;
query1.first;
ExcelWorkbook1.Disconnect;
ExcelWorksheet1.Disconnect;
ExcelApplication1.DisConnect;
end;
 
天啊,您这是打开excel,然后把数据一行行的传到excel中吧。
我只是想把adoquery的数据保存成excel表就行啊。能不能简单一点。最好用一两条命令就搞定了。
 
推荐Ehlib系列组件中
Dbgrideh
 
呵呵,那就用CXGrid吧,把数据查询出来后用以下几行代码搞定了
If SaveDialog1.Execute then
begin
iFileName := ChangeFileExt(SaveDialog1.FileName,'.xls');
ExportGrid4ToExcel(iFileName,cxGridTank);
end;

记得单元要引用cxExportGrid4link
 
随便选一个吧
 
最笨的方法:
Query.First;
while not Query.Eof do
begin
//申明EXCEL变量,然后将信息保存到EXCEL的CELL中
Query.next;
end;
 
很easy嘛
select * into aaa in 'c:/dbf' 'dBase IV;' from 表a
这样就能把query查询的表a的数据存到c:/dbf/aaa.dbf中了
存成其余的格式的方法类似
 
procedure TRBCXFORM.Button2Click(Sender: TObject);
//功能:将DBGRIDEH1中显示的数据全部导出到EXECEL表
//在对话框组件里找到SaveDialog,加入一个。
//设置:过滤器:Excel文档[*.Xls] *.XLS
//首先要预定义保存格式:只有els.
//单元引用:Uses DBGridEhImpExp
begin
IF ADOQ1.Eof AND ADOQ1.Bof THEN
MessageBox(Handle, '数据为空,操作不能完成,请检查错误!', '系统提示', MB_ICONEXCLAMATION)
ELSE BEGIN
SaveDialog1.DefaultExt:= 'XLS';
IF SaveDialog1.Execute THEN
BEGIN
SaveDBGridEhToExportFile(TDBGridEhExportAsText,DBGridEh1,SaveDialog1.FileName,True);//完全导出
MessageBox(Handle, '数据已经成功导出!', '系统提示', MB_ICONASTERISK);
END;
END;
end;
///////////////////////////////////////////////////////////////////////////////////////////////////////数据导出
//判断是否为空也可以用ISEMPTY
 
我不想用任何另外安装的控件啊!太麻烦,难道,Adoquery就没有一个简单的如save命令把当前过滤的数据存储成文件吗?
 
存为xml格式的不行吗?
 
请问还有没有办法呢????高手请告诉我啊。
 
没有其他的方法了,你就用用其他空间不行吗
 
用Delphi自己带的一个控件TBatchMove这个控件用法如下:
Source 源数据(源)
Dest 你要转化成的表的名字(一定得存在,结构不一定存在)
用Execute方法激活一下就OK了。
该控件可将Source里的数据批量导入任何类型的数据表中,包括 TXT
剩余的自己慢慢搞,祝你好运!
 
接受答案了.
 
后退
顶部