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

Вниз

Access violation в TWebModule   Найти похожие ветки 

 
Zanik   (2003-11-07 15:23) [0]

Мастаки!

Помогите разобраться. Использую Zeos для подключения к MySQL. Пишу CGI приложение. Создал свой метод у TWebModule в секции public. В нем обращаюсь к запросу

...
with dm.getMaxMonth do // <- access violation
begin
if Active then Close;
Open;
max_m := FieldByName("months").AsInteger;
end;
...


Смотрю при отладке, а dm - указывает на nil. Как такое может быть? Проверял событие OnCreate - оно выполняется. Подскажите что делать? где рыть?


 
Sandman25 ©   (2003-11-07 15:33) [1]

>Проверял событие OnCreate - оно выполняется.

OnCreate объекта TWebModule? Или все-таки dm?


 
Плохиш_   (2003-11-07 15:33) [2]

Что такое dm?
В cgi вообще-то для обрашения к модулям создаётся function.


 
Zanik   (2003-11-07 15:36) [3]

OnCreate объекта TWebModule?

dm - екземпляр TWebModule


 
Плохиш_   (2003-11-07 15:37) [4]

Приведите описание dm, пожалуйста


 
Zanik   (2003-11-07 15:38) [5]

type
Tdm = class(TWebModule)
getMaxMonth: TZZMySqlQuery;
ckop2: TZZMySqlDatabase;
ckop2tr: TZZMySqlTransact;
getDataCurrMonth: TZZMySqlQuery;
getDataMaxMonth: TZZMySqlQuery;
getDataPriorMonth: TZZMySqlQuery;
getTotal: TZZMySqlQuery;
result: TPageProducer;
procedure TotalLegendText(Sender: TCustomAxisPanel;
LegendStyle: TLegendStyle; Index: Integer; var LegendText: String);
procedure DayLegendText(Sender: TCustomAxisPanel;
LegendStyle: TLegendStyle; Index: Integer; var LegendText: String);
procedure dmWebActionItem1Action(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure resultHTMLTag(Sender: TObject; Tag: TTag;
const TagString: String; TagParams: TStrings;
var ReplaceText: String);
private
{ Private declarations }
public
{ Public declarations }
procedure SaveTelCard( sd, ed, yyyy: integer );
procedure GetStatPicture( type_stat, sd, ed, yyyy: integer );
end;


 
Sandman25 ©   (2003-11-07 15:40) [6]

Зачем вообще писать dm, если обращение происходит из его метода, насколько я понимаю?
Вы наверное вызываете этот метод из OnCreate, когда dm еще не присвоено значение.


 
Плохиш_   (2003-11-07 15:41) [7]

Где строчка

function dm: TWebModule;
?


 
Zanik   (2003-11-07 15:42) [8]

>Вы наверное вызываете этот метод из OnCreate,
нет, из SaveTelCard
>Зачем вообще писать dm,
убирал , таже фигня :(


 
Zanik   (2003-11-07 15:44) [9]

Плохиш_ (07.11.03 15:41) [7]
всегда писал так
var
dm: Tdm;
и не было трудностей... а это чего-то глюк...


 
Sandman25 ©   (2003-11-07 15:49) [10]

Как создается dm?
dm := Tdm.Create...?

>>Зачем вообще писать dm,
>убирал , таже фигня :(

В смысле? При
with getMaxMonth do
begin
if Active then Close;
Open;
max_m := FieldByName("months").AsInteger;
end;

тоже Access Violation? На какой строчке?


 
Плохиш_   (2003-11-07 15:50) [11]

Откуда вызывается SaveTelCard и т.д.?


 
Плохиш_   (2003-11-07 15:52) [12]

>Zanik

Посмотри демку в Internet\WebServ


 
Zanik   (2003-11-07 15:53) [13]

Как создается dm?
dm := Tdm.Create...?

begin
Application.Initialize;
Application.CreateForm(Tdm, dm);
Application.Run;
end

тоже Access Violation? На какой строчке?
в той же что и раньше


 
Zanik   (2003-11-07 15:55) [14]

Откуда вызывается SaveTelCard и т.д.?

procedure Tdm.dmWebActionItem1Action


 
Zanik   (2003-11-07 15:57) [15]

Посмотри демку в Internet\WebServ

ну и ? ничего нового не узнал :(


 
Sandman25 ©   (2003-11-07 16:02) [16]

Тогда я тоже не понимаю, как dm может быть nil...
Может dmWebActionItem1Action Вы вызываете из OnCreate?


 
Плохиш_   (2003-11-07 16:03) [17]

Смотри, что ты делаешь с getMaxMonth во всей программе. Где-то она об-nil-яется или уничтожается.


 
Плохиш_   (2003-11-07 16:05) [18]

Не используй dm.



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
1-89904
Varelik
2003-11-13 13:55
2003.11.27
Разжуйте тему на счет


14-90115
val_5
2003-11-03 17:33
2003.11.27
Windows CE


6-90028
SPIRIT
2003-10-01 01:53
2003.11.27
Отправить письмо


3-89713
Disruptor
2003-11-10 08:32
2003.11.27
Выполнить скрипт (например 500 инсертов) одним разом.


3-89737
pashaz
2003-11-05 01:31
2003.11.27
Редактирование DBGrid