Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
6-1253728722
kluben-hh
2009-09-23 21:58
2012.03.25
Правильное соединение клиента с сервером


8-1222673932
DoKi
2008-09-29 11:38
2012.03.25
Сглаживание


15-1322588271
Dennis I. Komarov
2011-11-29 21:37
2012.03.25
Google AdSense или...


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


3-1252904459
ruslan_as
2009-09-14 09:00
2012.03.25
dbf файл - не видно чисел





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский