BDE数据库字段添加的有关问题
BDE数据库字段添加的问题
数据是Delphi以前自带的db数据库,如何判断表中的字段是否存在,不存则添加.
------解决思路----------------------
if dataSet.FieldByName('yourFieldName')<>nil then exit; //判断字段是否存在
//添加字段脚本
//执行脚本
------解决思路----------------------
DB的表动态增加字段的办法:
1、通过TTable
2、通过TQuery
前题是表要关联到控件上。
------解决思路----------------------
上述代码是自己使用的代码,仅供参考。
另外通过SQL语句可以判断:
数据是Delphi以前自带的db数据库,如何判断表中的字段是否存在,不存则添加.
------解决思路----------------------
if dataSet.FieldByName('yourFieldName')<>nil then exit; //判断字段是否存在
//添加字段脚本
//执行脚本
------解决思路----------------------
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;
前题是表要关联到控件上。
------解决思路----------------------
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不存在'