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

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

CGI + базы данных [D7, Paradox]


phantom2040 ©   (2003-02-26 09:13:00) 

На сколько я понял в Delphi можно писать CGI сценарии, я как-то попробовал написать простейший типа Hello World, вроде все работает, значит возник такой вопрос нужно из сценария оращаться в базу данных с поиском или запросом, как это осуществить на практике, каким образом нужно обращаться к базе из CGI????
Кто нить сталкивался с такой проблемой???
А ну просто ужас как не хочется Perl учить, вчера блин за книжкой просидел, часа 2 пытался прочитать, блин нифига не понял, мутноватый язык


vlad40   (2003-02-26 12:29:00) [1]

А ты попробуй поставить

data:=TDataModule.Create(Application);

перед обращением к data


Hawk2   (2003-02-26 10:59:00) [2]

>А что ты имеешь в виду (Hawk2) "как выводить данные в Explorer"? Как передавать данные из броузера в CGI?

Нет как передавать данные из базы в броузер. Я вообще-то знаю, я имел ввиду раскажи человеку.

>phantom2040 © (26.02.03 10:27)
Так как ты пишешь, это немного корявый способ, в Делфи есть примеры написания cgi, там все сделано через PageProducer, очень удобно особенно если страница содержит много кода и с сопровождением проблем нет.
Если очень надо я могу выслать на мыло пример своей гостевой книги. Работает с БД Access.



phantom2040   (2003-02-26 10:27:00) [3]

извеняюсь за то что употребил неправильное определение форма ее нет в приложении а вот его код
program prob;

{$APPTYPE CONSOLE}
{$E cgi}
uses
SysUtils,
datamod in "datamod.pas" {data: TDataModule};
var c: string;
begin
data.spr.Active:=true; data.spr.First;
c:=data.spr.fieldbyname("NAME").AsString;
WriteLn("Content-Type: text/html");
WriteLn;
WriteLn;
WriteLn("<HTML>");
WriteLn("<HEAD>");
WriteLn("<TITLE>Простейшее CGI приложение</TITLE>");
WriteLn("<META http-equiv="Content-Type" content="text/html;" +
" charset=windows-1251">");
WriteLn("</HEAD>");
WriteLn("<BODY>");
WriteLn("<H1>HELLO WORLD</H1>");
WriteLn("<H2>"+c+"</H1>");
WriteLn("</BODY>");
WriteLn("</HTML>");

end.
по идее в Експлорере должно выводиться первое поле первой записи таблицы, а сервер дает 500 ошибку, и как поступать со второй в uses???????


vlad40   (2003-02-26 10:15:00) [4]

А что ты имеешь в виду (Hawk2) "как выводить данные в Explorer"? Как передавать данные из броузера в CGI?


Geka   (2003-02-26 10:13:00) [5]

Создавать приложение надо как Hawk2 сказал, а данные еще можно ручками html код добавить, для таблиц метки <TABLE>, <TR> и <TD>. Все просто.


Hawk2   (2003-02-26 10:00:00) [6]

Актуальная тема, можно даже сказать наболевшая. Както месяца два назад я тоже задавал такой же вопрос и так не одного ответа не получил. Так что тебе phantom2040 повезло хоть чтото сказали, мне пришлось разбираться самому.

>vlad40 (26.02.03 09:21)
>А в чем проблема? С базой работаешь так же, как и в обычной >аппликации. Главное, чтобы не было визуальных компонентов. Бери >DataModule, ставь на него то, что тебе нужно, и работай >спокойно.
Как создать связь с базой это не проблема, ты бы лучьше подсказал как выводить данные в Explorer.

А тепер по теме. При создании CGI нужно открывать не обычный проэкт, а File->New->Web Server Application тогда не прийдется избавляться от формы и Делфи не цепляет лишние модули. А для вывода данных используй компоненты с закладки Internet.


vlad40   (2003-02-26 09:33:00) [7]

Честно говоря, не знаю, что ты имеешь в виду "cgi форма проекта". Формы в твоем проекте вообще быть не должно, форму надо удалить, иначе работать это не будет.


Соловьев   (2003-02-26 09:32:00) [8]

у меня все работает, как ты работаешь с базой, код пожалуйста.


phantom2040   (2003-02-26 09:26:00) [9]

Да, после добавления Дата модуля, в разделе USES прописывается этот модуль в виде datamod in "datamod.pas" {data: TDataModule};
ладно это понятно, не понятно как сервер со всем этим будет работать, ведь модуль не компилится, а компилится только cgi форма проекта, и после водружения на сервер, и запуска кода 500 ошибка вылетает почему то????


Delirium^.Tremens   (2003-02-26 09:25:00) [10]


> На сколько я понял в Delphi можно писать CGI сценарии

В Delphi можно писать приложения, в которых реализован CGI - Common Gateaway Interface. Сценарии принято писать на скриптовых языках.

PHP для этой цели лучше заточен.


vlad40   (2003-02-26 09:21:00) [11]

А в чем проблема? С базой работаешь так же, как и в обычной аппликации. Главное, чтобы не было визуальных компонентов. Бери DataModule, ставь на него то, что тебе нужно, и работай спокойно.


Наверх

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