请给出错误提示

请问各位高手,我想控制错误提示,我做一个小程序实现的功能是指定数据库下的指定表存在就正常,如果指定数据库下的指定数据表不存在就给出错误提示此表不存在,而我做的是给出系统的提示错误信息,不知道我的代码错在哪里,请指教
try
with adoquery1 do

begin
close;
sql.clear;
sql.add('if exists(select * from sysobjects where name=''t_bus'' And xtype=''u'')');
sql.add('select * from t_bus');
open;
showmessage('此表存在');
end;
except
showmessage('此表不存在');
如何改正,
[500 byte] By [dong12] at [2008-2-13]
# 1
except
on e:exception do
showmessage(e.message);
end;
英文的错误提示!
haoqingqlm-木头 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 2
我改了改,看行不?

procedure TForm1.Button1Click(Sender: TObject);
begin
try
with adoquery1 do

begin
close;
sql.clear;
sql.add('select * from sysobjects where name=''t_bus'' And xtype=''u''');
open;
First;
if not eof then
showmessage('此表存在')
else
showmessage('此表不存在');
end;
except
showmessage('查询出错!');
end;
end;
# 3
...
sql.add('select * from sysobjects where name=''t_bus'' And xtype=''u''');
open;
if adoquery1.recordcount>0 then
showmessage('此表存在')
else
showmessage('此表不存在');
还是用
adoconnection1.GetTableNames(combobox1.items,false);
判断一下

ssl2000-大宋 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 4
如果表不存在,你用Open会出现异常,后面的语句就无法执行,也就不能执行你的if...else语句,这样写的可以显示所有的异常,不用在调试环境下看。
Try
open;
except
on e:exception do
showmessage(e.message);
end;
haoqingqlm-木头 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 5
我以前见过SQL执行错误异常的编码及英文信息对照表,你可以找一下有关资料,做成一张编码-中文错误信息对照表,这对你数据库编程很有用处。
haoqingqlm-木头 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 6
小虫的方法比较可行,quety.sql中好像不能使用transact-SQL语句,如果想简单一点:
Try
open;
except
execsql;
end;
就好了。
lyyrw-咋暖还寒 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...
# 7
如果我是动态输入数据库名称,不是固定的数据库,我在窗体放入一个EDIT控件,此控件用于输入数据库名称的,这样就只能运行一次,我在上面加入如下代码,不知错在哪里
adoquery1.connectionstring:='';
adoquery1.connectionstring:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog='''+edit1.text+''';Data Source=WWW-A6X0D1T7LH2';将如何改正,请各位高手指教

dong12 at 2007-10-22 > top of Msdn China Tech,Delphi,VCL组件开发及应用...