![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Zeos lib. Помогите с ошибкой. [D7, MySQL]
Rembo © (2006-06-22 16:20:00)Вощем создал TWebModule, кинул на него TZConection и TZQuery (компоненты для работы с базами данных).
Ошибка возникает в следующей строке:
Query.SQL.Text:=sqlcode;
Пишет:
Access violation at address 00535AE7
Ктонибудь знает в чем может быть причина?
З.Ы Query.SQL - свойство типа TStrings
Плохиш (2006-06-22 19:14:00) [1]
> Rembo (22.06.06 19:07) [11]
> Ошибка в чем? Я так и не понял.
Переменная WebModule1 равна nil.
А сделать тебе предлагается следуюшее:
type
TWebModule1 = class(TWebModule)
HTTPSoapDispatcher1: THTTPSoapDispatcher;
HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker;
WSDLHTMLPublish1: TWSDLHTMLPublish;
procedure WebModule1DefaultHandlerAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
function mainpage:string;
end;
function TWebModule1.mainpage:string;
...
И выкинутьиз mainpage все упоминания переменной WebModule1!
Rembo (2006-06-22 19:14:00) [2]Ладна, неважно, решил проблему так:
function mainpage(var query:TZQuery):string;
Пасиба
Rembo (2006-06-22 19:07:00) [3]Ошибка в чем? Я так и не понял.
Плохиш (2006-06-22 18:57:00) [4]
> Rembo (22.06.06 18:38) [8]
> Тоесть...
> Как обратиться к компоненте из функции mainpage?
Что не понятно, если она является методом класса?
Плохиш (2006-06-22 18:41:00) [5]
> Palladin © (22.06.06 18:31) [7]
> достаточно, но лениво...
:-)) я и заглянул только после твоего поста. Показалось нелогичным, вроде CreateForm, а указывает в никуда. Заглянул, а там красота 8-) и даже комментарий есть :-)
Rembo (2006-06-22 18:38:00) [6]Тоесть...
Как обратиться к компоненте из функции mainpage?
Непонял
Palladin (2006-06-22 18:31:00) [7]достаточно, но лениво...
Плохиш (2006-06-22 18:24:00) [8]
> Palladin © (22.06.06 18:18) [5]
> такой нюанс имеет место быть в вебприложениях на делфи
Ну дык, достаточно заглянуть в TWebApplication.CreateForm ;-)
Унификация - это наше будущее :o)
Palladin (2006-06-22 18:18:00) [9]webmodule1 указывает в никуда... или кудато в космос, обращатся к нему неправомерно... такой нюанс имеет место быть в вебприложениях на делфи...
Плохиш (2006-06-22 18:11:00) [10]Сделай функцию mainpage методом TWebModule1. Привыкай к ООП.
Rembo (2006-06-22 18:01:00) [11]Конечно можно!
Вот функция:
function mainpage:string;
var i:integer;s:string;
begin
result:='';
nom:=IFile.ReadString('config','news_on_main','10');
with Webmodule1 do begin
Webmodule1.Query.SQL.Text:='lol'; //<<<<<<<<<<
Roq.Active:=true;
messagebox(0,PChar(inttostr(roq.RecordCount)),'',0);
for i:=0 to roq.RecordCount-1 do
begin
result:=result+findrep('<NewsName>238y5ht32',ROQ['title'],nomt.Text);
result:=result+findrep('<NewsContent>325235kl',ROQ['content'],result);
result:=result+findrep('news_id1050815',ROQ['id'],result);
result:=result+findrep('<Commcount>8293568',ROQ['comm_count'],result);
end;
//result:=result+'<br>'+inttostr(roq.RecordCount);
end;
end;
Вот глав. процедура откуда вызываеться функция:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var module:char;m,resp:string;
begin
Query.SQL.Text:='lol';//Здесь ошибка не возникает
if (length(Request.PathInfo) = 0) or (Request.PathInfo='/') then
begin
Response.Content:=Response.Content+findrep('<newsplace>', mainpage,themef.Text);
exit;
end;
Вот класс:
type
TWebModule1 = class(TWebModule)
Connect: TZConnection;
ROQ: TZReadOnlyQuery;
Query: TZQuery;
Правда не думаю что это чем то может помочь. Кстати, в
sniknik (2006-06-22 16:52:00) [12]тогда уж и описание созданного класса от TWebModule (убедится что "кинутые" TZConection и TZQuery действительно там лежат ;)
Плохиш (2006-06-22 16:48:00) [13]
> Rembo (22.06.06 16:20)
> Вощем создал TWebModule, кинул на него TZConection и TZQuery
> (компоненты для работы с базами данных).
> Ошибка возникает в следующей строке:
> Query.SQL.Text:=sqlcode;
Можно увидить весь код, где написана эта строчка?