请问一下,如果在一个单元定义一个类描述数据库表中Client表格的字段:
unit ClientField;interfacetype
TClientField = Class
private
FID: Integer;
FName: String;
FAddr: String;
FTel: String;
public
property ID: Integer read FID write FID;
property Name: String read FName write FName;
property Addr: String read FAddr write FAddr;
property Tel: String read FTel write FTel;
end;implementationend.在另外一个单位设计一类
unit Client;interface
uses ClientField;
type
TClient = class
private
//......
public
//......
procedure Add(AClientField: TClientField);
procedure Modify(AClientField: TClientField);
//......
end;implementationend.TClient类Add过程是向Client表增加一条记录,Modify是修改记录。假如,在数据库中Client表格增加字段,比如性别(sex),在ClientField单元中TclientField类增加Fsex变量和Sex属性,要使Client单元中的TClient代码不变,就能适应Client表格字段的增件,Add,Modify过程要如何设计?
unit ClientField;interfacetype
TClientField = Class
private
FID: Integer;
FName: String;
FAddr: String;
FTel: String;
public
property ID: Integer read FID write FID;
property Name: String read FName write FName;
property Addr: String read FAddr write FAddr;
property Tel: String read FTel write FTel;
end;implementationend.在另外一个单位设计一类
unit Client;interface
uses ClientField;
type
TClient = class
private
//......
public
//......
procedure Add(AClientField: TClientField);
procedure Modify(AClientField: TClientField);
//......
end;implementationend.TClient类Add过程是向Client表增加一条记录,Modify是修改记录。假如,在数据库中Client表格增加字段,比如性别(sex),在ClientField单元中TclientField类增加Fsex变量和Sex属性,要使Client单元中的TClient代码不变,就能适应Client表格字段的增件,Add,Modify过程要如何设计?
解决方案 »
- 帮忙看几个delphi代码转换为C++代码的问题
- 使用ExtractFilePath获取exe文件所在目录后,如何取得改目录下的某个子目录
- DELPHI被病毒感染!!!!!!!!!!!
- 顶的都有分,博客几天都打不开,把分用完算了,再也不来csdn了!
- 又出错了,怎么做转换啊![DCC Error] download.dpr(19): E2003 Undeclared identifier: 'HKEY_LOCAL_MACHINE'
- 如何自己定义 窗体颜色 ?
- 如何获取远程计算机的用户列表?
- 哪位朋友有SplashForm->LoginForm->MDIForm->ChildForm的程序段贴出来给我看看好吗?我将万分感激。在此献上100分了表谢意。
- cxlookupcombobox控件如何加一行空白值呢?
- 关于CASE
- DELPHI数据库ACCESS下UPDATE的语句
- 怎样预防熊猫烧香?
TClientField = class
proptected
procedure CalcField;virtual;
procedure OnNew;virtual;
end;TCustomer = class(TClientField)
....
protected
procedure CalcField;override;
procedure OnNew;override; public
property ID: Integer read FID write FID;
property Name: String read FName write FName;
property Addr: String read FAddr write FAddr;
property Tel: String read FTel write FTel;
end;
TClient = class public
//......
procedure Add(AClientField: TClientField);
procedure Modify(AClientField: TClientField);
//......
end;...
procedure TClient.Add(...)
begin
...
..
AClientField.OnNew(...);
...
...
end;
private
FID: Integer;
FName: String;
FAddr: String;
FTel: String;
public
property ID: Integer read FID write FID;
property Name: String read FName write FName;
property Addr: String read FAddr write FAddr;
property Tel: String read FTel write FTel;
end;如果你这个类仅仅是描述一个数据结构,用record不就完乐.另外,按照你目前的思路,你希望TClient中的代码不变,估计不行..不过可以通过继承的方式尽量代码复用
让ClientField成为了类,属性对应Client表中的字段,名称也一致,或者符合某个规律。如果是记录类型就没有办法取得其中字段名称和值还有类型吧
肯定会用到具体属性的。请问你的OnNew是实现什么功能。
能不能写下OnNew的代码?
让我参考下
谢谢!!!