Форум: "Начинающим";
Текущий архив: 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