Delphi操作paradox表或者VFP表时,怎么实现VFP中的select * from table1 into cursor temptable 的功能。

  • 主题发起人 主题发起人 jdelphi
  • 开始时间 开始时间
J

jdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi操作paradox表或者VFP表时,怎么实现VFP中的select * from table1 into cursor temptable 的功能。(50分)<br />只能创建后删除吗?且如果字段非常多,需要建立太多的字段了,麻烦。
 
用query
Query1.Sql.add('select * from table1 into cursor temptable')
Query1.excute
然后删除该表
 
select在Delphi的数据表中没有这种用法
 
DELPHI 中没有直接的方法实现你说的要求, 但是你可以自己创建一个临时表
然后在将数据添到临时表中,以后的操作就如同对TDataSet操作是一样的。

代码如下:

uses DB, DBClient

function CreateDataSet(const AFieldDefs:TFieldDefs) : TClientDataSet;
var
TempTable:TClientDataSet;
begin
TempTable := nil;
Result := nil;
if AFieldDefs &lt;&gt; nil then
begin
try
TempTable := TClientDataSet.Create(nil);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Result := TempTable;
Except
if TempTable &lt;&gt; nil then
TempTable.Free;
Result:=nil;
raise;
end
end
end;

procedure TForm1.Button1OnClick(Sender: TObject);
var
aDataSet: TDataSet;
begin
aDataSet := TDataSet.Create(nil);
try
with aDataSet.FieldDefs do
begin
Add('你想要的字段名', 你想要字段类型, 字段数据长度);
:
:
end
DataSource1.DataSet := CreateDataSet(aDataSet);
finally
aDataSet.Free;
end;
end;

然后在用Query 或 Table 为 DataSource1.DataSet.Field 赋值
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部