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

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

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;

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


Наверх

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