Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Alexander Sakhatovskiy               2:5020/400     11 Apr 2001  14:12:48
 To : All
 Subject : Re: Дремина хитрость 2
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 Tolik Gusin <stalker@giac.dp.ua> пишет в
 сообщении:3AD41B42.ACF60E31@giac.dp.ua...
 
 > > >> или как ноpмальные люди - SP на вставку.
 > > >Это можно легко сделать в случае One Master-One Detail, а вот в случае
 > > >One Master-Many Detail
 > > >этот фокус уже не пройдет.
 > > Рассказывай ... Еще как пройдет.
 > А где ты предлагаешь хранить данные для Detail до того как они попадут в
 > базу ? И как насчет универсальности кода ?
 
 Hигде не хранить. Да и зачем, если не известно, будет вообще сохранение
 данных или нет?
 А как сохраняем, тогда и проставим в Detail что нужно.
 
 что до универсальности, смотри к примеру:
 
 // Создает форму вызывая виртуальный метод CreateEditForm
 procedure TF_Grid_Common.ShowCommon(DataSet : TDataSet; State :
 TDataSetState);
 begin
   if CreateEditForm(DataSet, State) then
   Begin
     DataSet.Post;
 // если форма имеет Detail
     if Assigned(FrameDataSet) then
       SetMasterFields(FrameDataSet);
     F_DataModule.AfterPost(FrameDataSet);
   end
   else
   Begin
     DataSet.Cancel;
     F_DataModule.Refresh(FrameDataSet);
   end;
 end;
 
 procedure TF_DataModule.Refresh(DataSet : TDataSet);
 var
  PK    : Variant;
 begin
   if not Assigned(DataSet) then Exit;
   with DataSet do
   begin
    PK := Fields[0].Value;
     if VarIsNull(PK) then
       PK := Identity;
     DisableControls;
     Close;
     Open;
     Locate(Fields[0].FullName, PK, []);
     EnableControls;
   end;
 end;
 
 // установка в Detail нужного нам занчения
 procedure TF_Grid_Document_Common.SetMasterFields(DataSet: TDataSet);
 begin
   DataSet.First;
   while not DataSet.Eof do
   Begin
     DataSet.Edit;
 // в F_DataModule.Identity храниться ID последнего сохранненого/добавленого
 документа
     DataSet.FieldByName('DOCUMENT_ID').Value := F_DataModule.Identity;
     DataSet.Post;
     DataSet.Next;
   end;
 end;
 
 procedure TF_DataModule.AfterPost(DataSet: TDataSet);
 begin
   if not Assigned(DataSet) then Exit;
   DB.StartTransaction;
   Q_Identity.Close;
   Identity := Null;
   try
     (DataSet as TBDEDataSet).ApplyUpdates;
     DB.Commit;
   except
     DB.Rollback;
     raise;
   end;
   (DataSet as TBDEDataSet).CommitUpdates;
   Q_Identity.Open;
   if VarIsNull(DataSet.Fields[0].Value) then
     Identity := Q_Identity.FieldByName('Identity').Value;
   else
     Identity := DataSet.Fields[0].Value;
   Refresh(DataSet);
 end;
 
 ну и так далее. Смысл, я надеюсь, ясен.
 
 PS: а вообще, с этим пожалуй в ru.delphi.db
 
 - ---
 Alexander Sakhatovskiy
 --- ifmail v.2.15dev5
  * Origin: Marka Ltd (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 SELECT FROM INSERT ?   Leonid Sidorov   27 Mar 2001 20:46:06 
 Re: SELECT FROM INSERT ?   Igor V. Makeev   28 Mar 2001 12:02:39 
 Re: SELECT FROM INSERT ?   Maxim Tomilov   29 Mar 2001 19:30:27 
 RE: SELECT FROM INSERT ?   Drema*   29 Mar 2001 22:11:50 
 SELECT FROM INSERT ?   Andrey   30 Mar 2001 09:43:14 
 Re: SELECT FROM INSERT ?   Ilya Zvyagin   30 Mar 2001 09:55:06 
 RE: SELECT FROM INSERT ?   Drema*   30 Mar 2001 10:27:40 
 RE: SELECT FROM INSERT ?   Drema*   30 Mar 2001 19:17:28 
 Re: SELECT FROM INSERT ?   Roman S. Golubin   30 Mar 2001 21:10:43 
 SELECT FROM INSERT ?   Andrey   31 Mar 2001 01:27:28 
 RE: SELECT FROM INSERT ?   Drema*   31 Mar 2001 00:23:05 
 Re: SELECT FROM INSERT ?   Sergey Pratch   31 Mar 2001 18:07:40 
 Дремина хитрость 2   Andrey   01 Apr 2001 13:03:16 
 RE: Дремина хитрость 2   Drema*   01 Apr 2001 15:28:23 
 Дремина хитрость 2   Andrey   01 Apr 2001 20:43:00 
 RE: Дремина хитрость 2   Drema*   02 Apr 2001 23:11:06 
 Re: Дремина хитрость 2   Ilya Zvyagin   02 Apr 2001 12:44:01 
 Re: Дремина хитрость 2   Serg Vasiltsoff   02 Apr 2001 16:41:53 
 ЙRe: Дремина хитрость 2   Ilya Zvyagin   02 Apr 2001 17:38:59 
 Re: Дремина хитрость 2   Serg Vasiltsoff   02 Apr 2001 18:26:22 
 Re: Дремина хитрость 2   Ilya Zvyagin   02 Apr 2001 21:14:00 
 Re: Дремина хитрость 2   Serg Vasiltsoff   02 Apr 2001 22:58:47 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 10:49:55 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 12:54:43 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 15:46:47 
 RE: Дремина хитрость 2   Drema*   02 Apr 2001 23:11:07 
 RE: Дремина хитрость 2   Drema*   02 Apr 2001 23:11:07 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 10:49:55 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 12:54:43 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 16:07:17 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 18:40:13 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 13:57:29 
 Re: Дремина хитрость 2   Serg Vasiltsoff   04 Apr 2001 15:29:06 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 17:25:26 
 RE: Дремина хитрость 2   Drema   03 Apr 2001 13:17:16 
 Re: Дремина хитрость 2   Tolik Tentser   03 Apr 2001 13:25:24 
 RE: Дремина хитрость 2   Drema   03 Apr 2001 14:16:42 
 Re: Дремина хитрость 2   Tolik Tentser   03 Apr 2001 14:35:07 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 12:22:44 
 Re: Дремина хитрость 2   Tolik Tentser   04 Apr 2001 13:03:34 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 15:25:02 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 17:29:28 
 Re: Дремина хитрость 2   Tolik Tentser   04 Apr 2001 18:24:32 
 Дремина хитрость 2   Sergey Ignatov   16 Apr 2001 23:34:30 
 Дремина хитрость 2   Sergey Ignatov   16 Apr 2001 23:08:19 
 Re: Дремина хитрость 2   Serg Vasiltsoff   04 Apr 2001 15:29:07 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 16:07:17 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 16:15:24 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 12:12:25 
 Re: Дремина хитрость 2   Serg Vasiltsoff   04 Apr 2001 12:59:29 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 14:48:26 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 13:45:04 
 Re: Дремина хитрость 2   Serg Vasiltsoff   04 Apr 2001 15:29:07 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 13:45:04 
 Re: Дремина хитрость 2   Serg Vasiltsoff   04 Apr 2001 15:29:08 
 Re: Дремина хитрость 2   Tolik Gusin   09 Apr 2001 19:41:20 
 Re: Дремина хитрость 2   Anatoly Moskovsky   09 Apr 2001 20:40:22 
 Re: Дремина хитрость 2   Tolik Gusin   10 Apr 2001 19:01:32 
 Re: Дремина хитрость 2   Anatoly Moskovsky   10 Apr 2001 19:36:58 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 10:28:08 
 Re: Дремина хитрость 2   Anatoly Moskovsky   11 Apr 2001 12:46:42 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 18:55:02 
 Re: Дремина хитрость 2   Anatoly Moskovsky   11 Apr 2001 21:32:22 
 Re: Дремина хитрость 2   Tolik Gusin   11 Apr 2001 13:56:27 
 Re: Дремина хитрость 2   Anatoly Moskovsky   11 Apr 2001 15:16:10 
 Re: Дремина хитрость 2   Tolik Tentser   10 Apr 2001 18:09:35 
 Re: Дремина хитрость 2   Tolik Gusin   10 Apr 2001 19:01:28 
 Re[2]: Дремина хитрость 2   Drema   10 Apr 2001 22:42:27 
 Re: Re[2]: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 10:15:56 
 Re[4]: Дремина хитрость 2   Drema   11 Apr 2001 12:42:36 
 Re: Дремина хитрость 2   Tolik Gusin   11 Apr 2001 14:29:03 
 Hа: Дремина хитрость 2   Horsun Vlad   11 Apr 2001 15:16:11 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 19:19:29 
 Re: Дремина хитрость 2   Sergey Pratch   12 Apr 2001 19:42:52 
 Re: Дремина хитрость 2   Igor V. Makeev   13 Apr 2001 10:03:43 
 Re: Дремина хитрость 2   Sergey Pratch   13 Apr 2001 18:39:06 
 Insert в MSA   Igor V. Makeev   14 Apr 2001 14:43:45 
 Re: Insert в MSA   Sergey Pratch   16 Apr 2001 12:48:20 
 Re: Insert в MSA   Igor V. Makeev   16 Apr 2001 15:03:37 
 Re: Дремина хитрость 2   Tolik Gusin   11 Apr 2001 14:02:35 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 19:05:14 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 19:07:17 
 Re[2]: Дремина хитрость 2   Drema   11 Apr 2001 20:10:20 
 Дремина хитрость 2   Akzhan Abdulin   12 Apr 2001 13:15:01 
 Re: Дремина хитрость 2   Ilya Zvyagin   12 Apr 2001 18:21:00 
 Re: Дремина хитрость 2   Sergey Pratch   12 Apr 2001 19:42:53 
 Re: Дремина хитрость 2   Tolik Tentser   11 Apr 2001 18:44:45 
 Дремина хитрость 2   Akzhan Abdulin   12 Apr 2001 12:59:18 
 Дремина хитрость 2   Akzhan Abdulin   10 Apr 2001 15:20:38 
 Re: Дремина хитрость 2   Tolik Gusin   10 Apr 2001 19:10:25 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 10:28:08 
 Re: Дремина хитрость 2   Tolik Gusin   11 Apr 2001 13:54:23 
 Re: Дремина хитрость 2   Alexander Sakhatovskiy   11 Apr 2001 14:12:48 
 Re: Дремина хитрость 2   Tolik Gusin   11 Apr 2001 14:47:33 
 Re: Дремина хитрость 2   Ilya Zvyagin   11 Apr 2001 18:59:08 
 Дремина хитрость 2   Akzhan Abdulin   12 Apr 2001 13:02:40 
 Дремина хитрость 2   Makarov Vladimir   19 Apr 2001 10:20:17 
 Hа: Дремина хитрость 2   Horsun Vlad   11 Apr 2001 10:42:23 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 12:54:43 
 RE: Дремина хитрость 2   Drema   03 Apr 2001 13:31:38 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 16:15:24 
 Re: Дремина хитрость 2   Ilya Zvyagin   02 Apr 2001 12:29:44 
 Re: Дремина хитрость 2   Sergey Pratch   02 Apr 2001 18:32:31 
 RE: Дремина хитрость 2   Drema*   02 Apr 2001 23:11:07 
 Re: Дремина хитрость 2   Serg Vasiltsoff   03 Apr 2001 10:58:04 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 13:15:14 
 RE: Дремина хитрость 2   Drema   03 Apr 2001 16:19:27 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 13:34:57 
 Дремина хитрость 2   Andrey   03 Apr 2001 09:14:42 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 10:49:55 
 RE: Дремина хитрость 2   Drema   03 Apr 2001 12:48:28 
 Re: Дремина хитрость 2   Ilya Zvyagin   03 Apr 2001 16:13:22 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 12:28:49 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 13:45:04 
 Дремина хитрость 2   Akzhan Abdulin   03 Apr 2001 15:20:06 
 Re: Дремина хитрость 2   Ilya Zvyagin   04 Apr 2001 10:36:26 
 RE: Дремина хитрость 2   Drema   04 Apr 2001 14:48:26 
 Дремина хитрость 2   Akzhan Abdulin   04 Apr 2001 16:37:16 
 Дремина хитрость 2   Akzhan Abdulin   04 Apr 2001 16:28:32 
 Дремина хитрость.   Andrey   01 Apr 2001 13:03:40 
 Re: Дремина хитрость.   Serg Vasiltsoff   02 Apr 2001 16:41:54 
 Re: SELECT FROM INSERT ?   Tolik Tentser   30 Mar 2001 06:38:46 
 Re: SELECT FROM INSERT ?   Ilya Zvyagin   30 Mar 2001 09:59:10 
 Re: SELECT FROM INSERT ?   Ilya Zvyagin   30 Mar 2001 09:57:07 
 SELECT FROM INSERT ?   Andrei Sokolik   28 Mar 2001 12:16:18 
 Re: SELECT FROM INSERT ?   H.H.†гЄ®ў   28 Mar 2001 20:00:08 
Архивное /su.dbms.sql/14234c7942054.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional