|
|
|
Возникает ошибка не могу найти решение
, Не могу добавить в базу данные…
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Junior Рейтинг (т): нет |
При добавлении данных на стадии insert возникает ошибка. В проекте используется библиотека rz rx и ehlib Сообщение отредактировано: DeZik — 03.08.11, 04:59 |
Bas |
|
Ошибка какая? |
DeZik |
|
Junior Рейтинг (т): нет |
DataSet not edit or insert mode Переключался между видами доступа — 0 эмоций |
Fr0sT |
|
Есть ли весомая причина не юзать DB controls? |
DeZik |
|
Junior Рейтинг (т): нет |
Цитата Fr0sT @ 03.08.11, 06:12 Есть ли весомая причина не юзать DB controls? Точнее про что идет речь — не могу понять Цитата Fr0sT @ 03.08.11, 06:12 Есть ли весомая причина добавлять все поля в дизайн-тайм и обращаться к ним как к объектам вместо dataset.FieldByName? Да есть. Поэтому и возникает вопрос. Интересует вопрос откуда проблема и как решить, а не как изменить всю программу для правильного функционирования данного модуля. ПРИЧЕМ ДОБАВЛЮ. Даже при конструкции
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 — 03.08.11, 07:32 |
Fr0sT |
|
Цитата DeZik @ 03.08.11, 06:56 Точнее про что идет речь — не могу понять Классы вида TDB<control_name> Цитата DeZik @ 03.08.11, 06:56 Интересует вопрос откуда проблема и как решить, а не как изменить всю программу для правильного функционирования данного модуля.
Ой, там «всей программы»-то — две с половиной строчки. Впрочем, дело хозяйское.
IBTable1.Insert; IBTable1SUBJECT.AsString := ‘blabla’; IBTable1.Post; всё ОК. Твой проект запустить нет возможности по причине юзания левых компонент-паков |
DeZik |
|
Junior Рейтинг (т): нет |
Цитата Fr0sT @ 03.08.11, 08:06 Ой, там «всей программы»-то — две с половиной строчки. Это вырубка для теста. Цитата Fr0sT @ 03.08.11, 08:06 Твой проект запустить нет возможности по причине юзания левых компонент-паков отключи левые компонент паки — можешь запустить т.к. они за визуальность отвечают, а ее тма не надо. Ib не ставил — однозадачна система. Еще раз акцентирую = нужно найти ошибку и решить проблему, а не переписать всю прогу с «0». Добавлено 03.08.11, 08:51
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 — 03.08.11, 08:51 |
Игорь Акопян |
|
Поставьте брякпойнты везде, выясните в какой строке таки возникает ошибка. Происходит присваивание в поле, а датасет почему-то вышел или ещё не вошёл в режим редактирования. |
DeZik |
|
Junior Рейтинг (т): нет |
Цитата Игорь Акопян @ 03.08.11, 10:09 Поставьте брякпойнты везде, выясните в какой строке таки возникает ошибка. Цитата DeZik @ 03.08.11, 04:58 При добавлении данных на стадии insert возникает ошибка. Цитата Игорь Акопян @ 03.08.11, 10:09 Создайте пустые BeforePost и AfterPost. Это позволит более точно понять место ошибки Все попробовал ничего не помогает, поэтому и обратился сюда |
Fr0sT |
|
Цитата DeZik @ 03.08.11, 08:10 отключи левые компонент паки — можешь запустить т.к. они за визуальность отвечают, а ее тма не надо. Я про rz, на котором у тебя все лейблы Цитата DeZik @ 03.08.11, 08:10 Это вырубка для теста Если уж делаешь тест, делай его без левых компонентов. Иначе зачем выкладывать проект Цитата DeZik @ 03.08.11, 08:10 Как не странно следующий код работает Edit после Insert ничего не делает, странно, что это работает… Добавлено 03.08.11, 10:22 ADOTable1.Insert; — выдает ошибку «Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний.» Сообщение отредактировано: Fr0sT — 03.08.11, 10:22 |
Игорь Акопян |
|
Цитата DeZik @ 03.08.11, 04:58 При добавлении данных на стадии insert возникает ошибка. стадия инсерт это не то что я спросил… поддерживаю выкладку без РЗ |
Fr0sT |
|
Загуглил, это, судя по всему, у АДО такие заморочки |
DeZik |
|
Junior Рейтинг (т): нет |
Цитата Игорь Акопян @ 03.08.11, 10:23 Прямо на строке Insert? Да Цитата Fr0sT @ 03.08.11, 10:15 — выдает ошибку «Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний.» Не, там все норально и никаких проблем с Цитата Fr0sT @ 03.08.11, 10:27 Загуглил, это, судя по всему, у АДО такие заморочки нет Выложу без RZ завтра Сообщение отредактировано: DeZik — 03.08.11, 10:30 |
DeZik |
|
Junior Рейтинг (т): нет |
Вот без украшательств…. |
Fr0sT |
|
В самом деле, глюк. Пока удалось обнаружить, что проблема в lookup поле CENA |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Базы данных
- Следующая тема
[ Script execution time: 0,0461 ] [ 20 queries used ] [ Generated: 21.06.23, 19:18 GMT ]
Доброго дня!
Имеется база на Аccess, в базе три таблицы. Решалась задача заполнения одной таблицы данными из двух других. Решалась средствами ADO Delphi. На ADOConnection висят соответственно три ADOTable, ADOSource и DBGrid. На OnDblClick в DBGrid повесил процедуру для взятия данных из двух таблиц по условиям и помещения их в целевую таблицую. Где-то 4-5 раз клацаю, данные переносятся, всё путём отрабатывает. Далее вылетает ошибка:
«Произошли ошибки во время выполнения многошаговой операции. Проверьте значение всех состояний»
В и-нете ничего путного не нарыл. Буду искать ещё, но может кто-то уже сталкивался? Есть ли простые решения?
MrHitman47 35 / 35 / 4 Регистрация: 23.05.2011 Сообщений: 201 Записей в блоге: 1 |
||||
1 |
||||
Произошла ошибка во время выполнения многошаговой операции08.11.2011, 16:00. Показов 6446. Ответов 4 Метки нет (Все метки)
Работаю в Delphi 2006 соединяюсь к базе MySQL 5.0… через ODBC драйвер 5.1 и при вод таком простом коде
выпадает вот такая страшная ошибка :
0 |
12 / 12 / 2 Регистрация: 30.10.2011 Сообщений: 59 |
|
08.11.2011, 16:47 |
2 |
Это скорее всего косяк ADO, сильно быстро вызываешь процедуру или тыкаешь по кнопке
0 |
6 / 6 / 0 Регистрация: 06.11.2011 Сообщений: 36 |
|
09.11.2011, 01:10 |
3 |
У меня как-то была такая же ошибка, косяк скрывался в запросе (ORDER BY…)
0 |
35 / 35 / 4 Регистрация: 23.05.2011 Сообщений: 201 Записей в блоге: 1 |
|
09.11.2011, 10:34 [ТС] |
4 |
не там нет ORDER BY, мне кажется я понял почему эта фигня появляется, там булеан заменяется на tinyint поэтому показует true как 255 хотя сам сервак показывает как -1 поэтому когда я когда ставлю
0 |
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,357 |
|
09.11.2011, 11:45 |
5 |
Напишите явно: И вообще не используйте AsVariant без необходимости (в данном случае такой необходимости не видно)
1 |
← →
TechnoDreamer
(2004-11-02 03:29)
[0]
Собственно прога выдает во время рунтайма следующее сообщение:
«Произошли ошибки во время выполнения многошаговой операции. Проверьте значение всех состояний». Происходит во время рекурсивной функции, насколько я вижу только в тех случаях где рекурсия большая. Я прав? Кто нибуть сталкивался?
Что делать? Может есть какая директива компилятору, типа там, стек увеличить или еще что, которая влияет на это?
Или придется убирать рекурсию? Жалко было бы, такая аккуратная функция получилась :-(((
← →
R ©
(2004-11-02 03:58)
[1]
А код привести можно.
← →
Defunct ©
(2004-11-02 04:30)
[2]
> «Произошли ошибки во время выполнения многошаговой операции. Проверьте значение всех состояний»
У тебя что русский Delphi? Неужели прямо так и пишет.
← →
Fay ©
(2004-11-02 06:36)
[3]
Переделай в цикл.
← →
KSergey ©
(2004-11-02 08:19)
[4]
Очеь похоже на сообщение от ADO… Оно используется?
← →
TechnoDreamer
(2004-11-02 18:29)
[5]
2R: Код довольно большой и связан с другими кусками.
2Fay: Видимо придется,хотя…
2KSergey: Да, адо используется, подскажешь в связи с чем ошибка?
Вообще, код делает следующее:
Есть дерево (TTreeView) и база на Access через ADO, в дереве хранятся названия категорий (возможны и подкатегории) и элементов, т.е. оно связано с базой (там две таблицы: категории и элементы, одно из полей название категории или элемента).
Рекурсивная функция для удаления категории, т.е. она смотрит, если нет дочерних элементов то удаляется запись в базе, и соответствующий элемент TTreeNode, в противном случае удаляется рекурсивно подкатегории и элементы.
На небольших ветках дерева работает прекрасно, а вот на более больших возникает эта ощибка (2Defunct, да так прям и пишет, это винда пишет, а не дельфи, и судя по постингу KSergey это пишет ADO).
← →
TechnoDreamer
(2004-11-02 18:29)
[6]
2R: Код довольно большой и связан с другими кусками.
2Fay: Видимо придется,хотя…
2KSergey: Да, адо используется, подскажешь в связи с чем ошибка?
Вообще, код делает следующее:
Есть дерево (TTreeView) и база на Access через ADO, в дереве хранятся названия категорий (возможны и подкатегории) и элементов, т.е. оно связано с базой (там две таблицы: категории и элементы, одно из полей название категории или элемента).
Рекурсивная функция для удаления категории, т.е. она смотрит, если нет дочерних элементов то удаляется запись в базе, и соответствующий элемент TTreeNode, в противном случае удаляется рекурсивно подкатегории и элементы.
На небольших ветках дерева работает прекрасно, а вот на более больших возникает эта ощибка (2Defunct, да так прям и пишет, это винда пишет, а не дельфи, и судя по постингу KSergey это пишет ADO).
← →
KSergey ©
(2004-11-03 12:57)
[7]
Однозначно тут сказать очень сложно.
Советую предпринять след. шаги:
1.Как я понимаю — все делается методами Delete/Post и т.п. Можно перейти на SQL-запросы на удаление/обновление. Во всяком случае эту проблему это решит однозначно.
2.Какая БД используется? Для MS SQL могу рассказать, про другие -не знаю. (к стати, приличные люди сразу это пишут, в вопросе)
3.В любом случае советую почитать все три части от
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=408
← →
TechnoDreamer
(2004-11-03 18:46)
[8]
//1.Как я понимаю — все делается методами Delete/Post и т.п. Можно перейти на SQL-запросы на удаление/обновление. Во всяком случае эту проблему это решит однозначно.//
Да, вы правы.
//2.Какая БД используется? Для MS SQL могу рассказать, про другие -не знаю. (к стати, приличные люди сразу это пишут, в вопросе)//
Я говорил:
//Есть дерево (TTreeView) и база на Access через ADO//
← →
KSergey ©
(2004-11-04 06:53)
[9]
> Я говорил:
> //Есть дерево (TTreeView) и база на Access через ADO//
Прошу прощения, просмотрел.
Тогда, думаю, приведенная мною ссылка должна помочь — там именно про Access и очень много. (только читать все 3 части)
← →
Erik1 ©
(2004-11-04 10:31)
[10]
Вобщето стоит перейти на DOA, это избавить от дополнительной прослойуи в лице ADO и повысит скорость работы. Я советую компоненты diamond www.islamov.com Кое что даже сам правил, но назнаю включил ли он это в свою версию.
Форум программистов Vingrad
Поиск: |
|
ошибки во время многошаговой операции |
Опции темы |
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
Использую Ado, бд Oracle. with adoquery2 do Возникает ошибка: |
||
|
|||
Akella |
|
||
Творец Профиль
Репутация: 29
|
Petro123, а что гугл ответил? Добавлено через 38 секунд Добавлено через 1 минуту и 6 секунд |
||
|
|||
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
Ну да только толкового нету ничего… Это сообщение отредактировал(а) Petro123 — 1.12.2008, 08:29 |
||
|
|||
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
Блин переписал запрос в виде |
||
|
|||
Akella |
|
||
Творец Профиль
Репутация: 29
|
а chr(39) зачем? |
||
|
|||
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
апостроф |
||
|
|||
Akella |
|
||
Творец Профиль
Репутация: 29
|
И зачем он там? По-моему он там не нужен был. sql.Text:= |
||
|
|||
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
разве строки в апострофы не нужно сажать? |
||
|
|||
Akella |
|
||
Творец Профиль
Репутация: 29
|
смотря что, названия полей или их значения, если значения строковых полей, то для читабельности кода лучше использовать
|
||
|
|||
Petro123 |
|
||
Опытный Профиль Репутация: нет
|
Ясно, спасибо |
||
|
|||
|
Правила форума «Delphi: Базы данных и репортинг» | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |