как записать TInterface в dataset Delphi

программирование программы базы данных Delphi делфи


Примечание:
Решил сделать сущности в виде интерфейсов, а вот как эти интерфейсы хранить и использовать в DataSet

Примечание:
Есть интерфейс
IUsers = Interface(IInterface)
['{5C6197D7-97F6-4BF2-A411-AB0B3532773E}']
Function Get_Id: Longint;
Procedure Set_Id(Const i: Longint);
Function Get_Name: String;
Procedure Set_Name(Const i: String);
Function Get_Password: String;
Procedure Set_Password(Const i: String);
Function Get_Full_Name: String;
Procedure Set_Full_Name(Const i: String);
Function Get_Enabled: Smallint;
Procedure Set_Enabled(Const i: Smallint);
Function Get_Priority: Smallint;
Procedure Set_Priority(Const i: Smallint);
Function Get_Is_Admin: Smallint;
Procedure Set_Is_Admin(Const i: Smallint);
Function Get_Barcode: String;
Procedure Set_Barcode(Const i: String);
Function Get_Select: String;
Procedure Set_Select(Const i: String);
Function Get_Created: TDateTime;
Procedure Set_Created(Const i: TDateTime);
Function Get_Modified: TDateTime;
Procedure Set_Modified(Const i: TDateTime);
Function Get_Deleted: TDateTime;
Procedure Set_Deleted(Const i: TDateTime);

Property Id: Longint Read Get_Id Write Set_Id;
Property Name: String Read Get_Name Write Set_Name;
Property Password: String Read Get_Password Write Set_Password;
Property Full_Name: String Read Get_Full_Name Write Set_Full_Name;
Property Enabled: Smallint Read Get_Enabled Write Set_Enabled;
Property Priority: Smallint Read Get_Priority Write Set_Priority;
Property Is_Admin: Smallint Read Get_Is_Admin Write Set_Is_Admin;
Property Barcode: String Read Get_Barcode Write Set_Barcode;
Property Select: String Read Get_Select Write Set_Select;
Property Created: TDateTime Read Get_Created Write Set_Created;
Property Modified: TDateTime Read Get_Modified Write Set_Modified;
Property Deleted: TDateTime Read Get_Deleted Write Set_Deleted;
End;

и есть его реализация
Type
TUsers = Class(TInterfacedObject, IUsers)
Protected
Id: Longint;
Name: String;
Password: String;
Full_Name: String;
Enabled: Smallint;
Priority: Smallint;
Is_Admin: Smallint;
Barcode: String;
Select: String;
Created: TDateTime;
Modified: TDateTime;
Deleted: TDateTime;
Public
Function Get_Id: Longint;
Procedure Set_Id(Const i: Longint);

Function Get_Name: String;
Procedure Set_Name(Const i: String);

Function Get_Password: String;
Procedure Set_Password(Const i: String);

Function Get_Full_Name: String;
Procedure Set_Full_Name(Const i: String);

Function Get_Enabled: Smallint;
Procedure Set_Enabled(Const i: Smallint);

Function Get_Priority: Smallint;
Procedure Set_Priority(Const i: Smallint);

Function Get_Is_Admin: Smallint;
Procedure Set_Is_Admin(Const i: Smallint);

Function Get_Barcode: String;
Procedure Set_Barcode(Const i: String);

Function Get_Select: String;
Procedure Set_Select(Const i: String);

Function Get_Created: TDateTime;
Procedure Set_Created(Const i: TDateTime);

Function Get_Modified: TDateTime;
Procedure Set_Modified(Const i: TDateTime);

Function Get_Deleted: TDateTime;
Procedure Set_Deleted(Const i: TDateTime);

Destructor Destroy; Override;
Constructor Create;
End;

Как мне этот интерфейс записать в DataSet? к соответствующему полю.

Примечание:
хм: Пример не помешал бы. Всегда лучше увидеть, чем услышать.
Можно по русски писать, если есть возможность, а то переводить приходится. Украинский как то не знаю.

Примечание:
ADR-007 вы писали: "Якщо тобі потрібні дані (Id, Name...) то їх і записуй."
Да я их то буду писать, для показа например в гриде, только дело в том что интерфейс самоуничтожиться может, вот мне и надо как то интерфейс прикрутить к его данным в MEMDATASET`e например.

Примечание:
Для дальнейших манипуляций с ним.
Ответы:
О_О
1) не TInterface а IInterface
2) інтерфейси не мають полів - це просто посилання на методи об'єкта, що ти хочеш записати на БД??
Ніяк. І для чого? Інтерфейс ЗАВЖДИ має описуватись в програмі
Зачем делать обертку Interface над оберткой TDataset?
наборы данных TDataSet и так уже являются обертками все что остается сделать:
 добавить поля в Fields,
 назвать компоненты по человечески: например, TAdoQuery назвать Users, поля назвать CurrentUser_Id, CurrentUser_Name и т.п.
и не надо городить классов, интерфейсов, наследников, перегрузок методов и других ООП-шных прелестей.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.