ZEOS + LAZARUS ошибка

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

ZEOS + LAZARUS ошибка

Сообщение alexkam » 21.02.2012 16:57:30

В LAZARUS версии Lazarus-0.9.31-35502-fpc-2.6.1-20120220-win32.exe
устанавливаю компонент ZEOS, взятый с: http://zeoslib.svn.sourceforge.net/view ... s/testing/
Размещаю на форме ZConnection1, ZQuery1. При открытии формы выполняется следующий код:

Код: Выделить всё
procedure TForm1.FormShow(Sender: TObject);
begin
  ZQuery1.Connection := ZConnection1;
  ZQuery1.Active := False;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM TBL');
  ZQuery1.Open;
end;


При закрытии формы выскакивает ошибка. Это происходит в последних сборках начиная с 17.02.2012

Если при закрытии формы написать ZQuery1.SQl.Clear; то форма закрывается без ошибок.

Что поменялось в новых сборках? И как с этим бороться?
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Re: ZEOS + LAZARUS ошибка

Сообщение Padre_Mortius » 21.02.2012 17:29:17

а где закрытие запроса происходит?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: ZEOS + LAZARUS ошибка

Сообщение Little_Roo » 21.02.2012 18:32:50

Padre_Mortius писал(а):При закрытии формы выскакивает ошибка. Это происходит в последних сборках начиная с 17.02.2012


В сборках чего - Lazarus или Zeos?
На последней сборке Zeos svn 1026 не замечено...

И на форуме zeos советуют вместо ZQuery1.Open использовать ZQuery1.ExecSQL
А база какая? В птице работаю, проблем нет.

Lazarus 0.9.31 r35407 FPC 2.6.0 i386-win32-win32/win64
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: ZEOS + LAZARUS ошибка

Сообщение alexkam » 21.02.2012 18:41:55

Padre_Mortius писал(а):а где закрытие запроса происходит?

При закрытии формы.

Little_Roo писал(а):В сборках чего - Lazarus или Zeos?
На последней сборке Zeos svn 1026 не замечено...

Я имею ввиду именно последние сборки lazarus.

В сборке например Lazarus-0.9.31-35255-fpc-2.6.1-20120209-win32.exe все работает нормально.
Проблемы начались в сборках после 17.02.2012.
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Re: ZEOS + LAZARUS ошибка

Сообщение Little_Roo » 21.02.2012 18:52:31

alexkam писал(а):Проблемы начались в сборках после 17.02.2012.

Ну и зачем?
Лучшее - враг хорошего :)
И сам обжигался на сборках лазаря х.х.х1
Если уж ставите экспериментально-опытную версию - ВАШ СТРАХ И РИСК в полный рост - таки может откатиться на уже проверенную работоспособную версию?
Или ВСЕ нововведения Вам нужны на 152% ???
Ведь один из законов программизма гласит : Исправление одной ошибки часто ведет к появлению как минимум двух новых... :D Не Ваш случай?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: ZEOS + LAZARUS ошибка

Сообщение Владимир » 21.02.2012 20:38:50

alexkam писал(а):В LAZARUS версии Lazarus-0.9.31-35502-fpc-2.6.1-20120220-win32.exe
устанавливаю компонент ZEOS, взятый с: http://zeoslib.svn.sourceforge.net/view ... s/testing/
Размещаю на форме ZConnection1, ZQuery1. При открытии формы выполняется следующий код:

Код: Выделить всё
procedure TForm1.FormShow(Sender: TObject);
begin
  ZQuery1.Connection := ZConnection1;
  ZQuery1.Active := False;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM TBL');
  ZQuery1.Open;
end;


При закрытии формы выскакивает ошибка. Это происходит в последних сборках начиная с 17.02.2012

Если при закрытии формы написать ZQuery1.SQl.Clear; то форма закрывается без ошибок.

Что поменялось в новых сборках? И как с этим бороться?


А не надо с этим бороться. Вызвали Open, поработали с записями, затем ZQuery1.Close - закрыть соединение с БД.
Как вариант ZQuery1.Active:=False. И, наконец ZConnection1.Connected:=False. Успехов!

Добавлено спустя 2 минуты 41 секунду:
Little_Roo писал(а):И на форуме zeos советуют вместо ZQuery1.Open использовать ZQuery1.ExecSQL

Категорически не согласен! Open - для чтения записей, ExecSQL - для Update или Insert. Не надо народ вводить в заблуждение...
p.s. Возможно, Zeos как-то объединил процедуры Open и ExecSQL и там внутри следует разборка, что делать - читать или писать в базу, но как-то слабо верится!
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: ZEOS + LAZARUS ошибка

Сообщение alexkam » 21.02.2012 20:46:21

Владимир писал(а):А не надо с этим бороться. Вызвали Open, поработали с записями, затем ZQuery1.Close - закрыть соединение с БД.Как вариант ZQuery1.Active:=False. И, наконец ZConnection1.Connected:=False. Успехов!

Это все понятно.
Не работает ZQuery1.Free; в последних сборках lazarus, пока не выполнишь ZQuery1.SQL.Clear;
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Re: ZEOS + LAZARUS ошибка

Сообщение Владимир » 21.02.2012 20:51:38

Padre_Mortius писал(а):а где закрытие запроса происходит?

Вот грамотный вопрос!

Добавлено спустя 6 минут 13 секунд:
alexkam писал(а):Не работает ZQuery1.Free; в последних сборках lazarus, пока не выполнишь ZQuery1.SQL.Clear;

ZQuery1.SQL.Clear - по идее процедура безвредная - просто очищает место под строку запроса. Попробуйте посмотреть show processlist до и после запроса - может, соединение еще не оборвано?
А вообще, ИМХО, ZEOS пытается объять необъятное - работать со всеми БД (сам наелся в свое время) - универсальность вещь хорошая, но недостижимая - то parser глючит, то describe не работает... На мой взгляд, вполне работоспособен SQLDBLaz - не без огрехов, но жить можно!
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: ZEOS + LAZARUS ошибка

Сообщение Little_Roo » 21.02.2012 22:10:53

Владимир писал(а):p.s. Возможно, Zeos как-то объединил процедуры Open и ExecSQL и там внутри следует разборка, что делать - читать или писать в базу, но как-то слабо верится!

Но работает !
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: ZEOS + LAZARUS ошибка

Сообщение alexkam » 21.02.2012 22:14:58

Причем здесь Zeos. Речь идет о новых сборках Lazarus.
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Re: ZEOS + LAZARUS ошибка

Сообщение Little_Roo » 21.02.2012 22:16:42

alexkam писал(а):Причем здесь Zeos. Речь идет о новых сборках Lazarus.


Ну так откатитесь на рабочую версию...
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: ZEOS + LAZARUS ошибка

Сообщение Padre_Mortius » 21.02.2012 22:46:25

А если попробовать сделать тестовый пример, который демонстрирует данную ошибку?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: ZEOS + LAZARUS ошибка

Сообщение Vadim » 22.02.2012 02:37:50

alexkam писал(а):При закрытии формы выскакивает ошибка.

А что пишется в ошибке то?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: ZEOS + LAZARUS ошибка

Сообщение alexkam » 22.02.2012 10:15:16

Vadim писал(а):А что пишется в ошибке то?

Проект project1 вызвал класс исключения 'External: SIGSEGV'.
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Re: ZEOS + LAZARUS ошибка

Сообщение Padre_Mortius » 22.02.2012 11:47:26

А в консоли что пишет?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 253

Рейтинг@Mail.ru