如果是采用,SQL语句,你可以采用 数据库的功能先逆转生成 C,SQL 记录,然后再采用 insert into b(...) select ..... from C,Access有生成交叉逆转的工具,SQL Server也有相应的语句,你可以参考不同的数据库来处理。也可以采用程序处理阿, 你现遍历,a,然后可以很方便的成b
简单示例。作为字段名注意名字约束,x字段值不能有特殊符号。 procedure TForm1.Button1Click(Sender: TObject); begin with ADOQuery1 do begin Close; Sql.Clear; Sql.Add('select x from a'); Open; if RecordCount>0 then with ADOQuery2 do begin Close; Sql.Clear; Sql.Add('create table b ( '+ADOQuery1.Fields[0].AsString+' varchar(10))'); ShowMessage(Sql.Text); ExecSql; ADOQuery1.Next; while not ADOQuery1.EOF do begin Sql.Clear; Sql.Add('alter table b Add '+ADOQuery1.Fields[0].AsString+' varchar(10)'); ExecSql; ADOQuery1.Next; end; end; end; end;
insert into b(...) select ..... from C,Access有生成交叉逆转的工具,SQL Server也有相应的语句,你可以参考不同的数据库来处理。也可以采用程序处理阿,
你现遍历,a,然后可以很方便的成b
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('select x from a');
Open;
if RecordCount>0 then
with ADOQuery2 do
begin
Close;
Sql.Clear;
Sql.Add('create table b ( '+ADOQuery1.Fields[0].AsString+' varchar(10))');
ShowMessage(Sql.Text);
ExecSql;
ADOQuery1.Next;
while not ADOQuery1.EOF do
begin
Sql.Clear;
Sql.Add('alter table b Add '+ADOQuery1.Fields[0].AsString+' varchar(10)');
ExecSql;
ADOQuery1.Next;
end;
end;
end;
end;