with datamodule2.ADOQuery1 do
            begin
              close;
              sql.Clear;
              sql.Add('Create Table');
              sql.Add(tablename);
              sql.Add('(题号 SMALLINT  PRIMARY KEY,题目 ntext,答案A nvarchar(2),答案B nvarchar(2),答案C nvarchar(2),答案D nvarchar(2),答案E nvarchar(2))');
             try       //异常处理
                execsql;
                showmessage('thank you!');
                 datamodule2.CDSKaoshi.CommandText:='select * from'+' '+tablename;
                 datamodule2.CDSKaoshi.Open;
                 datamodule2.CDSKaoshi.Active:=true;
                 kaoshifrm.Show;
                 loginfrm.Hide;
              Except
                on E:Exception do
                  begin
                    ShowMessage('创建新表失败!');
                  end;
              end;
            end;
       end
我建表总是建不了,为什么呀

解决方案 »

  1.   

    我将你的代码改了如下测试一下,没问题
    是不是你的变量tablename没有赋值?
    procedure TForm1.Button1Click(Sender: TObject);
    var tablename: string;
    begin
    tablename:='test1';
    with ADOQuery1 do
                begin
                  close;
                  sql.Clear;
                  sql.Add('Create Table');
                  sql.Add(tablename);
                  sql.Add('(题号 SMALLINT  PRIMARY KEY,题目 ntext,答案A nvarchar(2),答案B nvarchar(2),答案C nvarchar(2),答案D nvarchar(2),答案E nvarchar(2))');
                 try       //异常处理
                    execsql;
                    showmessage('thank you!');
                     form1.Show;
                  Except
                    on E:Exception do
                      begin
                        ShowMessage('创建新表失败!');
                      end;
                  end;
                end;
    end;
      

  2.   

    //Delphi代码先别管,放到数据库查询编辑器里运行看看能不能执行~~
    //确定语法都是数据库支持的先~~Create Table
    tablename
    (题号 SMALLINT PRIMARY KEY,题目 ntext,答案A nvarchar(2),答案B nvarchar(2),答案C nvarchar(2),答案D nvarchar(2),答案E nvarchar(2))
      

  3.   

    不行呀
    看看这个
    它的错误地方
    rsc.nyist.net/5.bmp
      

  4.   

    我又试了一下
    在ACCESS中能建表
    但是在SQL SERVER中不能建表为什么呀