Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.25;
Скачать: CL | DM;

Вниз

DataSet.Edit - Dataset.Post - DataSet.Cancel   Найти похожие ветки 

 
_qwerty_   (2011-12-09 16:27) [0]


unit Unit2;

interface

uses
 DB;

type
 { TControllerOfObjects }

 TControllerOfFields = class
 private
   FDataSet: TDataSet;
 public
   constructor Create(DataSet: TDataSet);
   property DataSet: TDataSet read FDataSet;
 end;

const
 { field names of table of classifier }

 COMPANY_NAME_FIELD_NAME = "CompanyName";
 MODEL_NAME_FIELD_NAME = "ModelName";
 TYPE_NAME_FIELD_NAME = "TypeName";

type
 { TControllerOfFieldsOfClassifier }

 TControllerOfFieldsOfClassifier = class(TControllerOfFields)
 private
   function GetCompanyName: string;
   function GetModelName: string;
   function GetTypeName: string;
   procedure SetCompanyName(const Value: string);
   procedure SetModelName(const Value: string);
   procedure SetTypeName(const Value: string);
   function VerifyCompanyName(const Value): string;
   function VerifyModelName(const Value: string): string;
   function VerifyTypeName(const Value: string): string;
 public
   property CompanyName: string read GetCompanyName write SetCompanyName;
   property ModelName: string read GetModelName write SetModelName;
   property TypeName: string read GetTypeName write SetTypeName;
 end;

implementation

{ TControllerOfFieldsOfClassifier}

constructor TControllerOfFields.Create(DataSet: TDataSet);
begin
 {  }
 Assert(DataSet <> nil);
 {  }
 FDataSet := DataSet;
end;

function TControllerOfFieldsOfClassifier.GetCompanyName: string;
begin
 Result := DataSet.FieldByName(COMPANY_NAME_FIELD_NAME).AsString;
end;

function TControllerOfFieldsOfClassifier.GetModelName: string;
begin
 Result := DataSet.FieldByName(MODEL_NAME_FIELD_NAME).AsString;
end;

function TControllerOfFieldsOfClassifier.GetTypeName: string;
begin
 Result := DataSet.FieldByName(TYPE_NAME_FIELD_NAME).AsString;
end;

procedure TControllerOfFieldsOfClassifier.SetCompanyName(
 const Value: string);
begin
 DataSet.Edit;
 try
   DataSet.FieldByName(COMPANY_NAME_FIELD_NAME).AsString :=
     VerifyCompanyName(Value);
 except
   DataSet.Cancel;
   raise;
 end;
end;

procedure TControllerOfFieldsOfClassifier.SetModelName(
 const Value: string);
begin
 DataSet.Edit;
 try
   DataSet.FieldByName(MODEL_NAME_FIELD_NAME).AsString :=
     VerifyModelName(Value);
 except
   DataSet.Cancel;
   raise;
 end;
end;

procedure TControllerOfFieldsOfClassifier.SetTypeName(const Value: string);
begin
 DataSet.Edit;
 try
   DataSet.FieldByName(TYPE_NAME_FIELD_NAME).AsString :=
     VerifyTypeName(Value);
 except
   DataSet.Cancel;
   raise;
 end;
end;

function TControllerOfFieldsOfClassifier.VerifyCompanyName(
 const Value): string;
begin
 { ... }
end;

function TControllerOfFieldsOfClassifier.VerifyModelName(
 const Value: string): string;
begin
 { ... }
end;

function TControllerOfFieldsOfClassifier.VerifyTypeName(
 const Value: string): string;
begin
 { ... }
end;

end.


Работаю со встроенной бд. Это нормально, каждый раз писать DataSet.Edit-DataSet.Post-DataSet.Cancel? или лучше процедуру, типа этой:


procedure TGroupsController.SetFieldValues(
 const FieldNames: array of string; const FieldValues: array of const);
var
 I: Integer;
begin
 {  }
 Assert(Length(FieldNames) = Length(FieldValues));
 {  }
 DataSet.Edit;
 try
   for I := 0 to Length(FieldNames) do
     DataSet.FieldByName(FieldNames[I]).AssignValue(FieldValues[I]);
 except
   DataSet.Cancel;
   raise;
 end;
end;


 
Медвежонок Пятачок ©   (2011-12-09 16:30) [1]

Это нормально, каждый раз писать

Можно через раз.
Или через два.
Просто не все вставленное сохранится.


 
_qwerty_   (2011-12-09 16:35) [2]


> Просто не все вставленное сохранится.


почему не все, я протестил, значения полей для текущей записи изменяются.



Страницы: 1 вся ветка

Текущий архив: 2012.03.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
2-1323433650
_qwerty_
2011-12-09 16:27
2012.03.25
DataSet.Edit - Dataset.Post - DataSet.Cancel


2-1323292381
popopo
2011-12-08 01:13
2012.03.25
Построение древа выражения


15-1322201064
Alex_C
2011-11-25 10:04
2012.03.25
Поиск в индексированной базе: что быстрее


2-1323178100
1234567890
2011-12-06 17:28
2012.03.25
значение неинициализированной переменной целого типа


3-1273150836
Цукор5
2010-05-06 17:00
2012.03.25
вложенный запрос