Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

Web сайт c помощью дельфи   Найти похожие ветки 

 
vajo   (2003-04-30 06:43) [0]

Вот решил попробовать сделать страничку.

program Prog;
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in "Unit1.pas" {DataModule1: TDataModule},
var
Str:String;
i:Integer;
begin
writeln ("CONTENT-TYPE: TEXT/HTML");
writeln;
writeln ("<HTML><HEAD>");
writeln ("<TITLE>Prog</TITLE>");
writeln ("</HEAD><BODY>>");
writeln ("<H1>Пример</H1>");
DataModule1.Table1.First;
For i:=1 To 10 DO
writeln ("<H1>Цикл</H1>");
end;
end.


Запускаю в броузере ( http://localhost/Test/Project2.exe) и получаю "Exception EAccessViolation in module Project2.exe at 00082044. Access violation at address 00482044 in module "Project2.exe". Read of address 00000058."
Убираю строку "DataModule1.Table1.First;" и все работает.
Значит так таблицы нельзя использовать? Я хочу вывести таблицу на страницу.
А может у кого есть примерчик рабочий?


 
Separator ©   (2003-04-30 07:06) [1]

Ха, ну да так и заработало. Вопрос: А ты подумал куда будет происходить запись, в какой файл, а то получается вывод на экран и ещё присутствует какой-то непонятный цикл? Прочитай хотябы одну книгу по основам Pascal


 
gek ©   (2003-04-30 07:13) [2]


> Separator © (30.04.03 07:06)


Присоединяюсь.
Да и вообще причем тут Web сайт?


 
Separator ©   (2003-04-30 07:17) [3]

Думаю ты этого добивался:
program Project1;

var
F: textfile;
i: Integer;

begin
AssignFile(F, "MyPage.html");
{$I-}
Rewrite(F);
{$I+}
if IOResult = 0 then begin
WriteLn(F, "<CONTENT-TYPE: TEXT/HTML>");
WriteLn(F, "");
WriteLn(F, "<HTML><HEAD>");
WriteLn(F, "<TITLE>Prog</TITLE>");
WriteLn(F, "</HEAD><BODY>");
WriteLn(F, "<H1>Пример</H1>");
for i:=1 to 10 do
WriteLn(F, "<H1>Цикл</H1>")
end;
CloseFile(F)
end.

Тока вот что такое DataModule1.Table1.First я не знаю, попробуй объяснить или приведи код Unit1.pas


 
Palladin ©   (2003-04-30 09:02) [4]

Separator ©
gek ©
эх вы...


vajo (30.04.03 06:43)
пример вывода таблицы table1 из c:\test.mdb


program Project1;
uses ADODB;
var
q:TADOQuery;
i:integer;

begin
write("<html><body>");
q:=TADOQuery.Create(nil);
q.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Test.mdb;Persist Security Info=False";
q.sql.text:="select * from table1";
q.open;
writeln("<table width="100%">");
while not q.eof do
begin
writeln("<tr>");
for i:=0 to q.fieldcount-1 do writeln("<td>"+q.fields[i].asstring+"</td>");
writeln("</tr>");
q.next;
end;
q.close;
q.free;
writeln("</table></body></html>");
end.



 
vajo   (2003-04-30 09:05) [5]

>Separator ©
Это был просто тестовый пример. В цикле просто выволится надпись. В файл ничего не надо записывать. После запуска в броузере уже все выглядит как HTML. У меня в IIS настроено выполнять приложения.

DataModule1.Table1.First - это для эксперимента. Попробовать обратиться к таблице.


unit Unit1;

interface

uses
SysUtils, Classes, DB, DBTables;

type
TDataModule1 = class(TDataModule)
Table1: TTable;
private
{ Private declarations }
public
{ Public declarations }
end;

var
DataModule1: TDataModule1;

implementation

{$R *.dfm}

end.


Если бы можно было работать с таблицей, то можно будет сделать так:
For i:=1 To DataModule1.Table1.RecordCount DO
writeln (DataModule1.Table1.FieldByName("Name").AsString);
DataModule1.Table1.Next;
end;


 
gek ©   (2003-04-30 09:13) [6]


> Palladin © (30.04.03 09:02)


Да дело не в выводе таблицы, а в том, что,
сам вопрос
Web сайт c помощью дельфи

кривой.
Еще раз повторюсь(изините) причем тут Web сайт?


 
Palladin ©   (2003-04-30 09:25) [7]


> gek © (30.04.03 09:13)

при том...

перепиши созданый exe в исполняемую директории IIS или PWS и набери в експлорере

http:\\localhost\cgi\project1.exe

сразу поймешь почему используется вывод в output и причем тут вебсайт


 
Shirson ©   (2003-04-30 09:53) [8]

>vajo (30.04.03 06:43)
Вот решил попробовать сделать страничку.
...
Запускаю в броузере ( http://localhost/Test/Project2.exe) и получаю "Exception EAccessViolation in module Project2.exe at 00082044. Access violation at address 00482044 in module "Project2.exe". Read of address 00000058."
Убираю строку "DataModule1.Table1.First;" и все работает.

Palladin дело написал. DataModule1 это не абстракция, висящая в воздухе. Его нужно прицепить к существующей базе и получить из неё набор данных, после чего уже с ним работать.
Если просто, на закрытый dataset, дать команду first, он может и не туда послать :)


>Separator,gek
Прежде чем другим советовать "Прочитай хотябы одну книгу по основам Pascal", может вам самим начать читать книги по Delphi? :)


 
gek ©   (2003-04-30 10:14) [9]

