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

Вниз

ошибка при работе с параметрами запроса   Найти похожие ветки 

 
Scott Storch   (2011-07-20 12:04) [0]

Почему при освобождении памяти, занимаемой параметром IdParam, возникает ошибка AccessViolation по 0 адресу.


function TConnectionDataModule.GetSectionIdsFieldValue(Id: Integer): string;
var
 IdParam, ContentIdParam, ContanerIdParam: TDBISAMParam;
 SectionIdList: TStrings;
begin
 IdParam := CommandQuery.Params.CreateParam(ftInteger, ID_PARAM_NAME);
 try
   IdParam.AsInteger := Id;
   CommandQuery.SQL.Text := Format("SELECT primer_id FROM item WHERE (item_id = :%s) AND (flags <> 1)",
     [ID_PARAM_NAME]);
   CommandQuery.Open;
   SectionIdList := TStringList.Create;
   try
     SectionIdList.Add(CommandQuery.Fields[0].AsString);
     ContentIdParam := CommandQuery.Params.CreateParam(ftInteger,
       CONTENT_ID_PARAM_NAME);
     try
       ContentIdParam.AsInteger := Id;
       ContanerIdParam := CommandQuery.Params.CreateParam(ftInteger,
         CONTANER_ID_PARAM_NAME);
       try
         ContanerIdParam.AsInteger := StrToInt(SectionIdList[0]);
         CommandQuery.SQL.Text := Format("SELECT contaner_id FROM content WHERE (content_id = :%s) AND (contaner_id <> :%s) AND (flags <> 1)",
           [CONTENT_ID_PARAM_NAME, CONTANER_ID_PARAM_NAME]);
         CommandQuery.Open;
         CommandQuery.First;
         while not CommandQuery.Eof do
         begin
           CategoryIdList.Add(CommandQuery.Fields[0].AsString);
           CommandQuery.Next;
         end;
         Result := SectionIdList.DelimitedText;
       finally
         ContanerIdParam.Free;
       end;
     finally
       ContentIdParam.Free;
     end;
   finally
     SectionIdList.Free;
   end;
 finally
   IdParam.Free; // Access violation
 end;
end;


 
sniknik ©   (2011-07-20 12:16) [1]

любите справку источник знаний...

CreateParam method (TParams)
Creates a new field parameter object and inserts it into the Items list.


хочешь удалять сам? "высуни" его оттуда предварительно, там его тоже кто то удаляет, а лучше постигни дзен по примерам справки...


 
Scott Storch   (2011-07-20 12:25) [2]

Ясн. спасибо



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1311376887
prodex
2011-07-23 03:21
2011.11.13
insert в Oracle


2-1311321505
ixen
2011-07-22 11:58
2011.11.13
Как узнать тип поля?


15-1310467018
Дмитрий С
2011-07-12 14:36
2011.11.13
Как правильно показывать длительный процесс?


3-1266257536
GEN001
2010-02-15 21:12
2011.11.13
MSSQL и поле типа TEXT


15-1310657684
R_R
2011-07-14 19:34
2011.11.13
Посоветуйте Remote Desktop для работы через Интернет...