Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Borland C++ & MySQL 
:(
    Опции темы
GHopper
Дата 11.11.2004, 15:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 13.11.2004, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Лично я предпочитаю все делать через АДО, все просто, удобно и легко переносимо на другие СУБД. Нужен ОДБС-драйвер MySQL, и все. Ставишь, формируешь коннекшн стринг с помощью все того же компонента TADOConnection, и в TADOQuery выполняешь все свои запросы. Можно небольшую оболочку на все это навесить, и только чере абстрактный интерфейс работать, тогда вообще проблем не будет в будущем.
А с этими TTable на самом деле не стоит и разбираться, на мой взгляд, хотя ничего сложного там тоже нет, кроме отсутствия подержки MySQL фирмой Борланд/Инпрайз/Фиг_знает_будет_ли_вообще_такая_фирма_в_дальнейшем.
PM MAIL ICQ   Вверх
azesmcar
Дата 16.11.2004, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



В папке MySQL есть папка lib...Там библиотека для работы с MySQL напрямую, через сокеты...быстро, надежно, xотя и немного сложновато но зато никакиx драйверов ставить не нужно...xотя не уверен что тебе это подойдет, зависит конкретно от задачи...
PM   Вверх
cabich
Дата 19.11.2004, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.11.2004

Репутация: нет
Всего: нет



А в пятом билдере как быть он на mysql.h ругается!!!

Добавлено @ 08:10
в mysql_com.h ошибка Type name expendet на строке my_socket fd; !!! Че за Ерунда????
PM MAIL   Вверх
azesmcar
Дата 19.11.2004, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Type name expected в данном случае означает что он не видит класса my_socket...
Посмотри, может Include directories не в порядке...или какого нибудь файла не xватает...у меня 6-ой билдер, все нормально компилируется..и под визуал С++ тоже...без разницы...Код тот же самый...
PM   Вверх
cabich
Дата 23.11.2004, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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!!
Обьясните как Вывести на форму Зачения В полях таблицы!!!!!!!!!!!!!!!
PM MAIL   Вверх
azesmcar
Дата 24.11.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM   Вверх
Гость_Cabich
Дата 26.11.2004, 08:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как с помощью ADO таблицу в Grid или мемо Запихнуть?
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.