![]() |
|
|
![]()
|
|
| GHopper |
|
|||
|
Unregistered |
Здравствуйте!
Возникла проблема при написании приложения для работы с базой данных MySQL в C++ Builder 6. Файлы помощи к C++ Builder не дали ответа на мои вопросы, хотя и разъяснили как работать с TTable, TDataSource и с компонентами из закладки "Data Controls". Проблема следующая - в объекте TTable есть свойство "DatabaseName", которое не содержит БД MySQL. Там, как я понял, содержатся псевдонимы БД. Лезу в SQL Explorer и пытаюсь создать псевдоним для MySQL. Жму "New" и опять получаю список, не содержащий MySQL. Оставляю эту затею. Пытаюсь через dbExpress. На него в хелпе информации еще меньше! Свойство объекта TSQLconnect "ConnectionName" содержит "MySQLConnect". Все вроде-бы должно работать, но вот опять проблема - "Error: Unable to Load libmysql.dll" (Сервер моей БД в этот момента загружен). Нахожу этот libmysql.dll и пихаю во все папки, в какие только можно (папка проекта, системная). Ничего не помогает! Не стал пробовать с ADO и др. методами, а решил поискать рабочий пример. В MySQL есть программка Jethro Wright, датированная 1998 г. Попробовал самостоятельно создать консольное приложение по подобию и нифига не вышло - даже при простом подключении mysql.h возникает две ошибки. Короче кругом засада! Люди добрые, помогите? Укажите путь истинный. А вообще хотелось бы почитать литературу, подробно раскрывающую создание приложений для работы с БД. Заранее огромное СПАСИБО. |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Лично я предпочитаю все делать через АДО, все просто, удобно и легко переносимо на другие СУБД. Нужен ОДБС-драйвер MySQL, и все. Ставишь, формируешь коннекшн стринг с помощью все того же компонента TADOConnection, и в TADOQuery выполняешь все свои запросы. Можно небольшую оболочку на все это навесить, и только чере абстрактный интерфейс работать, тогда вообще проблем не будет в будущем.
А с этими TTable на самом деле не стоит и разбираться, на мой взгляд, хотя ничего сложного там тоже нет, кроме отсутствия подержки MySQL фирмой Борланд/Инпрайз/Фиг_знает_будет_ли_вообще_такая_фирма_в_дальнейшем. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
В папке MySQL есть папка lib...Там библиотека для работы с MySQL напрямую, через сокеты...быстро, надежно, xотя и немного сложновато но зато никакиx драйверов ставить не нужно...xотя не уверен что тебе это подойдет, зависит конкретно от задачи...
|
|||
|
||||
| cabich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.11.2004 Репутация: нет Всего: нет |
А в пятом билдере как быть он на mysql.h ругается!!!
Добавлено @ 08:10 в mysql_com.h ошибка Type name expendet на строке my_socket fd; !!! Че за Ерунда???? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Type name expected в данном случае означает что он не видит класса my_socket...
Посмотри, может Include directories не в порядке...или какого нибудь файла не xватает...у меня 6-ой билдер, все нормально компилируется..и под визуал С++ тоже...без разницы...Код тот же самый... |
|||
|
||||
| cabich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.11.2004 Репутация: нет Всего: нет |
У меня таже ошибка была я короче сделал так
Подключите к проекту libMySql.lib, положите заголовочные файлы из поставки MySQL в директорию заголовочных файлов вашего компилятора, либо в каталог с программой, либо вообще куда душе угодно (лишь бы сами их не потеряли), libmysql.dll в каталог с программой, и пользуетесь функциями API MySQL, которые подробнейшим образом описаны в поставляемой вместе с сервером документацией. libmysql.lib и libmysql.dll берутся после установки дистрибутива MySQL в каталоге lib\opt. libmysql.lib ОБЯЗАТЕЛЬНО должен работать с libmysql.dll ТОЙ ЖЕ поставки/версии. По этой причине НАСТОЯТЕЛЬНО НЕ рекомендуется хранить libmysql.dll в системном каталоге WINDOWS! Храните свою libmysql.dll в каталоге со своей программой. Для C++ Builder получить libmysql.lib нужно импортом из libmysql.dll: > implib libmysql.lib libmysql.dll Из заголовочных файлов требуются: mysql.h mysql_com.h mysql_version.h В последних версиях ещё и my_alloc.h Всё это добро берётся после установки дистрибутива MySQL в каталоге include. Из всех в программе подключается только mysql.h. Перед ним обязательно должно быть подключен windows.h #include <windows.h> #include <mysql.h> Особенности Билдеровского VCL: В программах, использующих VCL, компилятор ругается на my_socket, объявленную в mysql.h как #define my_socket SOCKET. Заменяем на #define my_socket UINT_PTR и всё работает. (SOCKET в winsock.h объявлен как typedef UINT_PTR SOCKET). но всеравно он не находит функцию mysql_connect() поэтому искаю как юзать ADO!! Обьясните как Вывести на форму Зачения В полях таблицы!!!!!!!!!!!!!!! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
не знаю как насчет импорта из ДЛЛ, я сделал иначе...
libmysql.lib под билдером работать не станет... Зайди в каталог билдера, {BCBPATH}/bin так кажется... Там должно быть что то вроде coff2ome.exe или ome2coff.exe Запускаешь даешь на вxод свой либ и устанавливаешь на выxoд в какой нибудь другой файл...и уже его присабачиваешь к своему проекту... Кстати этот самый coff2omf или ome как его там почему то ненормально работает... Какая то проблема с размерами файла, точнее говоря не переводит файлы размером больше чем какое то X число в билдеровский формат...Но именно с libmysql.lib все проxодит нормально... Это сообщение отредактировал(а) azesmcar - 24.11.2004, 13:46 |
|||
|
||||
| Гость_Cabich |
|
|||
|
Unregistered |
Как с помощью ADO таблицу в Grid или мемо Запихнуть?
|
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |