判断一个数据库是否存在,怎么样用DEIPHI写出来, (225分)

L

linzy98

Unregistered / Unconfirmed
GUEST, unregistred user!
1、为什么我建了一个TABLE,也连上了master数据库,
却在tablename里找不到sysdatabases呢?
2、我是想这么做的,
use master
go
if exists(select name from sysdatabases where upper(name)='databasename')
如果存在显示一个对话框,程序停止运行或退出。
否则运行下面的程序!
这个用DELPHI怎么写呀,我是一个新手,其在是不会,愿贡献出所有的分数,只有225分了!
 
没有人回答吗?拜托各位大侠,抽空看看吧!!!!谢谢谢谢!
 
我以前做过,现在记不得了,要找一下
 
to 唐佐平
谢谢,等着呢!
to 傻的惊动党
那个怎么运行呀?嘻,我不会说话了,我的意思是我用的ADOQUERY怎么加到那里呢?
 
是否有权限问题?
 
adoquery1.SQL.Text:='select * from sysindexes where name=:id';
adoquery1.Parameters.ParamByName('id').Value:='表名';
adoquery1.Open;
if not adoquery1.Eof then
停止运行或退出
else
运行下面的程序


试试吧
 
谢谢大家,我试试,我看 看
 
系统的数据库,怎么会随便让你看见呢,下面是我用的一个判断是否存在数据库的函数
其中,atabaseExistStoredProc 连接的是系统的存储过程 dbo.sp_helpdb
参数为你想判断的数据库名称
function TXtMainForm.DatabaseExist(sDatabaseName:string):boolean;//
begin
result:=false;
DatabaseExistStoredProc.close;
DatabaseExistStoredProc.databasename:='master';//sMasterAliasName;
DatabaseExistStoredProc.open;
DatabaseExistStoredProc.first;
while not DatabaseExistStoredProc.eof do
begin
if lowercase(DatabaseExistStoredProc.fieldbyname('name').asstring)=
lowercase(sDatabaseName) then
begin
result:=true;
break;
end;
DatabaseExistStoredProc.next;
end;
DatabaseExistStoredProc.close;
end;
 
用下面的代码即可确定指定数据库是否存在:
with ADOQuery1 do
begin
Close;
SQL := 'select name from master.dbo.sysdatabases where name = ''需要的数据库名称''';
Open;
If Not IsEmpty then
begin
{要查找到数据库存在}
end
else
begin
{不存在该数据库}
end;
Close;
end;
 
虽然在Object Inspect的Table下拉框中没有列出该表名,但你直接输入,还是能用的
 
判断数据库是可以运行了,我的这个程序主要是想建立一个新的数据库,在建立前先判断
数据库是否存在,不存在则建立。如果存在退出。现在存在的这个问题 是好使了,可是
以前好使的建立这块的程序不行运行了,报错是:“BOF或EOF中有一个是“真”,
或者当前的记录已被删除,所需的操作要求一个当前的记录”
 
是不是要下载ADO的补丁呀
 
顶部