MrHitman47 35 / 35 / 4 Регистрация: 23.05.2011 Сообщений: 201 Записей в блоге: 1 |
||||
1 |
||||
Произошла ошибка во время выполнения многошаговой операции08.11.2011, 16:00. Показов 6428. Ответов 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 |
|
|
|
Возникает ошибка не могу найти решение
, Не могу добавить в базу данные…
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
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,0566 ] [ 20 queries used ] [ Generated: 6.06.23, 13:14 GMT ]
Доброго дня!
Имеется база на Аccess, в базе три таблицы. Решалась задача заполнения одной таблицы данными из двух других. Решалась средствами ADO Delphi. На ADOConnection висят соответственно три ADOTable, ADOSource и DBGrid. На OnDblClick в DBGrid повесил процедуру для взятия данных из двух таблиц по условиям и помещения их в целевую таблицую. Где-то 4-5 раз клацаю, данные переносятся, всё путём отрабатывает. Далее вылетает ошибка:
«Произошли ошибки во время выполнения многошаговой операции. Проверьте значение всех состояний»
В и-нете ничего путного не нарыл. Буду искать ещё, но может кто-то уже сталкивался? Есть ли простые решения?
← →
{AleX}
(2006-03-20 19:20)
[0]
При попытки добавить в таблицу запись вылетает ошибка
«EOleException Произошла ошибка во время выполнения многошаговой операции, проверти значения всех состояний»
Причем ошиба вылетает на ADOTable.post;
После этого ADOTable не соединяется с таблицей, пишет
«Поставщик данных или друга служба вернули состояние E_FAIL»
Если потом открыть базу, то там появляется запись которую пытались добавить. и удалить ее, то после этого ADO нормально опять соединяется.
Я уже все перерыл и все перепробывал. так не нашел что за ошибка
← →
sniknik ©
(2006-03-20 20:49)
[1]
> EOleException Произошла ошибка во время выполнения многошаговой операции, проверти значения
> всех состояний»
ну и проверь. проблема в строке коннекта, либо ошибочный параметр, либо параметр правильный но у него нет «связи с системой» (например драйвер не установлен, а переписан, «зарегистрен» но не весь/неправильно)
> Я уже все перерыл и все перепробывал.
не ври. все. ты еще не пробовал пользоваться нормальными компонентами вместо ADOTable.
← →
tesseract ©
(2006-03-20 21:54)
[2]
> «Поставщик данных или друга служба вернули состояние E_FAIL»
Ну тебе же OLe говорит что, что то не так передал.
← →
{AleX}
(2006-03-20 22:04)
[3]
Программа одновремменно разрабатывалась на 2 системах. Так что ошибки с подключением не может быть. Темболее я все пробывал заново переставить. все тоже самое. (удалял те компоненты, ставил новые) И все повторялось.
Канечно Надо было сразу начинать с ADOQuery, но теперь переписывать все под него нету времени.
← →
tesseract ©
(2006-03-20 22:12)
[4]
> Канечно Надо было сразу начинать с ADOQuery, но теперь переписывать
> все под него нету времени.
Да не большая разница. Качаешь Db-aware под Mysql а не ODBC драйвер используешь и всё.
← →
{AleX}
(2006-03-20 22:45)
[5]
Db-aware — а можно попдробней.
Я видел много компонентов для работы с MySQL, но все они платные,
если есть у кого ссылки на бесплатные, скинте — rrew@nm.ru — заранее спасибо.
а вообще хочется всетаки докопаться до истины, и узнать в чем проблема
← →
tesseract ©
(2006-03-20 22:49)
[6]
1-й Dbexpress но у некоторых проблемы с libmysql.
далее смотрим — http://torry.net/pages.php?id=1170
← →
{AleX}
(2006-03-20 22:54)
[7]
dbExpress пробывал тот что в поставку входин, но он требует libmysql, я только куда не пробывал засунуть это библиотеку, он ее всеравно не видет
а на торри там все платное, что мне более менее подходит
← →
tesseract ©
(2006-03-20 22:59)
[8]
Да только-что там видел 3 бесплатных компонента (правда не знаю насколько они подойдут).
← →
sniknik ©
(2006-03-21 02:28)
[9]
> … Так что ошибки с подключением не может быть. …
ну да. конечно. верю…
а мелкософт «гонит лажу», они же там нифига не соображают…
http://support.microsoft.com/kb/269495/
> Надо было сразу начинать с ADOQuery
надо начинать с ADODataSet, а не с борландовских «костыликов» для «сросшихся» с BDE…
> а вообще хочется всетаки докопаться до истины, и узнать в чем проблема
посмотри в зеркало, большинство проблем отражается в нем.
← →
kilonet ©
(2006-03-21 18:19)
[10]
sniknik
> ты еще не пробовал пользоваться нормальными
> компонентами вместо ADOTable
Что за нормальные компоненты?
> надо начинать с ADODataSet
а как до него добраться?
← →
{AleX}
(2006-03-21 18:25)
[11]
Проблема так и не решена, кто нибуть может подсказать подсказать решение?
← →
{AleX}
(2006-03-22 09:41)
[12]
up
← →
ivb2001
(2006-03-22 12:10)
[13]
Т.к. ошибка при Postе, то скорее всего я посмотрел бы на таблицы и их связи между собой. Возможно там есть поля, не допускающие Null значения для которых не указаны dEFAULT VALUES или поля связанные с другой таблицей по принципу MASTER-DETAIL соджержат неверные или Null значения или что-то в этом роде… Сообщения часто не имеют отношения к ошибке.
TADODataSet — стандартный D7-компонент. Находится в 7-м Delphi на закладке ADO рядом с ADOtable и ADOquery
to Shiknik: Ни AdoTable ни AdoQuery к BDE отношения не имеют
← →
sniknik ©
(2006-03-22 12:29)
[14]
> to Shiknik: Ни AdoTable ни AdoQuery к BDE отношения не имеют
ну прямо божественное откровение…
однако ты ошибаешся, их делали (и в хелпе дельфи 5/6 версии, не скажу точно, это написано. в 7м убрали (ненахожу)) «для облегчения перехода с BDE, с «родных» борланловских компонент», «идея» видимо состояла в том, чтобы при переводе програм юзающих BDE на ADO было достаточно сменить декларацию с TTable на TADOTable…
правда получилось довольно убого (слишком разные технологии), но тем не менее BDE-ые компоненты (Table,Query,StoredProc) можно считать «идеологическими родителями» для одноименных с приставкой Ado вначале.
← →
ivb2001 ©
(2006-03-22 12:53)
[15]
to Shiknik. Согласен. У них много похожего и это неизбежно, ибо Borland был необходим плавный отход от BDE. Но, как говорил Райкин, «родилИ, на том спасибо». И теперь ADO — это часть MDAC-технологии (Microsoft Data Access Component). Кроме ADO, к ней относятся OLE DB, ODBC, Remote Data Services (RDS). Так что все вопросы по ADO теперь к тов. Б.Гейтсу. Кстати у них на сайте есть всякая хрень по этому поводу (типа MDAC SDK)
← →
sniknik ©
(2006-03-22 13:21)
[16]
> «родилИ, на том спасибо». И теперь ADO — это часть MDAC
не теперь, а всегда, ADO не родилось из BDE (как можно понять из [15]) оно изначально было самостоятельным. а компоненты это не само адо (вот уж чего не надо путать)
и вот эти компоненты были сделаны «притягиванием за уши» свойств/методов из BDE-шных. (большая ошибка борланда была делать их, ИМХО. уже столько начинающих(и даже не очень) шишек себе ими понабивало…)
← →
ivb2001 ©
(2006-03-22 14:59)
[17]
И TTable и TADODataSet являются потомками TDataSet, наследуют его начинку и дополняют своими методами и свойствами. Класс описывает поведение и характеристики объекта (в нашем случае НАБОР ДАННЫХ) не зависимо от их источника. Дело не в свойствах и методах, а в их реализации. И если они реализованы с ошибками,то это не значит ,что компонент плохой, а просто руки у его создателя кривые. Аналогично, если физическая реализация доступа к данным, содержит ошибки, то неважно BDE это или OLE DB провайдер от MDAC со своими драйверами, для программера ничем хорошим, кроме геморроя это не грозит (всем известно, как грохаются индексы у Paradox-таблиц под BDE, хотя Paradox — родная для Borlanda).
Подключение к базе .dbf производится с помощью ADO компонентов, ADOConnection1, ADOTable1, DataSource1, при выборе таблицы TableName появляется это ошибка… не могу понять из за чего.
Если кто сталкивался с этой проблемой объясните пожалуйста как решить….
-
Вопрос заданболее трёх лет назад
-
1195 просмотров