插入新的字段(100分)

  • 主题发起人 主题发起人 gyq918
  • 开始时间 开始时间
G

gyq918

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在delphi4.0中如何在程序运行时插入新的字段?
在delphi中如何设计表格的打印
 
1. 用TQuery写sql最简单, 如:
alter table tablename add column column_name char(30)
2. 最简单的是用QuickReport生成报表.
 
有的数据库服务器在有数据的时候不允许更改数据表的定义,例如MS SQLServer,
为的是维护数据的完整性(就是正确性)
 
sql server允许增加column, 但是不能删除 :)
 
要在运行中插入新字段并且长期存在,不知DBO怎么设计数据库的,今后怎么对此字段操作,是不是要重写软件.
如果只是临时用的,应该是计算字段.

 
直接插入新字段有些数据库好象不太支持的, 我的做法是建立一个新表,把旧表中的
数据倒入.
 
选择tabel.field中的add命令
 
另建一个table,通过Create View建一个view,这样,就可以达到你的要求。
要点是保证统一主键。
 
eyes is right, pegasus wrong :)
 
用table.field.add怎么加??能不能贴出来???
 
在Delphi中打印可以用QuickReport,一般应用完全可以满足了.
看看Delphi中的Demo就知道了.
 
gyq918到底想干什么?
怎么人影都没了?
 
谁有具体的程序段,贴了来瞧瞧。
 
eyes 不是都贴了么!?
 
Table1.FieldDefs.Add(fieldname,fieldtype,fieldsize,true);
Table1.CreateTable;
这样并不会影响其他的字段。
 
if not Table1.Exists then { Don't overwrite an existing table }

begin
with Table1 do
begin
Active := False; { The Table component must not be active }

{ First, describe the type of table and give it a name }
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';

{ Next, describe the fields in the table }
with FieldDefs do
begin
Clear;
Add('Field1', ftInteger, 0, True);
Add('Field2', ftString, 30, False);

end;

{ Next, describe any indexes }
with IndexDefs do
begin
Clear;
{ The first index has no name because it is a Paradox primary key }
Add('', 'Field1', [ixPrimary, ixUnique]);
Add('Fld2Indx', 'Field2', [ixCaseInsensitive]);
end;

{ Now that we have specified what we want, create the table }
CreateTable;
end;
end;
 
if not Table1.Exists then { Don't overwrite an existing table }

begin
with Table1 do
begin
Active := False; { The Table component must not be active }

{ First, describe the type of table and give it a name }
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';

{ Next, describe the fields in the table }
with FieldDefs do
begin
Clear;
Add('Field1', ftInteger, 0, True);
Add('Field2', ftString, 30, False);

end;

{ Next, describe any indexes }
with IndexDefs do
begin
Clear;
{ The first index has no name because it is a Paradox primary key }
Add('', 'Field1', [ixPrimary, ixUnique]);
Add('Fld2Indx', 'Field2', [ixCaseInsensitive]);
end;

{ Now that we have specified what we want, create the table }
CreateTable;
end;
end;
 
多人接受答案了。
 
后退
顶部