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

 
Не могу подключиться через MyODBC к Mysql
Chernov
Отправлено: 03.08.2006, 15:03


Ученик-кочегар

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



Установил на сервере MySQL 5
На компьютере клиента установил MyOBDC 3
На форму поставил TDatabase
DatabaseName выставил test
DriverName MySQL ODBC 3.51
Login Prompt false
Params:
SERVER NAME 192.168.15.90
USER NAME root
PASSWORD pass

выставляю connected=true
вылетает ошибка
BDE Error 12550
Invalid configuration parameter

mysql -h 192.168.15.90 -u root -p вот так коннектится.

Может еще какие-то параметры должны быть в TDatabase?

Отредактировано Chernov — 03/08/2006, 15:03
AVC
Отправлено: 03.08.2006, 17:43


Ветеран

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



Создал ODBC
- драйвер MySQL ODBC 3.51
- server
- обозвал qqq

Бросил на форму TDatabase
Зашел в Database Editor (правый мыш на компоненте)
- выбрал алиас qqq
- сбросил checker login prompt
- дописал праметры
-- USER NAME=...
-- password=...
-- database name=...
Сохранил
Соединился — Ok

PS.
Лучше использовать "прямые" компоненты для мускула. Поищите, такие есть.
Chernov
Отправлено: 04.08.2006, 12:41


Ученик-кочегар

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



А без Алиаса никак нельзя? а то на каждом компьютере алиас выставлять не хочется.
Дело в том что уже есть готовая программа и там через TDataBase, только подключается к MS SQL и хочется попробовать через MySQL тоже самое.
AVC
Отправлено: 04.08.2006, 13:21


Ветеран

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



QUOTE

А без Алиаса никак нельзя?

Можно. Если использовать "прямые" компоненты.
У вас же драйвер для ODBC и, значит, доступ идет по цепочке
клиент <-> BDE <-> ODBC <-> сервер
Алиас это запись в источниках ODBC.
Создавайте алиас в программе. Это же не более чем запись в системном реестре.
Еще можно посмотреть в сторону файлового DSN.
Chernov
Отправлено: 07.08.2006, 12:56


Ученик-кочегар

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



все сделал вот кусочек кода, если еще кому-то интересно.
CODE
 TRegistry * fReg = new TRegistry(KEY_WRITE);
if(ComboBoxWin->Text=="Windows XP"&&ComboBoxODBC->Text=="MySQL ODBC 3.51 Driver")
if(fReg->OpenKey("\\Software\\ODBC\\ODBC.INI\\vasale", true))
{
 fReg->WriteString("Database", EditDBName->Text);
 fReg->WriteString("Description", " ");
 fReg->WriteString("Driver", "C:\\WINDOWS\\System32\\myodbc3.dll");
 fReg->WriteString("Flag", "1");
 fReg->WriteString("Password", EditPassword->Text);
 fReg->WriteString("Port", " ");
 fReg->WriteString("Server", EditServerName->Text);
 fReg->WriteString("User", EditLogin->Text);
 fReg->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", True);
 fReg->WriteString("vasale", ComboBoxODBC->Text);
 fReg->CloseKey();
}
delete fReg;

в разных версиях виндоус в разные места кладется длл-ка, а в разных версиях драйвера не знаю что.

Отредактировано Chernov — 07/08/2006, 13:01

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