很急:怎样在DELPHI+ADO中用代码判断一个ACCESS数据库是否存在(40分)

  • 主题发起人 主题发起人 sweetychild
  • 开始时间 开始时间
S

sweetychild

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在DELPHI+ADO中用代码判断一个ACCESS数据库是否存在一个名为UU(UU1 STRING,UU2 CHAR[2],UU3 INTEGER)的表,若不存在
用代码创建她呀?
怎样在DELPHI+ADO中用代码判断一个SQL数据库是否存在一个名为UU(UU1 STRING,UU2 CHAR[2],UU3 INTEGER)的表,若不存在
用代码创建她呀?
 
OpenSchema虽然是个标准的办法,可惜太麻烦
可以用 TADOTable 打开这个表,打开的时候用下面的办法
try
打开
except
创建
再次打开
end;

 
用一个try except行不行?
try
adoquery.sql.add('select uu1, uu2, uu3 from uu');
adoquery.open;
except
// 不错在。:D
end;
 
不过我用的是ADODATASET ADOCONNECTION ADODATASOURCE也,有没有SQL语句可以实现这些功能
让我可以用ADODATACONNECTION。EXECUTE(SQL)来实现他呢?
 
假設你的連接為ADOCONNECTION
if ADOCONNECTION.GetTableNames.IndexOf('UU')=-1
THEN 創建
else
打開
 
用try判断是不是有错误,如果出现错误则创建表uu
try
query1.sql.add('select * from uu');
open;
except
query1.sql.clear;
query1.sql.add('create table uu ...........');
execsql;
end;
 
那就这样:
try
ADODATACONNECTION。EXECUTE('create table .......')
except
end;
意思是不管3721都执行create table,如果原来表已经存在,那命令失败,但是因为有try..except,
所以不会显示错误信息
如果原来表不存在,那么create table也执行成功啦
 
用类似shiny的方法先判断表是否存在。
如果存在,可以用ADOX判断字段属性是否正确。
 
确定后提示’测试连接成功但是提供者无法接受其中的一些设置‘程序运行时运行到执行ADPDATACONNECTION。EXECUTE(SQL)
时就报错说RDS句柄不对不执行,这是为什么呀?
在设置连接时我将数据源设置为*。MDB,位置就在数据库所在路径下,谢谢大家
 
procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStrings;
begin
SL := TStringList.Create;
try
ADOConnection1.GetTableNames(SL, False);
if SL.IndexOf('UU')=-1 then
ShowMessage('Table UU not exists,:)');
finally
SL.Free;
end;
end;

创建很简单,自己搞定吧。
 
access数据库也是文件啊!
直接察看该文件在不在不就行了吗?
 
to 润五月
mdb文件当然是在的,人家想知道里面的表呀
 
谢谢大家,结帐了:)
 
多人接受答案了。
 
后退
顶部