BDE数据库字段添加的问题

oushengfen 2015-05-04 07:16:41
数据是Delphi以前自带的db数据库,如何判断表中的字段是否存在,不存则添加.
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-05-07
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var SQL,fName:string;
    MyList :TStringList;
    I:integer;
    T:boolean;
begin
  T:=False;
  fName:='ASD';
  MyList:=TStringList.Create;
  SQL:='select * From 表名 where ID=''1234567890''';
  DataModule1.ClientDataSet1.Active:=False;
  DataModule1.ClientDataSet1.DataRequest(SQL);
  DataModule1.ClientDataSet1.Active:=True;
  DataModule1.ClientDataSet1.GetFieldNames(MyList);
  DataModule1.ClientDataSet1.Active:=False;
  for i:=0 to Mylist.Count-1 do
    if fName=MyList.Strings[i] then T:=True;
  if T then ShowMessage('有该字段!')
       else ShowMessage('无该字段!');
  MyList.Free;
end;
上述代码是自己使用的代码,仅供参考。 另外通过SQL语句可以判断:
判断[TestDB]数据中[TestTb]表中是否存在[Name]字段

if exists(select * from TestDB..syscolumns where id=object_id('TestDB.dbo.TestTb') and name='Name')
    print '字段Name存在'
else
    print '字段Name不存在'
lyhoo163 2015-05-07
  • 打赏
  • 举报
回复
DB的表动态增加字段的办法: 1、通过TTable
Table1.FieldDefs.add('number',ftinteger,0);
Table1.Refresh; 
2、通过TQuery
query1.close;
query1.sql.clear;
query1.sql.add('ADD "Customer.db"."ID" CHAR(3)');
query1.excsql;
前题是表要关联到控件上。
oushengfen 2015-05-07
  • 打赏
  • 举报
回复
谢谢! 还可以这样用啊,一直不知道呢。
天行归来 2015-05-04
  • 打赏
  • 举报
回复
if dataSet.FieldByName('yourFieldName')<>nil then exit; //判断字段是否存在 //添加字段脚本 //执行脚本

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