
select * from syscolumns where id in (select id from sysobjects where name = 'Test') and name = 'name' TADOConnection中有一个方法procedure GetFieldNames(const TableName: StringList: TStrings)输入表名,List就获得该表的所有
字段,你可以这样来判断.function FieldExist(const TAbleName : stringconst FieldName : string) : booleanvar List : TStringListbegin List := TStringList.CreateADOConnection1.GetFieldNames(TableName,List)//如果大小写不敏感的话,可以在此设置 List.CaseSensitive := Falseif List.IndexOf(FieldName) >= 0 then result := true else result := falseList.Freeendfunction isfield(fieldname : string) : booleanvar i : integerbegin result := falsefor i := 0 to adoqry.Fields.Count -1 do if adoqry.Fields[i].fieldname = fieldname then begin result := trueexitendend首先用ADOCONNECTION连接上MASTER
数据库后在设置连接属性为TRUE用ADS_PUB(DATASET)测试是否建立数据库以一是FUNCTIONfunction DBExists: Booleanbegin with ads_Pub do begin CloseCommandText := 'SELECT * FROM sysdatabases WHERE name = ''' + FDBName + ''''Openif isEmpty then Result := False else Result := Trueendendfunction CreateSQLServerDB: Boolean//建立数据库FUNCTION begin cmd_Pub.CommandText := 'Create database ' + FDBNametry cmd_Pub.ExecuteResult := Trueexcept Result := Falseendendif Exists (select * from (select sysobjects.name as 表名 ,syscolumns.name as 列名 from sysobjects,syscolumns where sysobjects.id =syscolumns.id) report_zycxj_tjwhere report_zycxj_tj.表名='report_zycxj_tj' and report_zycxj_tj.列名='发卡') print 'Have!'elsebegin print 'No Have!' alter table report_zycxj_tj add 发卡 float default 0.00endselect * from report_zycxj_tj1:用adoconnection连接上数据库 adoconnection.gettablenames(TStringList) if TStringList.indexof('表名')<-1then 表存在!if exists (select * from master..sysdatabases where name='your databasename' ) //判断数据库
是否存在if exists (select * from sysobjects where name='your tablename' ) //判断表是否存在if exists (select object_name(id), * from sysobjects where name='your colename' and object_name(id)='your tablename ) //判断表的字段是否存在 if (select count(*) from syscolumns where name=字段)0 then return '存在'else return '没'if exists(select 字段 from tablename ) then ..... //====================================================//access: fieldexist and tableExist//====================================================field1 要创的的字段则先列举对应table1的所有字段再来判断,有则skip it没有则 add filed--------------------------------------------FieldList:=TStringList.Create //用来保存该表的所有字段 ADOConnection1.GetFieldNames('你的表名',FieldList)FName:='你要增加的字段'isFiledExist:=False//判断中否忆经存在 for i:=0 to FieldList.Count-1 do if FName=FieldList.Strings[i] then begin isFiledExist:=Truebreakendif not isFiledExist then with ADOQuery1 do begin str:='Alter Table 你的表名 Add 你要增加的字段名 MONEY Default 0 'closesql.Clear sql.Add(str)ExecSQLendFieldList.Free //==============================================================//adotable//==============================================================如何检测一个数据表的某个字段是否存在?var
strSql: string
strSql := 'select * from table where 条件';
with ADOQuery1 do
begin
Close
SQL.Clear
SQL.Add(strSql)
Open
end
if ADOQuery1.IsEmpty then
begin
showmessage('数据库中未检索到该记录!')
end
else
begin
showmessage('数据库中已经存在该记录!')
end
【判断数据库是否存在】语法如下:
if exists (select * from sys.databases where name = '数据库名')
--drop database [数据库名]
评论列表(0条)