Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c