Ошибка cannot modify a read only dataset

I am currently testing with:

  1. A SQLConnection which is pointed towards an IB database.
  2. A SQLDataset that has a SQLConnection field set to the one above.
  3. A DatasetProvider that has the SQLDataset in (2) as its Dataset field value.
  4. A ClientDataset, with the ProviderName field pointing to the provider in (3).

I use the following method (borrowed from Alister Christie) to get the data…

function TForm1.GetCurrEmployee(const IEmployeeID: integer): OleVariant; 
const 
  SQLSELEMP = 'SELECT E.* FROM EMPLOYEE E WHERE E.EMPLOYEEID = %s'; 
begin 
  MainDM.SQLDataset1.CommandText := Format(SQLSELEMP, [Edit1.Text]); 
  Result := MainDM.DataSetProvider1.Data; 
end;

Which populates the DBGrid with just one record. However, when I manually edit the record, click on Post, then try to commit the changes, using

MainDM.ClientDataset1.ApplyUpdates(0); // <<<<<< 

It bombs, with the message «SQLDataset1: Cannot modify a read-only dataset.»

I have checked the ReadOnly property of the Provider, and of the ClientDataset, and the SQL has no joins.

What could be causing the error?

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    >
    Cannot modify read-only dataset

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    20.02.06, 21:37

      Member

      **

      Рейтинг (т): 0

      Версия дельфи 7ая. База Парадоксовская. Двигло БДЕ. Всё вродер делаю прально: Разместил компоненты, сварганил базу, свотрится она нормально, в дбгрид и редактируется там же отлично, но дбедит возможно редактирование отсутствует т.е., при выполнении:

      ExpandedWrap disabled

        Table1.Active:=true;

          Table1.First;

          Table1.Edit;

      Вылазит сабжевая ошибка. Что я делаю не так?


      Vit



      Сообщ.
      #2

      ,
      20.02.06, 23:42

        Автором очевидно проводится проверка телепатических способностей форумчан по угадыванию названия ошибки на расстоянии. >:(


        cr0acker



        Сообщ.
        #3

        ,
        21.02.06, 02:05

          Member

          **

          Рейтинг (т): 0

          А че не понятно. Есть база. Есть алиас в дбе на эту базу. Есть программа на дельфях отлично читающая эту базу, как через ДБГридДБнавигатор, так и черещ ДБедитДбмемо со своими кнопочками. Если запустить софтину пощелкать на кнопки тов всё нормально, но в ДБедит невозможно ничего изменить, при клике он очищается.

          ExpandedWrap disabled

              Table1.Active:=true;

              Table1.First;

              DBEdit1.Text:=mainform.Table1.FieldByName(‘ID’).AsString;

              DBEdit2.Text:=mainform.Table1.FieldByName(‘SN’).AsString;

              DBEdit3.Text:=mainform.Table1.FieldByName(‘FN’).AsString;

              DBEdit4.Text:=mainform.Table1.FieldByName(‘tel’).AsString;

              DBEdit5.Text:=mainform.Table1.FieldByName(’email’).AsString;

              DBEdit6.Text:=mainform.Table1.FieldByName(‘addr’).AsString;

              DBEdit7.Text:=mainform.Table1.FieldByName(‘vac’).AsString;

              DBEdit8.Text:=mainform.Table1.FieldByName(‘age’).AsString;

              DBEdit9.Text:=mainform.Table1.FieldByName(‘sallary’).AsString;

              DBEdit10.Text:=mainform.Table1.FieldByName(‘city2’).AsString;

              DBMemo1.Text:=mainform.Table1.FieldByName(‘education’).AsString;

              DBMemo1.Text:=mainform.Table1.FieldByName(‘opit1’).AsString;

              DbMemo1.Text:=mainform.Table1.FieldByName(‘desc’).AsString;

          Вопрос а) почему в полях дбедит ничего нельзя изметь. Б)Почему при вышеописанных изменениях вылезает сабжевая ошибка.


          VG_



          Сообщ.
          #4

          ,
          21.02.06, 04:20

            Full Member

            ***

            Рейтинг (т): 6

            Цитата cr0acker @ 21.02.06, 02:05

            Вопрос а) почему в полях дбедит ничего нельзя изметь…

            А ты пробывал в DBGrid в свойстве Options поставить true у dgEditing?
            Или поля у тя в Table не read only?


            dron-s



            Сообщ.
            #5

            ,
            21.02.06, 04:26

              cr0acker
              а зачем ты для DBEdit делаешь заполнение через поля? :blink:
              у DBEdit поле неактивно пока неукажешь поле…
              у него есть такое свойство DataSources, привязываешь к определённому полю и делаешь Post и усё…

              Wizard

              Bas



              Сообщ.
              #6

              ,
              21.02.06, 06:33

                Заполни DataSources,DataField и будет счастье.


                cr0acker



                Сообщ.
                #7

                ,
                21.02.06, 13:58

                  Member

                  **

                  Рейтинг (т): 0

                  Цитата Bas @ 21.02.06, 06:33

                  Заполни DataSources,DataField и будет счастье.

                  Ну, да, значение при клике пропападать перестало, но, отредактировать его невозможно(хотя в гриде все редактируется), а при

                  ExpandedWrap disabled

                        Table1.Edit;

                        Table1.Append;

                  Код:

                  ExpandedWrap disabled

                    Table1.Active:=true;

                      Table1.First;

                      DBEdit1.DataSource:=DataSource1;

                      DBEdit2.DataSource:=DataSource1;

                      DBEdit3.DataSource:=DataSource1;

                      DBEdit4.DataSource:=DataSource1;

                      DBEdit5.DataSource:=DataSource1;

                      DBEdit6.DataSource:=DataSource1;

                      DBEdit7.DataSource:=DataSource1;

                      DBEdit8.DataSource:=DataSource1;

                      DBEdit9.DataSource:=DataSource1;

                      DBEdit10.DataSource:=DataSource1;

                      DBEdit1.DataField:=’ID’;

                      DBEdit2.DataField:=’SN’;

                      DBEdit3.DataField:=’FN’;

                      DBEdit4.DataField:=’tel’;

                      DBEdit5.DataField:=’email’;

                      DBEdit6.DataField:=’addr’;

                      DBEdit7.DataField:=’vac’;

                      DBEdit8.DataField:=’age’;

                      DBEdit9.DataField:=’sallary’;

                      DBEdit10.DataField:=’city2′;

                      DBMemo1.DataSource:=Datasource1;

                      DBMemo2.DataSource:=Datasource1;

                      DBMemo3.DataSource:=Datasource1;

                      DBMemo1.DataField:=’education’;

                      DBMemo2.DataField:=’opit1′;

                      DBMemo3.DataField:=’desc’;


                  dron-s



                  Сообщ.
                  #8

                  ,
                  21.02.06, 14:39

                    cr0acker
                    зачем такое извращение, когда можно сделать всё двумя кликами мышки…

                    Wizard

                    Bas



                    Сообщ.
                    #9

                    ,
                    22.02.06, 10:47

                      ExpandedWrap disabled

                          DBEdit1.DataSource:=DataSource1;

                        ……….

                          DBEdit10.DataSource:=DataSource1;

                          DBEdit1.DataField:=’ID’;

                        ……………

                          DBEdit10.DataField:=’city2′;

                          DBMemo1.DataSource:=Datasource1;

                          DBMemo2.DataSource:=Datasource1;

                          DBMemo3.DataSource:=Datasource1;

                          DBMemo1.DataField:=’education’;

                          DBMemo2.DataField:=’opit1′;

                          DBMemo3.DataField:=’desc’;

                        Table1.Active:=true;

                        Table1.First;

                        Table1.Edit ;// если хотим редактировать

                      Table1.Append;// добавляем новую запись


                      Coala



                      Сообщ.
                      #10

                      ,
                      22.02.06, 10:51

                        Цитата DroN_S @ 21.02.06, 14:39

                        cr0acker
                        зачем такое извращение, когда можно сделать всё двумя кликами мышки…

                        Ага, особливо, если использовать дизайновую привязку ДБЕдитов (и всего остального, если появятся) к соответствующему ДатаСорсу :yes:

                        Добавлено 22.02.06, 10:55
                        Cannot modify read-only dataset
                        Проверь свойства своей Table. У тебя она сейчас доступна только на чтение. :ph34r:

                        Цитата Bas @ 22.02.06, 10:47

                        Table1.Append;// добавляем новую запись

                        Дык если Table.ReadOnly = true, снова и поимеем ошибку, указанную в сабже первого поста!

                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                        0 пользователей:

                        • Предыдущая тема
                        • Delphi: Базы данных
                        • Следующая тема

                        Рейтинг@Mail.ru

                        [ Script execution time: 0,0309 ]   [ 16 queries used ]   [ Generated: 5.06.23, 15:11 GMT ]  

                         
                        Muzzy
                         
                        (2006-06-01 08:17)
                        [0]

                        Ругается на строке с
                        FieldByName(«npp»).AsInteger:=StrToInt(edNpp.Text);

                        говорит следующее:
                        Cannnot modify  a read-only  dataset.

                        Что это такое? Я все проверил на 1024 раза. Может что в real-time нужно делать? И в IB настройки смотрел.

                        Делаю все по книжке вот так:

                               with IBDataSetJOTKL do
                               begin
                                 IBDataSetJOTKL.Active:=True;
                                 try
                                 Insert;
                                 FieldByName(«npp»).AsInteger:=StrToInt(edNpp.Text);
                                 FieldByName(«fidname»).AsString:=edFidname.Text;
                                 FieldByName(«dateotkl»).AsDateTime:=edDateotkl.Date;
                                 FieldByName(«timeotkl»).AsDateTime:=edTimeotkl.Time;
                                 FieldByName(«datevkl»).AsDateTime:=edDatevkl.Date;
                                 FieldByName(«timevkl»).AsDateTime:=edTimevkl.Time;
                                 FieldByName(«lengthotkl»).AsDateTime:=edLengthotkl.Time;
                                 FieldByName(«priotkl»).AsString:=edPriotkl.Text;
                                 FieldByName(«npo»).AsString:=edNpo.Text;
                                 FieldByName(«katpotr»).AsString:=edKatpotr.Text;
                                 FieldByName(«klassif»).AsInteger:=StrToInt(edKlassif.Text);
                                 FieldByName(«nedootp»).AsInteger:=StrToInt(edNedootp.Text);
                                 FieldByName(«datepered»).AsDateTime:=edDatepered.Date;
                                 FieldByName(«timepered»).AsDateTime:=edTimepered.Time;
                                 FieldByName(«peredkomu»).AsString:=edPeredkomu.Text;
                                 FieldByName(«commentmemo»).AsString:=edCommentmemo.Text;
                                 Post;
                                 finally
                                 IBDataSetJOTKL.Active:=False;
                                 end;
                               end;

                        В чем проблема?


                         
                        ANB ©
                         
                        (2006-06-01 08:28)
                        [1]

                        Заполни свойство InsertSQL


                         
                        dolmat
                         
                        (2006-06-01 09:03)
                        [2]


                        > Ругается на строке с
                        > FieldByName(«npp»).AsInteger:=StrToInt(edNpp.Text);

                        Возможно для этого лучше генератор привязать


                         
                        Sergey13 ©
                         
                        (2006-06-01 09:05)
                        [3]

                        >Делаю все по книжке вот так:
                        Выкинь такую книжку или почитай внимательнее. ИМХО.
                        Зачем открывать датасет только для того что бы вставить одну запись!


                         
                        Muzzy
                         
                        (2006-06-01 11:39)
                        [4]

                        >> Заполни свойство InsertSQL
                        А что там написать-то?
                        INSERT и иже с ним? А зачем тогда FieldByName ?


                         
                        Sergey13 ©
                         
                        (2006-06-01 11:41)
                        [5]

                        2 [4] Muzzy   (01.06.06 11:39)
                        >А что там написать-то?
                        Похоже, прежде чем написать что то, тебе придется еще многое прочитать. ИМХО.


                         
                        Muzzy
                         
                        (2006-06-01 12:03)
                        [6]

                        > Похоже, прежде чем написать что то, тебе придется еще многое прочитать. ИМХО.
                        Да читал я. Тогда уж проще через IBSQL. Но хотелось-то попроще, через DataSet. Ну подскажите че написать-то поля-то в коде есть. И вопрос-то в другом. Почему недает вставить запись? Ладно если другая ошибка, дело-то в этом.


                         
                        Muzzy
                         
                        (2006-06-01 12:07)
                        [7]

                        Ну подскажите идиоту где еще порыть. Прогу срочно делать надо. Простая ведь. Того и надо, что записи вствлять.
                        Вот и база:

                        CREATE TABLE «JOTKL»
                        (
                         «npp» INTEGER,
                         «fidname» VARCHAR(64),
                         «dateotkl» DATE,
                         «timeotkl» TIME,
                         «datevkl» DATE,
                         «timevkl» TIME,
                         «lengthotkl» TIME,
                         «priotkl» VARCHAR(254),
                         «npo» VARCHAR(254),
                         «katpotr» VARCHAR(12),
                         «klassif» SMALLINT,
                         «nedootp» SMALLINT,
                         «datepered» DATE,
                         «timepered» TIME,
                         «peredkomu» VARCHAR(64),
                         «commentmemo» VARCHAR(254)
                        );


                         
                        Сергей М. ©
                         
                        (2006-06-01 12:11)
                        [8]

                        Замени IBDataset на IBTable и не мучайся.


                         
                        Muzzy
                         
                        (2006-06-01 12:11)
                        [9]

                        Было в FAQ, но что это и куда пихать???

                        http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988623447&n=14


                         
                        Sergey13 ©
                         
                        (2006-06-01 12:12)
                        [10]

                        2[6] Muzzy   (01.06.06 12:03)
                        > Да читал я.
                        Да ладно заливать то. 8-)

                        >Ну подскажите че написать-то
                        В данном случае ничего и писать то не надо. Надо кликнуть правой кнопкой на датасете и в редакторе правильно указать ключевые и обновляемые поля, после чего сгенерировать (кнопку нажать) модифицирующие запросы.


                         
                        Muzzy
                         
                        (2006-06-01 12:15)
                        [11]


                        > В данном случае ничего и писать то не надо. Надо кликнуть
                        > правой кнопкой на датасете и в редакторе правильно указать
                        > ключевые и обновляемые поля, после чего сгенерировать (кнопку
                        > нажать) модифицирующие запросы.

                        Блин! А про это в книжке не сказано!


                         
                        Muzzy
                         
                        (2006-06-01 13:38)
                        [12]


                        > В данном случае ничего и писать то не надо. Надо кликнуть
                        > правой кнопкой на датасете и в редакторе правильно указать
                        > ключевые и обновляемые поля, после чего сгенерировать (кнопку
                        > нажать) модифицирующие запросы.

                        Ну сгенерил, вот что получилось:

                        insert into JOTKL
                         (npp, fidname, dateotkl, timeotkl, datevkl, timevkl, lengthotkl, priotkl,
                          npo, katpotr, klassif, nedootp, datepered, timepered, peredkomu, commentmemo)
                        values
                         (:npp, :fidname, :dateotkl, :timeotkl, :datevkl, :timevkl, :lengthotkl,
                          :priotkl, :npo, :katpotr, :klassif, :nedootp, :datepered, :timepered,
                          :peredkomu, :commentmemo)

                        Выдает:
                        Column unknow NPP»
                        SQL error code = -206.

                        И что дальше?


                         
                        Desdechado ©
                         
                        (2006-06-01 13:41)
                        [13]

                        судя по скрипту таблицы — БД в 3-м диалекте
                        а в нем важен регистр символов для имен, если они стоят в кавычках
                        поэтому нет поля NPP, но есть «npp»
                        подправь INSERT кавычками для полей


                         
                        dolmat
                         
                        (2006-06-02 09:30)
                        [14]

                        Возможно свойство Fieds не заполнено
                        Щелкнуть по IBDataset правой кнопкой мышки, выбрать Fiels editor, потом тойже кнопкой мышки Add All ..


                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                        10
                        11
                        12
                        13
                        14
                        15
                        16
                        17
                        18
                        19
                        20
                        21
                        22
                        23
                        24
                        25
                        26
                        27
                        28
                        29
                        30
                        31
                        32
                        33
                        34
                        35
                        36
                        37
                        38
                        39
                        40
                        41
                        42
                        43
                        44
                        45
                        46
                        47
                        48
                        49
                        50
                        51
                        52
                        53
                        54
                        55
                        56
                        57
                        58
                        59
                        60
                        61
                        62
                        63
                        64
                        65
                        66
                        67
                        68
                        69
                        70
                        71
                        72
                        73
                        74
                        75
                        76
                        77
                        78
                        79
                        80
                        81
                        82
                        83
                        84
                        85
                        86
                        87
                        88
                        89
                        90
                        91
                        92
                        93
                        94
                        95
                        96
                        97
                        98
                        99
                        100
                        101
                        102
                        103
                        104
                        105
                        106
                        107
                        108
                        109
                        110
                        111
                        112
                        113
                        
                        unit obiekt;
                         
                        interface
                         
                        uses
                          Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
                          Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, inifiles,
                          Vcl.Buttons, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.Menus, Data.DB, IBX.IBDatabase,
                          IBX.IBCustomDataSet, IBX.IBQuery;
                         
                        type
                          Tf_ned = class(TForm)
                            PageControl1: TPageControl;
                            Panel1: TPanel;
                            TabSheet1: TTabSheet;
                            TabSheet2: TTabSheet;
                            TabSheet3: TTabSheet;
                            Panel2: TPanel;
                            Panel3: TPanel;
                            BitBtn1: TBitBtn;
                            BitBtn2: TBitBtn;
                            BitBtn3: TBitBtn;
                            BitBtn4: TBitBtn;
                            DBGrid1: TDBGrid;
                            IBDatabase1: TIBDatabase;
                            IBQuery1: TIBQuery;
                            DataSource1: TDataSource;
                            IBTransaction1: TIBTransaction;
                            IBTransaction2: TIBTransaction;
                            IBQuery2: TIBQuery;
                            procedure FormShow(Sender: TObject);
                            procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
                            procedure BitBtn1Click(Sender: TObject);
                          private
                          FNew: boolean;
                          public
                            { Public declarations }
                          end;
                         
                        var
                          f_ned: Tf_ned;
                         
                        implementation
                         
                        {$R *.dfm}
                         
                        uses add_arenda;
                         
                         
                        procedure Tf_ned.BitBtn1Click(Sender: TObject);
                        begin
                        f_add_arenda.Show;
                        FNew:=true;
                          try
                            with IBQuery2 do
                            begin
                              if FNew then
                                SQL.Text := 'execute procedure PROC_ZHIL(-1, ''' + f_add_arenda.Edit1.Text + ''', ' + f_add_arenda.Edit2.Text + ', ''' +
                                f_add_arenda.Edit3.Text + ''', ' + f_add_arenda.Edit4.Text + ', ' + f_add_arenda.Edit5.Text + ', ' + f_add_arenda.Edit6.Text + ', ''' +
                                f_add_arenda.Edit7.Text + ''', ''' + f_add_arenda.Edit8.Text + ''', ' + f_add_arenda.Edit9.Text + ''', ' + f_add_arenda.Edit10.Text + ''', ''' +
                                f_add_arenda.Edit11.Text + ''', ' + f_add_arenda.Edit12.Text + ', ''' + f_add_arenda.Edit13.Text + ''')'
                            else
                                SQL.Text := 'execute procedure PROC_ZHIL('+f_ned.IBQuery1.FieldByName('ID').AsString + ', ''' + f_add_arenda.Edit1.Text + ''', ' +
                                f_add_arenda.Edit2.Text + ', ''' +
                                f_add_arenda.Edit3.Text + ''', ' + f_add_arenda.Edit4.Text + ', ' + f_add_arenda.Edit5.Text + ', ' + f_add_arenda.Edit6.Text + ', ''' +
                                f_add_arenda.Edit7.Text + ''', ''' + f_add_arenda.Edit8.Text + ''', ' + f_add_arenda.Edit9.Text + ''', ' + f_add_arenda.Edit10.Text + ''', ''' +
                                f_add_arenda.Edit11.Text + ''', ' + f_add_arenda.Edit12.Text + ', ''' + f_add_arenda.Edit13.Text + ''')';
                                Transaction.StartTransaction;
                                ExecSQL;
                                Transaction.Commit;
                                Transaction.Active:=false;
                            end;
                            IBQuery1.Close;
                            IBQuery1.Open;
                          except
                            if IBQuery2.Active then
                              IBQuery2.Transaction.Rollback;
                          end;
                        end;
                         
                        procedure Tf_ned.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
                        begin
                        IBQuery1.Close;
                        IBDatabase1.Connected:=false;
                        end;
                         
                        procedure Tf_ned.FormShow(Sender: TObject);
                        var
                          FIniFile: TIniFile;
                        begin
                            try
                          FIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'config.ini');
                          try
                          IBDatabase1.DatabaseName := FIniFile.ReadString('Base', 'Path', '');
                          finally
                          FInifile.Free;
                          end;
                          IBDatabase1.Connected :=true;
                          with IBQuery1 do
                          begin
                            SQL.Text:='select * from zhilie';
                            Open;
                          end;
                            except
                              on E:Exception do
                               begin
                                 Application.MessageBox(PChar(E.Message), 'Ошибка', MB_ICONERROR);
                                 Halt;
                               end;
                        end;
                          end;
                         
                        end.


                        Форум программистов Vingrad

                        Поиск:

                        Ответ в темуСоздание новой темы
                        Создание опроса
                        > Cannot modify a read-only dataset Ошибка 

                        V

                           

                        Опции темы

                        Иван Человеков
                        Дата 5.5.2006, 19:57 (ссылка)
                        | (нет голосов)
                        Загрузка ... Загрузка …




                        Быстрая цитата

                        Цитата

                        Бывалый
                        *

                        Профиль
                        Группа: Участник
                        Сообщений: 235
                        Регистрация: 11.3.2006
                        Где: Минск

                        Репутация: нет
                        Всего: 1

                        BDE, Paradox.
                        Вот такой код:

                        автор    

                        Код

                        if not QFirms.Locate('name','',[]) then//Если нет пустой записи 
                        begin //Вставляем новую запись
                        QFirms.Insert;
                        QFirms.FieldByName('name').AsString:='';
                        QFirms.FieldByName('adress').AsString:='';
                        QFirms.FieldByName('unp').AsString:='';
                        QFirms.FieldByName('rs').AsString:='';
                        QFirms.FieldByName('bank').AsString:='';
                        QFirms.FieldByName('code').AsString:='';
                        QFirms.FieldByName('activ').AsBoolean:=false;
                        QFirms.FieldByName('bankID').AsString:=''; 
                        QFirms.Post;
                        end;

                        На Insert вылетает с ошибкой: «QFirms. Cannot modify a read-only dataset».
                        RequestLive=true.

                        Подскажите пожалуйста, что неверно. Спасибо. 

                        PM ICQ   Вверх
                        Fazil6
                        Дата 5.5.2006, 20:23 (ссылка)
                        | (нет голосов)
                        Загрузка ... Загрузка …




                        Быстрая цитата

                        Цитата

                        Эксперт
                        ***

                        Профиль
                        Группа: Завсегдатай
                        Сообщений: 1653
                        Регистрация: 3.5.2006
                        Где: Минск

                        Репутация: 1
                        Всего: 60

                        какой запрос у  QFirms? ORDER BY там нет? 

                        PM MAIL   Вверх
                        Иван Человеков
                        Дата 5.5.2006, 20:54 (ссылка)
                        | (нет голосов)
                        Загрузка ... Загрузка …




                        Быстрая цитата

                        Цитата

                        Бывалый
                        *

                        Профиль
                        Группа: Участник
                        Сообщений: 235
                        Регистрация: 11.3.2006
                        Где: Минск

                        Репутация: нет
                        Всего: 1

                        Fazil6,  ORDER BY убрал и получилось. Неужели в этом причина? 

                        PM ICQ   Вверх
                        Fazil6
                        Дата 5.5.2006, 21:08 (ссылка)
                        | (нет голосов)
                        Загрузка ... Загрузка …




                        Быстрая цитата

                        Цитата

                        Эксперт
                        ***

                        Профиль
                        Группа: Завсегдатай
                        Сообщений: 1653
                        Регистрация: 3.5.2006
                        Где: Минск

                        Репутация: 1
                        Всего: 60

                        Цитата
                        Single-table queries

                        Queries that retrieve data from a single table are updatable provided that:

                        There is no DISTINCT key word in the SELECT.
                            Everything in the SELECT clause is a simple column reference or a calculated column, no aggregation is allowed. Calculated columns remain read-only.
                            The table referenced in the FROM clause is an updatable base table.
                            There is no GROUP BY or HAVING clause.
                            There are no subqueries in the statement.
                            There is no ORDER BY clause.

                         

                        PM MAIL   Вверх
                        Иван Человеков
                        Дата 5.5.2006, 21:08 (ссылка)
                        | (нет голосов)
                        Загрузка ... Загрузка …




                        Быстрая цитата

                        Цитата

                        Бывалый
                        *

                        Профиль
                        Группа: Участник
                        Сообщений: 235
                        Регистрация: 11.3.2006
                        Где: Минск

                        Репутация: нет
                        Всего: 1

                        Fazil6,  спасибо в LOCALSQL.HLP нашёл smile 
                        Cпасибо за помощь smile

                        P.S. Если кому понадобится:

                        Код

                        Definition...

                        Single-table queries

                        Queries that retrieve data from a single table are updatable provided that:

                        There is no DISTINCT key word in the SELECT.
                            Everything in the SELECT clause is a simple column reference or a calculated column, no aggregation is allowed. Calculated columns remain read-only.
                            The table referenced in the FROM clause is an updatable base table.
                            There is no GROUP BY or HAVING clause.
                            There are no subqueries in the statement.
                            There is no ORDER BY clause.

                        The read-only effect of an ORDER BY clause is negated and the query updatable if the ORDER BY clause uses a single column and there is a dBASE single-column primary or secondary index based on that same field. dBASE compound (expression) indexes will not negate the read-only effect of an ORDER BY clause. A Paradox single- or multi-field primary index will make the query updatable if the ORDER BY uses exactly the same columns (in the same order) as the index. Paradox secondary indexes will not negate the read-only effect of an ORDER BY clause.

                        Multi-table queries

                        All queries that join two or more tables will produce a read-only result set.

                        Calculated fields

                        For updateable queries with calculated fields, an additional field property identifies a result field as both read-only and calculated. Every call to the BDE function DbiPutField causes recalculation of any dependent fields.

                        Добавлено @ 21:08 
                        Одновременно получилось smile

                        PM ICQ   Вверх



















                        Ответ в темуСоздание новой темы
                        Создание опроса
                        Правила форума «Delphi: Базы данных и репортинг»
                        Vit
                        Петрович

                        Запрещено:

                        1. Публиковать ссылки на вскрытые компоненты

                        2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

                        Обязательно указание:

                        1. Базы данных (Paradox, Oracle и т.п.)

                        2. Способа доступа (ADO, BDE и т.д.)

                        • Литературу по Дельфи обсуждаем здесь
                        • Действия модераторов можно обсудить здесь
                        • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
                        • Вопросы по реализации алгоритмов рассматриваются здесь
                        • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
                        • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

                        FAQ раздела лежит здесь!


                        Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

                         

                        0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
                        0 Пользователей:
                        « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

                        Like this post? Please share to your friends:
                      • Ошибка cant create register key
                      • Ошибка cannot load image
                      • Ошибка canon mp250 006
                      • Ошибка cannot load asacpi dll
                      • Ошибка cannot load android system