Блин


> >Separator,gek
> Прежде чем другим советовать "Прочитай хотябы одну книгу
> по основам Pascal", может вам самим начать читать книги
> по Delphi? :)


Может хреновину не надо нести?

Дело не в том, ка отобразить страницу, дело в том, сто автор вопрос криво задал и больша ничего...

P.S.
Может тебе самому поучиться надо


 
Palladin ©   (2003-04-30 10:29) [10]

веб сайт можно написать на делфи...
так же как и веб сервер...


 
Palladin ©   (2003-04-30 10:30) [11]


> gek © (30.04.03 10:14)

скажи мне что в вопросе для тебя криво?


 
gek ©   (2003-04-30 10:50) [12]


> Palladin © (30.04.03 10:29)


Можно.
Но нужно ли?


> Palladin © (30.04.03 10:30)


Подумай сам, ну если сам не сможешь, то тогда помогу


 
Palladin ©   (2003-04-30 10:53) [13]

помоги


 
gek ©   (2003-04-30 11:00) [14]

Блин последнмий раз отвечаю, причем тут Delphi и Web

Мой юный друг, если ты не знаешь различий, то зачем вся эта требуха?


 
Palladin ©   (2003-04-30 11:12) [15]

:)
все с Вами понятно... такой большой дядя, а знает не все.
Вы в курсе что Delphi позволяет писать CGI приложения? а NS/ISAPI? а Apache dll? Видимое нет.
Вы в курсе, что при запуске IISом или PWSом консольного приложения, стандартные потоки ввода вывода перенаправляются вебсерверу и writeln работает на IIS который принимает результат и формирует html для передачи его браузеру?
И теперь скажите мне большой взрослый дядя, сможешь ли ты увязать Web и Delphi? учитывая что CGI, NS/ISAPI это есть веб-приложения? И что на делфи можно разработать целый сайт?
Жду Вашего мнения, уважаемый...

ЗЫ для интереса выберите File/New/Other вкладка New
Вы увидите в конце списка Web Application...
надеюсь вы признаете свою неправоту...


 
Palladin ©   (2003-04-30 11:15) [16]

поправлюсь
CGI, ISAPI это стандарты, а веб приложения их используют...


 
gek ©   (2003-04-30 11:30) [17]


> все с Вами понятно... такой большой дядя, а знает не все.


Я то знаю...

Все, ветка закрыта. Учись сынок, учись....


 
Palladin ©   (2003-04-30 11:37) [18]

:)
отсутствие конкретных аргументов по теме и переход к фразам типа "сынок" "молодой человек" и пр, есть самое откровенное признание поражения


 
Карелин Артем ©   (2003-04-30 11:41) [19]

Palladin © (30.04.03 11:37)
Факт. Они сами не вкуривают тематику ветки.


 
gek ©   (2003-04-30 11:57) [20]

Блин
вы меня достали
WEB-сайт и Delphi это две разные вещи

И вообще, если ты сделаешь сайт полностью на Delphi - Нобелевскую премию тебе гарантирую


 
vajo   (2003-04-30 12:01) [21]

> All

Ребята давайте жить дружно! Не надо ссориться.

>Shirson ©
А так нельзя?
На DataModule1 находится компонент Table1 таблица подключена Active=True.


 
vajo   (2003-04-30 12:03) [22]

> gek
Не надо так возмущаться.
Меня просто интересует возможность вывода таблицы.


 
Карелин Артем ©   (2003-04-30 12:08) [23]

