Форум: "Потрепаться";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.006 c