adoquery3.Close;
        adoquery3.SQL.Clear;
        adoquery3.SQL.add('if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[预收表]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 0)      ');  // 没有做新建,有就不管
        adoquery3.SQL.add('CREATE TABLE [dbo].[预收表] (                                  ');
        adoquery3.SQL.add(' [ID] [bigint] IDENTITY (1, 1) NOT NULL ,                  ');
        adoquery3.SQL.add(' [客户] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,   ');
        adoquery3.SQL.add(' [所在地] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
        adoquery3.SQL.add(' [类型] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    ');
        adoquery3.SQL.add(' [支票号] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
        adoquery3.SQL.add(' [金额] [money] NULL ,                                      ');
        adoquery3.SQL.add(' [减预收] [money] NULL ,                                    ');
        adoquery3.SQL.add(' [状态] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    ');
        adoquery3.SQL.add(' [预收日期] [datetime] NULL ,                               ');
        adoquery3.SQL.add(' [有效] [bit] NULL ,                                         ');
        adoquery3.SQL.add(' [操作人] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
        adoquery3.SQL.add(' [备注] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL     ');
        adoquery3.SQL.add(') ON [PRIMARY]                                                  ');
        adoquery3.ExecSQL;这个为什么不执行啊.

解决方案 »

  1.   


            adoquery3.Close;
            adoquery3.SQL.Clear;
            adoquery3.SQL.add('if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[预收表]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 0)      ');  // 没有做新建,有就不管
            adoquery3.SQL.add('CREATE TABLE [dbo].[预收表] (                                  ');
            adoquery3.SQL.add('    [ID] [bigint] IDENTITY (1, 1) NOT NULL ,                  ');
            adoquery3.SQL.add('    [客户] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,   ');
            adoquery3.SQL.add('    [所在地] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
            adoquery3.SQL.add('    [类型] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    ');
            adoquery3.SQL.add('    [支票号] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
            adoquery3.SQL.add('    [金额] [money] NULL ,                                      ');
            adoquery3.SQL.add('    [减预收] [money] NULL ,                                    ');
            adoquery3.SQL.add('    [状态] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    ');
            adoquery3.SQL.add('    [预收日期] [datetime] NULL ,                               ');
            adoquery3.SQL.add('    [有效] [bit] NULL ,                                         ');
            adoquery3.SQL.add('    [操作人] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  ');
            adoquery3.SQL.add('    [备注] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL     ');
            adoquery3.SQL.add(') ON [PRIMARY]                                                  ');
            //adoquery3.ExecSQL;
           memo1.text:=adoquery3.sql.text;//把memo1中的内容在sql server中运行一下,可否通过?

      

  2.   

    没有理由不执行的.如果SQL语句是对的话,就不会有问题
      

  3.   

    var
      sql : String;
     
      sql := 你上面的SQL语句  try
       AdoQuery3.sql.text := sql;
       adoQuery3.ExecSql;
      except
        raise;
      end;
      

  4.   


    测试并通过,代码以下(已经分解,好等你一看便明白)procedure TForm1.Button2Click(Sender: TObject);
    var
    str:string;
    str2:string;
    str3:string;
    begin
     str:='if not exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[预收表]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)';
     str2:= 'CREATE TABLE [dbo].[预收表] (                                  '+
            '    [ID] [bigint] IDENTITY (1, 1) NOT NULL ,                  '+
            '    [客户] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,   '+
            '    [所在地] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  '+
            '    [类型] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    '+
            '    [支票号] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  '+
            '    [金额] [money] NULL ,                                      '+
            '    [减预收] [money] NULL ,                                    '+
            '    [状态] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    '+
            '    [预收日期] [datetime] NULL ,                               '+
            '    [有效] [bit] NULL ,                                         '+
            '    [操作人] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,  '+
            '    [备注] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL     '+
            ') ON [PRIMARY]                                                  '; str3:=str+'  exec('+QuotedStr(str2)+')'; with ADOQuery3 do begin
       Close;
       SQL.Text:=str3;
       ExecSQL;
     end;
    end;
      

  5.   

    showmessage(adoquery3.SQL.text) 看看你拼的SQL語句是否正確?