如何判断数据库某个表中是否有某个列存在?(42分)

  • 主题发起人 主题发起人 ynduanlian
  • 开始时间 开始时间
Y

ynduanlian

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是ACCESS,以前的表Table中包括三个字段,现在需要增加一个字段,但由于以前的用户可能表中有数据,所以只能更换EXE文件,想通过启动新EXE程序时Alter table table1 add ……语句来为旧数据库用户新增一列,但如果用户已经是新的表结构就不执行此语句,这个要怎么才能判断用户是旧的表结构还是新的表结构?
 
方法多了去了
1.任意一个dataset 去open 一个table,只要top 1 row ,查他的 fields
2.try except 执行 alter table ,管他有没有
3.try select fielda from table 看 fieldcount > 0 except 里面去alter
 
ADOQuery.close;
ADOQuery.sql.text:='select top 0 from 表名'
ADOQuery.open;

for i:=0 to ADOQuery.Fields.Count-1 do
begin
if ADOQuery.Fields.FieldName=需要判断的字段名称 then
begin
showmessage('字段已存在');
break
end
else
begin
if i=ADOQuery.Fields.Count-1 then
showmessage('字段不存在');
end
end;
 
打开时
FindField(FieldName)=nil
SQL
if exists (select * from syscolumns where id = object_id('TableName') and name = 'FieldName')
 
多人接受答案了。
 
后退
顶部