Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не могу заставить работать одновременно IBase и CGI. [D6, IB5.x]


vasily5000 ©   (2002-10-14 08:06:00) 

Делаю простой запрос для добавления в таблицу строки c использованием IB-вских компонент. Все работает замечательно.
Вставляю этот же кусок кода с этими же компонентами в cgi скрипт, который пишу тоже на delphi и при обработке ошибки получаю все время "unavailable database".
Может кто знает как заставить в cgi(обычной, не wincgi)
все работать корректно ?


vasily5000   (2002-10-15 05:13:00) [1]

Спасибо за совет, ДРУГ. Действительно с localhost: -все заработало.


Max Zyuzin   (2002-10-14 11:50:00) [2]

Ах.. сглупил извиняюсь. Я так понял, что динамически создаются все компоненты для работы с БД?
Тогда просто пропиши строку которую я написал вместо той, что у тебя...
IBDatabase1.DatabaseName:="localhost:X:\...\xxx.gdb";


vasily5000   (2002-10-14 11:43:00) [3]

Где можно это сделать?


Max Zyuzin   (2002-10-14 11:00:00) [4]

У тебя параметры сервера стоят Local?
Исправь на Remote и напиши в Server : localhost
Т.е. IBDatabase1.DatabaseName:="localhost:X:\...\xxx.gdb";


vasily5000   (2002-10-14 10:56:00) [5]

Коннекчусь примерно так:

IBDatabase1.Connected:=false;
IBTransaction1.Active := false;
IBDatabase1.Params.Clear;
IBDatabase1.LoginPrompt := FALSE;
IBDatabase1.Params.Clear;
IBDatabase1.Params.Add("USER_NAME=sysdba");
IBDatabase1.Params.Add("PASSWORD=masterkey");
IBDatabase1.DatabaseName:="X:\...\xxx.gdb";
IBQuery1.SQL.Clear;
IBQuery1.Params.CreateParam(ftString,"PARAM1",ptInput);
IBQuery1.Params.Items[0].AsString:="param1";
IBQuery1.Params.CreateParam(ftString,"PARAM2",ptInput);
IBQuery1.Params.Items[1].AsString:="param2";
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("INSERT INTO YYY (PARAM1,PARAM2)" +
"VALUES (:param1,:param2)");
IBDatabase1.Connected := true;
IBTransaction1.Active := true;
IBQuery1.ExecSQL;
IBQuery1.Transaction.Commit;
IBTransaction1.Active := false;
IBDatabase1.Connected := false;

Если это вставить в обычный проект - работает,
из cgi нет.


Max Zyuzin   (2002-10-14 08:53:00) [6]

А как к базе конетишься? Что именно прописываешь в IBDataBase.DatabaseName?


Наверх

Титульная страница Поиск, карта сайта Написать письмо