Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO&MySQL [D7, MySQL]


{AleX} ©   (2006-03-20 19:20:00) 

При попытки добавить в таблицу запись вылетает ошибка

"EOleException Произошла ошибка во время выполнения многошаговой операции, проверти значения всех состояний"
Причем ошиба вылетает на ADOTable.post;

После этого ADOTable не соединяется с таблицей, пишет

"Поставщик данных или друга служба вернули состояние E_FAIL"

Если потом открыть базу, то там появляется запись которую пытались добавить. и удалить ее, то после этого ADO нормально опять соединяется.

Я уже все перерыл и все перепробывал. так  не нашел что за ошибка


ivb2001   (2006-03-22 14:59:00) [1]

И TTable и TADODataSet являются потомками TDataSet, наследуют его начинку и дополняют своими методами и свойствами. Класс описывает поведение и характеристики объекта (в нашем случае НАБОР ДАННЫХ) не зависимо от их источника. Дело не в свойствах и методах, а в их реализации. И если они реализованы с ошибками,то это не значит ,что компонент плохой, а просто руки у его создателя кривые. Аналогично, если физическая реализация доступа к данным, содержит ошибки, то неважно BDE это или OLE DB провайдер от MDAC со своими драйверами, для программера ничем хорошим, кроме геморроя это не грозит (всем известно, как грохаются индексы у Paradox-таблиц под BDE, хотя Paradox - родная для Borlanda).


sniknik   (2006-03-22 13:21:00) [2]

> "родилИ, на том спасибо". И теперь ADO - это часть MDAC
не теперь, а всегда, ADO не родилось из BDE (как можно понять из [15]) оно изначально было самостоятельным. а компоненты это не само адо (вот уж чего не надо путать)
и вот эти компонентыбыли сделаны "притягиванием за уши" свойств/методов из BDE-шных. (большая ошибка борланда была делать их, ИМХО. уже столько начинающих(и даже не очень) шишек себе ими понабивало...)


ivb2001   (2006-03-22 12:53:00) [3]

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 12:29:00) [4]

> to Shiknik: Ни AdoTable ни AdoQuery к BDE отношения не имеют
ну прямо божественное откровение... ;)
однако ты ошибаешся, их делали (и в хелпе дельфи 5/6 версии, не скажу точно, это написано. в 7м убрали (ненахожу)) "для облегчения перехода с BDE, с "родных" борланловских компонент", "идея" видимо состояла в том, чтобы при переводе програм юзающих BDE на ADO было достаточно сменить декларацию с TTable на TADOTable...
правда получилось довольно убого (слишком разные технологии), но тем не менее BDE-ые  компоненты (Table,Query,StoredProc) можно считать "идеологическими родителями" для одноименных с приставкой Ado вначале.


ivb2001   (2006-03-22 12:10:00) [5]

Т.к. ошибка при Postе, то скорее всего я посмотрел бы на таблицы и их связи между собой. Возможно там есть поля, не допускающие Null значения для которых не указаны dEFAULT VALUES или поля связанные с другой таблицей по принципу MASTER-DETAIL соджержат неверные или Null значения или что-то в этом роде... Сообщения часто не имеют отношения к ошибке.

TADODataSet - стандартный D7-компонент. Находится в 7-м Delphi на закладке ADO рядом с ADOtable и ADOquery

to Shiknik: Ни AdoTable ни AdoQuery к BDE отношения не имеют


{AleX}   (2006-03-22 09:41:00) [6]

up


{AleX}   (2006-03-21 18:25:00) [7]

Проблема так и не решена, кто нибуть может подсказать подсказать решение?


kilonet   (2006-03-21 18:19:00) [8]

sniknik

> ты еще не пробовал пользоваться нормальными
> компонентами вместо ADOTable

Что за нормальные компоненты?


> надо начинать с ADODataSet

а как до него добраться?


sniknik   (2006-03-21 02:28:00) [9]

> ... Так что ошибки с подключением не может быть. ...
ну да. конечно. верю...

а мелкософт "гонит лажу", они же там нифига не соображают...
http://support.microsoft.com/kb/269495/

> Надо было сразу начинать с ADOQuery
надо начинать с ADODataSet, а не с борландовских "костыликов" для "сросшихся" с BDE...

> а вообще хочется всетаки докопаться до истины, и узнать в чем проблема
посмотри в зеркало, большинство проблем отражается в нем.


tesseract   (2006-03-20 22:59:00) [10]

Да только-что там видел 3 бесплатных компонента (правда не знаю насколько они подойдут).


{AleX}   (2006-03-20 22:54:00) [11]

dbExpress пробывал тот что в поставку входин, но он требует libmysql, я только куда не пробывал засунуть это библиотеку, он ее всеравно не видет

а  на торри там все платное, что мне более менее подходит


tesseract   (2006-03-20 22:49:00) [12]

1-й Dbexpress :-) но у некоторых проблемы с libmysql.

далее смотрим - http://torry.net/pages.php?id=1170


{AleX}   (2006-03-20 22:45:00) [13]

Db-aware - а можно попдробней.

Я видел много компонентов для работы с MySQL, но все они платные,
если есть у кого ссылки на бесплатные, скинте - rrew@nm.ru - заранее спасибо.

а вообще хочется всетаки докопаться до истины, и узнать в чем проблема


tesseract   (2006-03-20 22:12:00) [14]


> Канечно Надо было сразу начинать с ADOQuery, но теперь переписывать
> все под него нету времени.

Да не большая разница. Качаешь Db-aware под Mysql а не ODBC драйвер используешь и всё.


{AleX}   (2006-03-20 22:04:00) [15]

Программа одновремменно разрабатывалась на 2 системах. Так что ошибки с подключением не может быть. Темболее я все пробывал заново переставить. все тоже самое. (удалял те компоненты, ставил новые) И все повторялось.

Канечно Надо было сразу начинать с ADOQuery, но теперь переписывать все под него нету времени.


tesseract   (2006-03-20 21:54:00) [16]


> "Поставщик данных или друга служба вернули состояние E_FAIL"

Ну тебе же OLe говорит что, что то не так передал.


sniknik   (2006-03-20 20:49:00) [17]

> EOleException Произошла ошибка во время выполнения многошаговой операции, проверти значения
> всех состояний"
ну и проверь. проблема в строке коннекта, либо ошибочный параметр, либо параметр правильный но у него нет "связи с системой" (например драйвер не установлен, а переписан, "зарегистрен" но не весь/неправильно)

> Я уже все перерыл и все перепробывал.
не ври. все. ты еще не пробовал пользоваться нормальными компонентами вместо ADOTable.


Наверх

Титульная страница Поиск, карта сайта Написать письмо