Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1149760910
Kolan
2006-06-08 14:01
2006.07.09
Каналы для обнаружения аккустического сигнала.


2-1150726284
Кефир87
2006-06-19 18:11
2006.07.09
HELP!!! OVERLAY.TPU


3-1147331804
dest81
2006-05-11 11:16
2006.07.09
доступ к сереверу через интернет


1-1148739351
T54
2006-05-27 18:15
2006.07.09
Работа руссифицированных программ у буржуев


15-1149761362
Layner
2006-06-08 14:09
2006.07.09
Хочу написать "Электронный термометр", как лучше сделать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский