D
dadabox
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,小弟常常看到中间层用物件物件,但却不知道如何来做?都说什么物件导向,我曾看
到过别的公司的一段代码,他将每一个表都写成了一个物件,如订单就有订单这个物件,而订单
中的各项资料就成了物件的属性.而且这个物件还有新增,修改,删除等等事件,就如同一个活
动的数据表一样.但我有些疑惑?若这样的话,效率会不会高呢?若我只要其中的一项资料,那么
岂不是也要全部读出来?
下面是其中的一段代码,我见其每一个物件的每一个属性都要这样子.这样子是对的吗?
似乎每对一个表做修改,那么每一个栏位都要post一次.而且,若以后物料需要修改栏位,
用什么方法来改呢?我只看到这一部分,服务器端和客户端都没见.所以也不知道这种方法
是好还是不好.
请教各位高手,你们是怎么做的呢?欢迎回答问题.若有建设性的问题,我多多给分.若哪
位仁慈的大侠愿意提供一点源码给小弟借鉴,定感激不尽.(不只是精神上的,还有分哟)
先给100分,不封顶!
{材料特性}
type
TNhSpecrqt = class(TNhObject)
private
function GetSpecrqtid: string;
procedure SetSpecrqtid(value: string);
function GetSpecrqt: string;
procedure SetSpecrqt(value: string);
function GetEnglish: string;
procedure SetEnglish(value: string);
protected
property Specrqtid: string read GetSpecrqtid write SetSpecrqtid;
property Specrqt: string read GetSpecrqt write SetSpecrqt;
property English: string read GetEnglish write SetEnglish;
end;
function TNhSpecrqt.GetSpecrqtid: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('specrqtid').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetSpecrqtid(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('specrqtid').AsString := Value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;
function TNhSpecrqt.GetSpecrqt: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('specrqt').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetSpecrqt(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('specrqt').AsString := Value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;
function TNhSpecrqt.GetEnglish: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('english').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetEnglish(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('english').AsString := value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;
到过别的公司的一段代码,他将每一个表都写成了一个物件,如订单就有订单这个物件,而订单
中的各项资料就成了物件的属性.而且这个物件还有新增,修改,删除等等事件,就如同一个活
动的数据表一样.但我有些疑惑?若这样的话,效率会不会高呢?若我只要其中的一项资料,那么
岂不是也要全部读出来?
下面是其中的一段代码,我见其每一个物件的每一个属性都要这样子.这样子是对的吗?
似乎每对一个表做修改,那么每一个栏位都要post一次.而且,若以后物料需要修改栏位,
用什么方法来改呢?我只看到这一部分,服务器端和客户端都没见.所以也不知道这种方法
是好还是不好.
请教各位高手,你们是怎么做的呢?欢迎回答问题.若有建设性的问题,我多多给分.若哪
位仁慈的大侠愿意提供一点源码给小弟借鉴,定感激不尽.(不只是精神上的,还有分哟)
先给100分,不封顶!
{材料特性}
type
TNhSpecrqt = class(TNhObject)
private
function GetSpecrqtid: string;
procedure SetSpecrqtid(value: string);
function GetSpecrqt: string;
procedure SetSpecrqt(value: string);
function GetEnglish: string;
procedure SetEnglish(value: string);
protected
property Specrqtid: string read GetSpecrqtid write SetSpecrqtid;
property Specrqt: string read GetSpecrqt write SetSpecrqt;
property English: string read GetEnglish write SetEnglish;
end;
function TNhSpecrqt.GetSpecrqtid: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('specrqtid').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetSpecrqtid(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('specrqtid').AsString := Value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;
function TNhSpecrqt.GetSpecrqt: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('specrqt').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetSpecrqt(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('specrqt').AsString := Value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;
function TNhSpecrqt.GetEnglish: string;
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(BookMark);
Result := DataSource.DataSet.FieldByName('english').AsString;
end
else
Result := '';
end;
procedure TNhSpecrqt.SetEnglish(value: string);
begin
if DataSource.DataSet <> nil then
if (BookMark <> nil) and DataSource.DataSet.BookmarkValid(Bookmark) then
begin
DataSource.DataSet.GotoBookmark(Bookmark);
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName('english').AsString := value;
DataSource.DataSet.Post;
Bookmark := DataSource.DataSet.GetBookmark;
end;
end;