就是要遍历一个列的每个记录,该怎么做?
很弱的问题,不过一直没查到,郁闷.......
很弱的问题,不过一直没查到,郁闷.......
解决方案 »
- 如何实现enter(回车键)跟tab键的效果一样,在回车时自动使Taborder比自己大的物件获得焦点
- 关于delphi中对qq的操作
- 运行状态拖动控件的问题
- 数据比较问题
- 软件开源,征求意见
- 如果在远程数据模块的OnCreate事件中写了访问主窗体的代码(比如MainForm.Edit1.Text := 'test!'),当客户端连接到应用程序服务器时,会
- Database
- access数据库里有许多表,我要如何连接显示并查看?矮子兵
- 为什么在Text控件的KeyPress事件中检测不到方向键的键码?
- 算法问题,只讲编程技术的人不要进来。(主要是你可能不懂)
- 关于ocx
- 请教:怎么用TIdFTP组件,实现断点续传功能?
while (true)
{
// ADODataSet2->FieldValues["列名"]; do something
if (ADODataSet2->Eof != true)
ADODataSet2->Next();
else
break;
}
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
I: Integer;
begin
Screen.Cursor := crHourGlass;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end; try
XLApp := CreateOleObject(‘Excel.Application‘);
except
Screen.Cursor := crDefault;
Exit;
end; XLApp.WorkBooks.Add;
XLApp.SheetsInNewWorkbook := High(Args) + 1; for I := Low(Args) to High(Args) do
begin
XLApp.WorkBooks[1].WorkSheets[I+1].Name := TDBGrid(Args[I].VObject).Name;
Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args[I].VObject).Name]; if not TDBGrid(Args[I].VObject).DataSource.DataSet.Active then
begin
Screen.Cursor := crDefault;
Exit;
end; TDBGrid(Args[I].VObject).DataSource.DataSet.first;
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[1, iCount + 1] := TDBGrid(Args[I].VObject).Columns.Items[iCount].Title.Caption; jCount := 1;
while not TDBGrid(Args[I].VObject).DataSource.DataSet.Eof do
begin
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[jCount + 1, iCount + 1] := TDBGrid(Args[I].VObject).Columns.Items[iCount].Field.AsString; Inc(jCount);
TDBGrid(Args[I].VObject).DataSource.DataSet.Next;
end;
end; XlApp.Visible := True;
Screen.Cursor := crDefault;
end;
遍历DBGrid其实就是遍历TDataSet而这其实就是表
对于记录可以训话实现,每个记录的字段数量和名称也是可以获得的,
两层循环可以搞定
编历表的代码
if not 表名.active then 表名.open;
表名.First
while not 表名.eof do
begin
//操作代码部分
表名.next;
end;