FreeAndNil(Query) вызывает исключение доступа к памяти... Хотя вчера вечером FreeAndNil(Query) работало без исключений, но и память не освобождало. Ничего не пойму.
Вот вчерашний вариант функции, который сегодня вызывает исключение:
- Код: Выделить всё
function get_value_from_bd (table : integer; id : string; pole : string) : string;
var query : TZReadOnlyQuery; s1,s2 : string;
begin
if id='' then id:='0';
query:=TZReadOnlyQuery.Create(application);
query.Connection:=DataModule1.ZConnection1;
query.SQL.Clear;
query.SQL.Add('SELECT s_tables.`table`, s_tables.id_table FROM s_tables WHERE s_tables.id_s_tables = '+inttostr(table));
query.Open;
s1:=query.FieldByName('table').AsString;
s2:=query.FieldByName('id_table').AsString;
query.Close;
query.SQL.Clear;
query.SQL.Add('SELECT '+s1+'.'+pole+' FROM '+s1+' WHERE '+s1+'.'+s2+' = '+id);
query.Open;
get_value_from_bd:=query.FieldByName(pole).AsString;
query.Close;
Query.Active:= false;
FreeAndNil(Query);
end;
с просто query.free работает, но тоже не освобождает память...
Дополнение.
В этом же модуле есть другая ф-я, которая создает заранее подготовленную форму (из автосоздания убрана) и также создает TZQuery как и выше описано. что форму, что query удаляю FreeAndNil("имя переменной"). Так вот в этой ф-ии все работает без исключений, но опять же не освобождается память.
Добавлено спустя 39 минут 39 секунд:OberonAR писал(а):с просто query.free работает, но тоже не освобождает память...
не, не работает, на любую попытку free ошибка доступа. Блин, ну вчера же работало без исключений. Ничего не понимяю