gek © (30.04.03 11:57)
Слушай, дай мне хотя бы ящик пива - сделаю. И даже вместе с сервером, если баксов добавишь.
Советую почитать доки на эту тему хотя бы на Королевстве Дельфи. Ну или про Common Gateway Interface почитать. Сайт можно делать даже на Паскале или басике ;) , потому как сайт-довольно абстрактное понятие...

2 vajo Сдается мне, что вывод на экран в твоей проге идет до создания Table1, либо что-то не в порядке с настройкой сервера.


 
gek ©   (2003-04-30 12:14) [24]

Ешё раз говорю для тех, кто в бронепоезде
причем тут Web сайт


История нас учит, что ничему нас не учит...


 
Карелин Артем ©   (2003-04-30 12:21) [25]

gek © (30.04.03 12:14)
Имеется в виду, что контент можно хранить в HTML, а можно генерировать динимически.
vajo
У тебя вывод не экран опрежает создание DataModule. Подумай, в чем причина сам.


 
Palladin ©   (2003-04-30 12:23) [26]


> gek © (30.04.03 12:14)

хоть сейчас набросаю
2 часа и будет тебе маленький сайтик


 
Palladin ©   (2003-04-30 12:25) [27]

причем ты даже не заметишь что он на делфи сделан...
исходники конечно же будут прилагатся...


 
nikkie ©   (2003-04-30 12:26) [28]

>vajo
у тебя DataModule не существует в момент обращения, а в переменной DataModule1 находится nil. Отсюда и Access Violation.

DataModule1 := TDataModule1.Create(nil);
try
DataModule1.Table1.First;
finally
DataModule1.Free;
end;


>gek
кончай позориться.


 
Delirium ©   (2003-04-30 12:27) [29]

program Prog;
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in "Unit1.pas" {DataModule1: TDataModule};

var Str:String;
i:Integer;
begin
DataModule1:=TDataModule1.Create(nil);

writeln ("CONTENT-TYPE: TEXT/HTML");
writeln;
writeln ("<HTML><HEAD>");
writeln ("<TITLE>Prog</TITLE>");
writeln ("</HEAD><BODY>>");
writeln ("<H1>Пример</H1>");
DataModule1.Table1.First;
For i:=1 To 10 DO
writeln ("<H1>Цикл</H1>");

DataModule1.Destroy;
end.


 
gek ©   (2003-04-30 12:28) [30]


> Карелин Артем © (30.04.03 12:21)
> gek © (30.04.03 12:14)
> Имеется в виду, что контент можно хранить в HTML, а можно
> генерировать динимически.
>
>


Блин, то если так то верно


 
Delirium ©   (2003-04-30 12:30) [31]

>gek

www.VideoDVD.tk - сайт исключительно на Delphi


 
shiva1 ©   (2003-04-30 12:35) [32]

www.computerbook.ru - на Delphi.


 
gek ©   (2003-04-30 12:36) [33]

Да ёлкм-палки...

Люди...

Подумайте на вопросом...


 
Palladin ©   (2003-04-30 12:38) [34]


> gek © (30.04.03 12:28)

как же ты не внимательно читал мой пост
Palladin © (30.04.03 11:12)


 
gek ©   (2003-04-30 12:58) [35]


> Вы в курсе, что при запуске IISом или PWSом консольного
> приложения, стандартные потоки ввода вывода перенаправляются
> вебсерверу и writeln работает на IIS который принимает результат
> и формирует html для передачи его браузеру?
> И теперь скажите мне большой взрослый дядя, сможешь ли ты
> увязать Web и Delphi? учитывая что CGI, NS/ISAPI это есть
> веб-приложения? И что на делфи можно разработать целый сайт?
> Жду Вашего мнения, уважаемый...



Да в курсе я...
И прочитал ну куда уж внимательней

Лдушкми...
Спор то не.... о том


 
vajo   (2003-04-30 14:11) [36]

>Delirium ©
Спасибо! Все получилось!



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.017 c
14-59945
msoftware
2003-04-30 15:53
2003.05.19
Где достать Erwin ERX Platinum?


3-59572
reticon
2003-04-27 19:53
2003.05.19
текстовые файлы в БД


7-59966
Xoy
2003-03-20 10:42
2003.05.19
как отловить окончание данных в COM порте


3-59581
Sergey
2003-04-25 15:59
2003.05.19
SQL запрос ???


14-59932
REA
2003-04-28 16:20
2003.05.19
Перебор