![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Связь с БД MySQL из Интернет-приложения [D7, WinXP]
vishnia © (2005-10-29 14:16:00)Пишу Интеренет-приложение ISAPI (DLL), показывает на странице информацию из БД, а также добавляет,записи и т.д.
Желательно, чтобы БД была MySQL. Пытаюсь установить связь с БД с помощью компонентов MyDAC (MyConnection), но оно тогда просто не работает (невозможно отобразить страницу). Пробую с Interbase - все нормально! Может, не через MyDAC работать нужно? А как тогда? Подскажите!
guru-guru (2005-11-04 13:10:00) [1]Непарься! Стандартные компоненты не рулят с МуSQL, сам не один день потратил на коннектинг. Что я только не делал. Но выход нашел. Поищи в инете есть компоненты (во тут http://www.sourceforge.net/projects/zeoslibили http://www.zeoslib.net) Они специально для этой бд. И через них все замечательно рулит. Но если хочешь чтобы все было только в твоей власти юзай МСДН и ODBC.
isasa (2005-10-29 17:38:00) [2]Учитывая печальные сентенции Копира, по поводу малочисленности женщин, в ветке потрепаться.
Решил даме уделить больше внимания. :)
vishnia (29.10.05 15:05) [8]
Чуть подробнее.
Судя по вопросу используем, TDataModule - (CoInitialize вызывается "автоматом").
В принципе можно, но нужно учесть(это вообще нужно учитывать в данном случае):
1.По умолчанию DLL - многопотоковая модель (MTA - Multi-threaded apartments ), а "автомат" по-умолчанию предполагает STA (Single-threaded Apartments).
Управляет этой штукой флаг.
var
CoInitFlags: Integer = -1; // defaults to no threading model, call CoInitialize()
Ему перед TDataModule.Create надо присвоить
CoInitFlags:=COINIT_MULTITHREADED;
и тогда, по идее можно работать с TDataModule.
2. Если TDataModule объявлен глобально в DLL(чего я не стал-бы делать), то надо решить проблему его совместного использования несколькими потоками. Два пользователя, когда-нибудь вызовут страницу почти одновременно.
3.Попробовать TADOConnection, а конкретно, получить TADOConnection.ConnectionString на базу mySQL. Если сервер стоит под win, то и драйверок, скорее всего, есть.
Anatoly Podgoretsky (2005-10-29 16:05:00) [3]vishnia (29.10.05 15:02) [7]
Это значит, что на том компьютере должна быть постоянно запущеная Дельфи или надо раскошелиться и купить движок.
isasa (2005-10-29 15:29:00) [4]значит дело именно в MyDAC?
Да.
vishnia (2005-10-29 15:18:00) [5]
> Другими словами нужна не триал версия драйверов.
Объясните пожалуйста, что такое триал и каких драйверов? И вообще , значит дело именно в MyDAC?
isasa (2005-10-29 15:11:00) [6]IDE - это интегрированная среда разработки, т.е. в данном случае Дельфи.
Другими словами нужна не триал версия драйверов.
О функции CoInitializeEx можно почитать в MSDN.
vishnia (2005-10-29 15:05:00) [7]
> Кстати
> CoInitializeEx(nil, COINIT_MULTITHREADED);
> делаем?
А где надо такое делать? Я уже читала ваш ответ с такой функцией на форуме "БД", но поняла плохо и в справке не нашла.
vishnia (2005-10-29 15:02:00) [8]Пишет, что
MyDAC trial version requires Delphi IDE. Что это значит, где этот IDE взять?
isasa (2005-10-29 15:01:00) [9]Это сообщение IIS, тебе надо ловить сообщение внутри потока.
10.5.1 500 Внутренняя ошибка сервера, Internal Server Error.
Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос.
Кстати
CoInitializeEx(nil, COINIT_MULTITHREADED);
делаем?
vishnia (2005-10-29 14:53:00) [10]HTTP 500 - Внутренняя ошибка сервера
Internet Explorer.
isasa (2005-10-29 14:50:00) [11]Попробуй
try ... except
с выводом сообщения в Response. ?
Или пробуй настроить дебагер (вот тут только IIS, кажется).
isasa (2005-10-29 14:45:00) [12]Не обязательно. Апач тоже будет работать, если.
[httpd.conf]
...
LoadModule isapi_module modules/mod_isapi.so
...
<Directory "D:/Apache2/cgi-bin">
...
Options ExecCGI
# AddHandler isapi-isa .dll
...
</Directory>
..
AddHandler isapi-isa .dll
Что-то ж он горорит. Не молча рубит . :)
vishnia (2005-10-29 14:44:00) [13]Но ведь с Interbase это же приложение работает, а настроек с какими БД работать в IIS я не вижу.
Anatoly Podgoretsky (2005-10-29 14:34:00) [14]ISAPI это IIS и его настройки