procedure TForm1.Button1Click(Sender: TObject);
var
FileNames: string;
begin
Table1.Close;
Table1.FieldDefs.Assign(Query1.FieldDefs);
Table1.TableName := 'NewTable';
Table1.CreateTable; Table1.Open;
Query1.First;
FileNames := StringReplace(Trim(Query1.FieldList.Text), #13#10, ';', [rfReplaceAll]);
while not Query1.Eof do begin
Table1.Append;
Table1[FileNames] := Query1[FileNames];
Table1.Post;
Query1.Next;
end;
end;
var
FileNames: string;
begin
Table1.Close;
Table1.FieldDefs.Assign(Query1.FieldDefs);
Table1.TableName := 'NewTable';
Table1.CreateTable; Table1.Open;
Query1.First;
FileNames := StringReplace(Trim(Query1.FieldList.Text), #13#10, ';', [rfReplaceAll]);
while not Query1.Eof do begin
Table1.Append;
Table1[FileNames] := Query1[FileNames];
Table1.Post;
Query1.Next;
end;
end;
你的程序我试过了,但运行后提示query1中的字段找不到。
我在程序中有一个菜单项可实现改变DBgrid中显示字段的顺序及将DBgrid中的一些字段设置为不可见(将其列的visible设为false).这样DBGRID中显示的内容就同query1中的内容不同了。你有办法只是根据dbgrid中的内容来创建数据表吗?
///////相当于
table1['field1']:=query1['field1'];
table1['field2']:=query1['field2'];
table1['field3']:=query1['field3'];
///////相当于
table1.FieldByName('field1').Value:=query1.FieldByName('field1').Value;
table1.FieldByName('field2').Value:=query1.FieldByName('field2').Value;
table1.FieldByName('field3').Value:=query1.FieldByName('field3').Value;
谢谢你的帮助!但是你的程序和我的要求不大一样,你能实现我的要求吗?
你的程序我试过了,但运行后提示query1中的字段找不到。
我在程序中有一个菜单项可实现改变DBgrid中显示字段的顺序及将DBgrid中的一些字段设置为不可见(将其列的visible设为false).这样DBGRID中显示的内容就同query1中的内容不同了。你有办法只是根据dbgrid中的内容来创建数据表吗?