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

Вниз

Zeos lib. Помогите с ошибкой.   Найти похожие ветки 

 
Rembo   (2006-06-22 16:20) [0]

Вощем создал TWebModule, кинул на него TZConection и TZQuery  (компоненты для работы с базами данных).
Ошибка возникает в следующей строке:
Query.SQL.Text:=sqlcode;

Пишет:
Access violation at address 00535AE7

Ктонибудь знает в чем может быть причина?
З.Ы Query.SQL - свойство типа TStrings


 
Плохиш ©   (2006-06-22 16:48) [1]


> Rembo   (22.06.06 16:20)  
> Вощем создал TWebModule, кинул на него TZConection и TZQuery
>  (компоненты для работы с базами данных).
> Ошибка возникает в следующей строке:
> Query.SQL.Text:=sqlcode;

Можно увидить весь код, где написана эта строчка?


 
sniknik ©   (2006-06-22 16:52) [2]

тогда уж и описание созданного класса от TWebModule (убедится что "кинутые" TZConection и TZQuery действительно там лежат ;)


 
Rembo   (2006-06-22 18:01) [3]

Конечно можно!
Вот функция:
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;


Правда не думаю что это чем то может помочь. Кстати, в


 
Плохиш ©   (2006-06-22 18:11) [4]

Сделай функцию mainpage методом TWebModule1. Привыкай к ООП.


 
Palladin ©   (2006-06-22 18:18) [5]

webmodule1 указывает в никуда... или кудато в космос, обращатся к нему неправомерно... такой нюанс имеет место быть в вебприложениях на делфи...


 
Плохиш ©   (2006-06-22 18:24) [6]


> Palladin ©   (22.06.06 18:18) [5]
> такой нюанс имеет место быть в вебприложениях на делфи

Ну дык, достаточно заглянуть в TWebApplication.CreateForm ;-)
Унификация - это наше будущее :o)


 
Palladin ©   (2006-06-22 18:31) [7]

достаточно, но лениво...


 
Rembo   (2006-06-22 18:38) [8]

Тоесть...
Как обратиться к компоненте из функции mainpage?
Непонял


 
Плохиш ©   (2006-06-22 18:41) [9]


> Palladin ©   (22.06.06 18:31) [7]
> достаточно, но лениво...

:-)) я и заглянул только после твоего поста. Показалось нелогичным, вроде CreateForm, а указывает в никуда. Заглянул, а там красота 8-) и даже комментарий есть :-)


 
Плохиш ©   (2006-06-22 18:57) [10]


> Rembo   (22.06.06 18:38) [8]
> Тоесть...
> Как обратиться к компоненте из функции mainpage?

Что не понятно, если она является методом класса?


 
Rembo   (2006-06-22 19:07) [11]

Ошибка в чем? Я так и не понял.


 
Плохиш ©   (2006-06-22 19:14) [12]


> 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) [13]

Ладна, неважно, решил проблему так:
function mainpage(var query:TZQuery):string;
Пасиба



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

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

Наверх




Память: 0.49 MB
Время: 0.056 c
2-1150802031
Koder
2006-06-20 15:13
2006.07.09
Поиск по базе


2-1150407291
Просьба
2006-06-16 01:34
2006.07.09
Как передать в класс рекорд?


15-1149509339
Nic
2006-06-05 16:08
2006.07.09
Открыть своё дело?


4-1144044066
Dimich1978
2006-04-03 10:01
2006.07.09
NTFS уствновить права на файл(папку)


2-1150718671
Rezya
2006-06-19 16:04
2006.07.09
AssignFile