如何将查询出的记录存到一个临时表中?用完再将临时表删除
解决方案 »
- TClientdataset.refreshrecord的問題
- 再散一帖
- 问一个关于combobox的问题
- 数据库异常: Invalid blob length 如何解决?
- 两个DATA数据包比较的问题
- 请问如何用delphi实现鼠标的各种操作
- **************我强烈要求提问::::::::::::::::在DELPHI中没法用TMediaPlayer控件播放dat类型VCD文件???????????
- 关于排课,欢迎探讨。先来的10个人每人十分
- 为何我的这句inttostr(query1.recordcount)不起作用?
- 怪事
- 简单问题,给分很多啊!!
- DATA Control控件怎样连接数据库的?
// 删除
delete #TempTable
函数代码如下:
function CreateTableInMemory(const AFieldDefs:TFieldDefs):
TDataSet;
var TempTable:TClientDataSet;
begin
TempTable:=nil;
Result:=nil;
if AFieldDefs〈〉nil then
begin
try
TempTable:=TClientDataSet.Create(Application);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Result:=(TempTable as TDataSet);
Except
if TempTable〈〉nil then TempTable.Free;
Result:=nil;
raise;
end
end
end;
在程序中按如下方法调用:
procedure TForm1.Button1Click(Sender: TObject);
var ADataSet:TDataSet;
begin
ADataSet:=TDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
Add(′Name′,ftString,30,False);
Add(′Value′,ftInteger,0,False);
end;
with DataSource1 do
begin
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
end;
ADataSet.Free;
end;
这样,临时表就创建完成。
// 删除表不是用Delete
Drop Table #TempTable
一、只取到结果集
在程上添加1个TDatasource, 1个TADODataSet(或其它Dataset)和两个TDBGrid;
比如他们分别是Datasource1,ADODataset1, DBGrid1, DBGrid2.
Datasource1的Dataset属性是ADODataset1, DBGrid1的DataSource属性是Datasource1, 一个表为T_User;
创建临时的Datasource2,ADODataset2.
Datasource2的Dataset属性是ADODataset2, DBGrid2的DataSource属性是Datasource2,
1. 首先查询数据操:
procedure QueryRecord;begin
......
with ADODataset1 do
begin
Active := False;
CommandText := 'Select * from T_User';
Active := True;
end;
.....
end;Assigned结果集:
procudure AssignedResultSet;
begin
with ADODataset2 do
begin
RecordSet := ADODataset1.RecordSet;
end;
end;你可以看到DBGrid2可得到你想的结果集。
比如他们分别是Datasource1,ADODataset1, DBGrid1, DBGrid2.
Datasource1的Dataset属性是ADODataset1, DBGrid1的DataSource属性是Datasource1, 一个表为T_User;
创建临时的Datasource2,ADODataset2.
Datasource2的Dataset属性是ADODataset2, DBGrid2的DataSource属性是Datasource2,
1. 首先查询数据操:
procedure QueryRecord;begin
......
with ADODataset1 do
begin
Active := False;
CommandText := 'Select * from T_User';
Active := True;
end;
.....
end;Assigned结果集:
声明Public的变量:
ADODataset2: TADODataSet;
DataSource2: TDataSource;procudure AssignedResultSet;begin
Try
AdoDataSet2 := TADODataSet.Create(nil);
DataSource2 := TDataSource.Create(nil);
DataSource2.DataSet := AdoDataSet2 ;
DBGrid2.DataSource := DataSource2;
with ADODataset2 do
begin
Connection := ADODataset1.Connection;
RecordSet := ADODataset1.RecordSet;
end;
except
DataSource2.Free;
ADODataset2.Free;
end;
end;然后在你用完时的代码上加:
DataSource2.Free;
ADODataset2.Free;
你可以看到DBGrid2可得到你想的结果集。
导出不就可以了吗?
select into #语句中可以做计算呀, 好象没什么难的吧