На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Возникает ошибка не могу найти решение , Не могу добавить в базу данные...
    При добавлении данных на стадии insert возникает ошибка.
    Проект прилагаю
    В SKLAD_ADD
    начало модуля dm2.SKLAD_IN.insert

    В проекте используется библиотека rz rx и ehlib
    Прикреплённый файлПрикреплённый файлs.rar (32,77 Кбайт, скачиваний: 146)
    Сообщение отредактировано: DeZik -
      Ошибка какая?
        DataSet not edit or insert mode

        Переключался между видами доступа - 0 эмоций
          Есть ли весомая причина не юзать DB controls?
          Есть ли весомая причина добавлять все поля в дизайн-тайм и обращаться к ним как к объектам вместо dataset.FieldByName?
            Цитата Fr0sT @
            Есть ли весомая причина не юзать DB controls?


            Точнее про что идет речь - не могу понять

            Цитата Fr0sT @
            Есть ли весомая причина добавлять все поля в дизайн-тайм и обращаться к ним как к объектам вместо dataset.FieldByName?


            Да есть.

            Поэтому и возникает вопрос. Интересует вопрос откуда проблема и как решить, а не как изменить всю программу для правильного функционирования данного модуля.

            ПРИЧЕМ ДОБАВЛЮ.
            После возникновения ошибки запись добавляется, но пустая....

            Даже при конструкции
            ExpandedWrap disabled
                try
                dm2.ASKLAD_IN.Insert;
                dm2.ASKLAD_INDATE.AsDateTime:=SKLAD_ADD.DateEdit1.Date;
                dm2.ASKLAD_INKOL.AsFloat:=SKLAD_ADD.CurrencyEdit1.Value;
                dm2.ASKLAD_IN.Post;
                except
                messagebox(Sklad_add.Handle,'Запись не добавлена','Внимание',0);
                end;

            выводит сообщение об ошибке, а пустая запись добавляется. (в D7 ошибка та-же)
            Сообщение отредактировано: DeZik -
              Цитата DeZik @
              Точнее про что идет речь - не могу понять

              Классы вида TDB<control_name>
              Цитата DeZik @
              Интересует вопрос откуда проблема и как решить, а не как изменить всю программу для правильного функционирования данного модуля.

              Ой, там "всей программы"-то - две с половиной строчки. Впрочем, дело хозяйское.
              Почему у тебя не работает - не знаю. Попробовал у себя:
              ExpandedWrap disabled
                  IBTable1.Insert;
                  IBTable1SUBJECT.AsString := 'blabla';
                  IBTable1.Post;

              всё ОК. Твой проект запустить нет возможности по причине юзания левых компонент-паков
                Цитата Fr0sT @
                Ой, там "всей программы"-то - две с половиной строчки.

                Это вырубка для теста.

                Цитата Fr0sT @
                Твой проект запустить нет возможности по причине юзания левых компонент-паков

                отключи левые компонент паки - можешь запустить т.к. они за визуальность отвечают, а ее тма не надо.

                Ib не ставил - однозадачна система. Еще раз акцентирую = нужно найти ошибку и решить проблему, а не переписать всю прогу с "0".

                Добавлено
                Как не странно следующий код работает
                ExpandedWrap disabled
                    try
                    dm2.ASKLAD_IN.Insert;
                    except
                    end;
                    try
                    dm2.ASKLAD_IN.Edit;
                    dm2.ASKLAD_INDATE.AsDateTime:=SKLAD_ADD.DateEdit1.Date;
                    dm2.ASKLAD_IN.Post;
                    except
                    end;


                А дальше как не знаю....
                Сообщение отредактировано: DeZik -
                  Поставьте брякпойнты везде, выясните в какой строке таки возникает ошибка. Происходит присваивание в поле, а датасет почему-то вышел или ещё не вошёл в режим редактирования.
                  Создайте пустые BeforePost и AfterPost. Это позволит более точно понять место ошибки
                    Цитата Игорь Акопян @
                    Поставьте брякпойнты везде, выясните в какой строке таки возникает ошибка.

                    Цитата DeZik @
                    При добавлении данных на стадии insert возникает ошибка.

                    Цитата Игорь Акопян @
                    Создайте пустые BeforePost и AfterPost. Это позволит более точно понять место ошибки

                    Все попробовал ничего не помогает, поэтому и обратился сюда
                      Цитата DeZik @
                      отключи левые компонент паки - можешь запустить т.к. они за визуальность отвечают, а ее тма не надо.

                      Я про rz, на котором у тебя все лейблы
                      Цитата DeZik @
                      Это вырубка для теста

                      Если уж делаешь тест, делай его без левых компонентов. Иначе зачем выкладывать проект
                      Цитата DeZik @
                      Как не странно следующий код работает

                      Edit после Insert ничего не делает, странно, что это работает...

                      Добавлено
                      Хм. Попробовал базу Аксесс + Адоконнекшен + код

                      ADOTable1.Insert;
                      ADOTable1stat.AsString := 'blabla';
                      ADOTable1.Post;

                      - выдает ошибку "Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний."
                      Сообщение отредактировано: Fr0sT -
                        Цитата DeZik @
                        При добавлении данных на стадии insert возникает ошибка.


                        стадия инсерт это не то что я спросил...
                        Прямо на строке Insert?

                        поддерживаю выкладку без РЗ :)
                          Загуглил, это, судя по всему, у АДО такие заморочки
                            Цитата Игорь Акопян @
                            Прямо на строке Insert?

                            Да
                            Цитата Fr0sT @
                            - выдает ошибку "Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний."

                            Не, там все норально и никаких проблем с
                            Цитата Fr0sT @
                            Загуглил, это, судя по всему, у АДО такие заморочки

                            нет

                            Выложу без RZ завтра
                            Сообщение отредактировано: DeZik -
                              Вот без украшательств....
                              Попробуйте выполнить - убрал даже всю функциональность
                              Прикреплённый файлПрикреплённый файлss.rar (22,84 Кбайт, скачиваний: 144)
                                В самом деле, глюк. Пока удалось обнаружить, что проблема в lookup поле CENA
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0707 ]   [ 20 queries used ]   [ Generated: 27.07.25, 23:24 GMT ]