C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MySQL ADO
Michail
  Отправлено: 21.06.2004, 17:09


Не зарегистрирован







постоянная ошибка "E_FAIL" при обработке запроса через ADOQuery

AnsiString sql_string="select * from ";
sql_string+=ComboBox->Items->Strings[ComboBox->ItemIndex];
sql_string+=";";
ADOQuery->SQL->Add(sql_string);
ADOQuery->Open();

после чего, при обращении к RecordCount, ... и т.п. возникает ошибка

??????????????????????????????????
Gedeon
Отправлено: 21.06.2004, 19:43


Ветеран

Группа: Модератор
Сообщений: 1742



Сам запрос, который получается приведите, попробуйте его руками в дизайн тайме поставить, будет работать?
Michail
Отправлено: 22.06.2004, 11:24


Не зарегистрирован







запрос пишу уже простейший select * from table, не работает ни как
Valdemar
Отправлено: 22.06.2004, 13:03


Мастер участка

Группа: Участник
Сообщений: 433



Странно, я сам работаю с MySQL через ADO и таких проблем нет. Может вам надо установить Update4 для C++Builder 6. И где у вас находится курсор (свойство CursorLocation) — на клиенте или на сервере?
Michail
Отправлено: 22.06.2004, 14:16


Не зарегистрирован







а где надо ? wink.gif
(а может и ссылочка на обновление есть ?)
Valdemar
Отправлено: 22.06.2004, 15:04


Мастер участка

Группа: Участник
Сообщений: 433



Update4 можно скачать с этого сайта в разделе Downloads.
Где должен быть курсор надо решать исходя из задачи. Почитайте хелп, там написаны различия. Если курсор будет на сервере, то RecordCount возвращает -1. Сам я использовал курсор на стороне клиента.
Michail
Отправлено: 22.06.2004, 15:10


Не зарегистрирован







обновление уже качаю, а курсор-то на клиенте стоит.
если не затруднит, может есть кусок кода, может я что не то творю ?
Valdemar
Отправлено: 22.06.2004, 16:31


Мастер участка

Группа: Участник
Сообщений: 433



Вот, пожалуйста, часть кода из моей программы:
CODE
       sql="SELECT razrab.razr_id, razrab.razrab ";
       sql+="FROM doc_razr INNER JOIN razrab ON (doc_razr.razr_id = razrab.razr_id) ";
       sql+="WHERE (doc_razr.doc_id = "+IntToStr(doc_id);
       sql+=") ORDER BY razrab.razrab";
       razrQuery->Close();
       razrQuery->SQL->Text=sql;
       razrQuery->Open();
Michail
Отправлено: 22.06.2004, 16:50


Не зарегистрирован







thanks, регистр имеет значение т.е. select == SELECT ?
Michail
Отправлено: 22.06.2004, 21:48


Не зарегистрирован







Короче ни как не пашет, и bcb обновил, сам уже внутрь не лезу, подключил TDBGrid, по ..ю все равно ошибка "E_FAIL" sad.gif
Да ...бал уже !!!
Michail
  Отправлено: 22.06.2004, 21:53


Не зарегистрирован







Может кто какой другой путь к MySQL знает ? Ну его в ..опу ADO этот ?!
MyDAC например ?
Valdemar
Отправлено: 23.06.2004, 09:54


Мастер участка

Группа: Участник
Сообщений: 433



Может у вас проблемы с сервером MySQL или ODBC-драйвером? Происходит ли соединение с сервером? Попробуйте выполнить запросы через какую-нибудь утилиту администрирования MySQL, например, EMS MySQL Menager.
У меня есть MyDAC 3.0, могу выслать. Я бы мог его прикрепить к сообщению, но не знаю допускается ли это правилами форума, т.к. компоненты не бесплатные.
** Michail
  Отправлено: 23.06.2004, 15:41


Не зарегистрирован







УВАЖАЕМЫЙ VALDEMAR !
Буду безмерно счастлив Вашему письму с прикрепленным MyDAC !!!
seluanov@rol.ru

P.S.

Соединение есть, использую MySQL Control Center

Заранее спасибо.
Valdemar
Отправлено: 23.06.2004, 16:34


Мастер участка

Группа: Участник
Сообщений: 433



Michail, отправил вам на почту.
ilia
Отправлено: 29.04.2005, 19:36


Не зарегистрирован







УВАЖАЕМЫЙ VALDEMAR !
Буду тоже очень признателен если и мне кинете MyDAC !!!
ilia_andrey@mail.ru
** Андрей
Отправлено: 10.05.2005, 08:38


Не зарегистрирован







Гм. При работе с АДО и таблицей DBGrid через DataSource и у меня возникала постоянно проблема E_Fail.
Использую http://sourceforge.net/projects/zeoslib/ для доступа к MySQL и пока доволен. Единственное — размер, блин этого компонента :-(

Вернуться в Работа с базами данных в C++Builder