谢了!

解决方案 »

  1.   

    在SQL SERVER2000中,我想把另一个表中的内容作为现在代码创建表中的字段,怎么实现?
      

  2.   

    你在窗体上加入两个Adoquery控件,想法主要是动态生成SQL语句,现将表中的内容查出,然后将字段值动态组合成Create Table SQL语句。下面例子只是示范具体还要根据实际情况
    代码如下
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids;type
      TForm1 = class(TForm)
        Button1: TButton;
        ADOQuery1: TADOQuery;
        ADOQuery2: TADOQuery;
        ADOConnection1: TADOConnection;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        DBGrid2: TDBGrid;
        DataSource2: TDataSource;
        ADOQuery3: TADOQuery;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
        FSQL:string;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      with AdoQuery1 do
      begin
        try
          close;
          sql.clear;
          sql.Add('select * from user_tab');user_tab表名
          Open;
        except
          close;
        end;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      with AdoQuery1 do
      begin
        if not isempty then
        begin
          FSQL:='Create table '+FieldByname('Table_name').AsString+' ('+
                FieldByName('字段名').AsString+' numeric(12))';
        end;
      end;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      with AdoQuery2 do
      begin
        try
          close;
          sql.Clear;
          sql.Add(FSQL);
          execSQL;
        except
          ShowMessage('Error!!');
        end;
      end;
    end;end.