procedure Tfrmaddrubber.Button1Click(Sender: TObject);
var a: integer;
i: string;
begin
dmdinge.aqde.SQL.Clear;
dmdinge.aqde.sql.add('SELECT count(*) FROM saiyang..sysobjects WHERE NAME = '''+trim(edit1.text)+'''');
dmdinge.aqde.ExecSQL;
a:=dmdinge.aqde.Fields.Count;
i:=edit1.Text;
if a=0 then
begin
dmdinge.aqde.SQL.clear;
dmdinge.aqde.sql.add('use saiyang');
dmdinge.aqde.sql.Add('create table i (材料牌號 char(20),PHR float)');
dmdinge.aqde.Parameters.ParamByName('i').Value:=edit1.Text;
dmdinge.aqde.open;
frmaddrubber2.Show;
frmaddrubber2.Edit1.Text:=frmaddrubber.Edit1.Text;
frmaddrubber2.Edit1.Enabled:=false;
end
else
messagedlg('庫里已經有這個橡膠牌號了!',mterror,[mbok],0);
end;
我想做一個資料庫,先查庫里有沒有這張表,如果沒有,就新建一張表,試了很多,沒有辦法,瞎寫了一段代碼,大神們幫我看看要改哪里。
uj5u.com熱心網友回復:
先檢索資料庫中是否有表,不是查詢表中的資料,這樣會報錯的,沒有就建立新表。uj5u.com熱心網友回復:
select count(*) from sysobjects where id = object_id('DBO.表名')0----不存在
1----存在
uj5u.com熱心網友回復:
你們直接幫我把代碼改了吧,沒太明白。uj5u.com熱心網友回復:
借花獻佛:
procedure TForm1.Button2Click(Sender: TObject);
var
a: integer;
i: string;
begin
dmdinge.aqde.SQL.Clear;
dmdinge.aqde.sql.add('select count(*) from sysobjects where id = object_id('''+trim(edit1.text)+''')';
dmdinge.aqde.open;
a:=dmdinge.aqde.RecordCount;
i:=edit1.Text;
if a=0 then
begin
dmdinge.aqde.SQL.clear;
dmdinge.aqde.sql.add('use saiyang');
dmdinge.aqde.sql.Add('CREATE TABLE '+i+'(材料牌號 char(20),PHR float)');
dmdinge.aqde.ExecSQL;
frmaddrubber2.Show;
frmaddrubber2.Edit1.Text:=frmaddrubber.Edit1.Text;
frmaddrubber2.Edit1.Enabled:=false;
end
else
//messagedlg('庫里已經有這個橡膠牌號了!',mterror,[mbok],0);
messagedlg(PChar('庫里已經有這個'+i+'表了!'),mterror,[mbok],0);
end;
除錯有問題,自己改改吧。
uj5u.com熱心網友回復:
還是不行啊。建表建不起來啊。
uj5u.com熱心網友回復:
MSSQL?試試下面的代碼:
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('IF NOT EXISTS(');
SQL.Add(' SELECT 1 FROM [dbo].[sysobjects]');
SQL.Add(' WHERE [id]=OBJECT_ID(N''Table1'') AND [type]=N''U''');
SQL.Add(') CREATE TABLE [dbo].[Table1](');
SQL.Add(' [Id] [bigint] IDENTITY(1,1) NOT NULL,');
SQL.Add(' [Field1] [int] NOT NULL,');
SQL.Add(' [Field2] [varchar](8) NULL,');
SQL.Add(' PRIMARY KEY([Id] ASC)');
SQL.Add(')');
ExecSQL;
end;
uj5u.com熱心網友回復:
SQL2008 R2測驗正常....
uj5u.com熱心網友回復:
問一聲,你的aqde是通過什么控制元件,連接資料庫?資料庫的型別,控制元件直接連接,還是三層連接。資料庫驅動是什么方式?
不同的方式,創建表不一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90341.html
標籤:數據庫相關
上一篇:【delphi開發】—論業余時間
