procedure TForm1.Button2Click(Sender: TObject);
varriqi:string;
begin
  with ADOQuery1 do
begin
  Connection:=ADOConnection1;
  Close;
  biaoname:=trim(combobox3.text)+trim(combobox4.text);
  riqi:=formatdatetime('ddmmyy',Date);
  biaoname:=biaoname+riqi;
  try  SQL.Clear;
  //SQL.Add('DROP TABLE biaoname');
  SQL.Add('CREATE TABLE '+biaoname);
  SQL.Add('(teachers  varchar(8), ');
  SQL.Add('tiwenren  varchar(8),');
  SQL.Add('question    varchar(200),');
  SQL.Add('IP   varchar(15),');
  SQL.Add('answer   varchar(200)');
  SQL.Add(')');
  ExecSQL;
  except
  end;
end;我用他建立了个表,可是如果程序退出后,SQL2000里还有这个表,就提示已经存在了,请问如何用TRY语句或其他方法来实现如果表建立好了,从新进程序时(就自动这样建立好表了)只要该表存在,就不执行建表操作的?!我用TRY语句没有调试成功,请各位帮我。

解决方案 »

  1.   

    还有个问题就是用DBGRID显示该表,因为该表的名字不固定,请问如何用代码连接该表?
    让表内容在DBGRID里面显示出来?在线等待。
      

  2.   

    你可以再用TRY 呀
    判断该表是否存在?
      

  3.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[YourTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[YourTable]
    GOCREATE TABLE [dbo].[YourNewTable] (
    .............
    ) ON [PRIMARY]
    GO
      

  4.   

    你的 TRY 语句我看没什么问题。
    但在调试模式下,仍会有异常消息。运行 EXE 文件不会有异常消息。
    此异常消息可以抑制。方法:
    主菜单 Tools|Debugger Options... Language Exceptions ... Add...添加该异常类型 OK