如何檢查MySql Database Name 存不存在 |
尚未結案
|
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
不知您的 My SQL2000 是不是就是 mysql?
是的話, 試試:
使用 TADOConnection/TADODataset/TDataSource/TDBGrid 元件
設定好 ConnectionString 與其它相關設定後
連上 mysql,
begin TADODataset.Close; TADODataset.CommandText := 'Show Databases'; TADODataset.Active := True; end;然後, 就可以在 TDBGrid 元件看到 mysql 內有哪些 database 不過, 好像要 login 的 user 有權限吧. --- Everything I say is a lie. --<-<-<@ |
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
您好:
您可以用TSession.GetDatabaseNames找出資料庫名稱
MyStringList := TStringList.Create; try Session.GetDatabaseNames(MyStringList); { fill a list box with database names for the user to select from } ListBox1.Items := MyStringList; finally MyStringList.Free; end;~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/02/13 15:27:12 |
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
引言: 您好: 您可以用TSession.GetDatabaseNames找出資料庫名稱MyStrngList Var:??? 可否在詳細一點?謝謝MyStringList := TStringList.Create; try Session.GetDatabaseNames(MyStringList); { fill a list box with database names for the user to select from } ListBox1.Items := MyStringList; finally MyStringList.Free; end;~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/02/13 15:27:12 |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
您好:
是的
var MyStringList : TStringList; begin MyStringList := TStringList.Create; try Session.GetDatabaseNames(MyStringList); { fill a list box with database names for the user to select from } ListBox1.Items := MyStringList; finally MyStringList.Free; end; end;~~應無所住而生其心~~ |
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
請問你是要 delphi 的做法嗎? 還是 sql command 的做法呢?? delphi 的做法我想上面的前輩都寫得很清楚了, sql command 的做法如下:
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'test') print 'database test exists' else begin print 'database test not exists' CREATE DATABASE [test] end |
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
1.Terrychen的 我只測式得BDE,我希望取MySql Database Name
var
MyStringList : TStringList;
begin
MyStringList := TStringList.Create;
try
Session.GetDatabaseNames(MyStringList);
{ fill a list box with database names for the user to select from }
ListBox1.Items := MyStringList;
finally
MyStringList.Free;
end;
end; 2.
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'test')
print 'database test exists'
else
begin
print 'database test not exists'
CREATE DATABASE [test]
end
[/code] 不知為何出現 error message ?
[Error] Unit1.pas(30): Undeclared identifier: 'EXISTS' 3.
另外我程式按第一可以,按按第二次出現 there is already an object named 'testb' in the database ? procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.sql.add('IF EXISTS (SELECT * ');
adoquery1.sql.add('FROM dbo.sysobjects ');
adoquery1.sql.add('WHERE id = object_id(N' '''' '[dbo].[testa]' '''' ') AND OBJECTPROPERTY(id, ');
adoquery1.sql.add('N' '''' 'IsUserTable' '''' ') ');
adoquery1.sql.add(' = 1) DROP TABLE [dbo].[testa] ');
adoquery1.SQL.Add('CREATE TABLE [dbo].[testb] ( ');
adoquery1.SQL.Add(' [sno] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ');
adoquery1.SQL.Add(' ) ON [PRIMARY] ');
adoquery1.ExecSQL;
end; 發表人 - nick167 於 2004/02/13 18:55:10 發表人 - nick167 於 2004/02/13 19:07:47
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
您好:
timhuang兄的做法是在資料庫內做的,你在DELPHI做當然會出錯,改成下列
procedure TForm1.Button1Click(Sender: TObject); Var SQLstr: string; begin SQLstr:='IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N''test'') print ''database test exists''' ' else' ' begin ' ' print ''database test not exists''' ' CREATE DATABASE [test]' ' end'; adoquery1.close; adoquery1.SQL.Clear; adoquery1.sql.add(SQLstr); adoquery1.ExecSQL; end;~~應無所住而生其心~~ |
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |