怎样在程序运行过程中,为某个表动态的加字段啊(100分)

  • 主题发起人 主题发起人 眉宇
  • 开始时间 开始时间

眉宇

Unregistered / Unconfirmed
GUEST, unregistred user!
先要判断是否名为‘index’的自段存在,如果不存在就动态的添加一个
这段程序怎么写啊

谢谢
 
这种问题好像有好多人问过了。
我先找找看。
 
用table1.Fields.Create方法!
 
用table1.Fields.Create 不行

我的代码请各位挑一下错误
with TableWork do
begin
if tablework.fieldcount=28 then
Tablework.Active:=True else
begin
Tablework.Close;
T := TDateField.Create(Self);
T.FieldName := 'index';
T.Name := TableWork.Name + T.FieldName;
T.Index := TableWork.FieldCount ;
T.DataSet := TableWork;
//T.DataType := FtSmallint;
tableWork.FieldDefs.UpDate;
TableWork.Open;
end;


end;
 
在Fields中做一个循环:
for i:=0 to Fields.Count - 1 do
if AnsiCompareStr(Fields.FieldNmae ,'Index') = 0 then
Find := True;
if not Find then
Table.FieldDefs.Add('Index', ftInteger, 0, True);

调用TTable.FidldDefs对象的Add方法向数据库表中添加字段。Add有4个参数:
 字段名:string。
 字段类型:TfieldType。
 字段大小:Word。一般只对String和Memo类型使用。
 字段是否NotNull: Boolean。
with FieldDefs do
begin
Add('Age', ftInteger, 0, True);
Add('Name', ftString, 25, False);
Add('Weight', ftFloat, 0, False);
end;

 
with Query1 do
begin
Close;
Sql.Text:='select * from 表名 where 1=2';
Open;
if Pos('index',FieldList)>0 then
begin
ShowMessage('字段index存在');
Exit;
end;
Close;
Sql.Text:='alter table 表名 add index 字段类型';
Execsql;
Close;
end;

建议不要使用index作为字段名,index是数据库的保留字之一
 
朋友:index是关键字,怎么能当做字段名呢?
 
我只是维护这个软件 字段名是别人定义的
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部