Firebird + Lazarus

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

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

Firebird + Lazarus

Сообщение Dem » 30.08.2010 16:36:35

Доброго времени.

Подскажите начинающему програмировать в Linux

Сабж:

Попытка подключения к базе выдает следующее: (во вложении)

права менял.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Dem
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.08.2010 16:28:06

Re: Firebird + Lazarus

Сообщение vay1 » 30.08.2010 17:54:07

permission denied - значит что нет доступа. Значит либо открыт файл бд еще кем то в монопольном режиме, либо у тебя просто нет прав на тот файлкаталог

Добавлено спустя 1 минуту 13 секунд:
я обычно проверяю сначала доступность и работоспособность бд с помощью программы flamerobin :)
vay1
новенький
 
Сообщения: 10
Зарегистрирован: 30.08.2010 16:15:31

Re: Firebird + Lazarus

Сообщение Dem » 30.08.2010 18:08:59

vay1 писал(а):permission denied - значит что нет доступа
- это понятно :), но не понятно почему.

vay1 писал(а):Значит либо открыт файл бд еще кем то в монопольном режиме
- 100% нет. не открыт.

vay1 писал(а):либо у тебя просто нет прав на тот файлкаталог
- менял права для пользователя/группы на "firebird" - не помогло/

vay1 писал(а):я обычно проверяю сначала доступность и работоспособность бд с помощью программы flamerobin
- робин тоже не открывает.

P.S. - база 100% рабочая.

лог робина:

Код: Выделить всё
*** IBPP::SQLException ***
Context: Database::Connect
Message: isc_attach_database failed

SQL Message : -902
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements

Engine Code    : 335544344
Engine Message :
I/O error for file "/home/nik/Code/samples/firebird/warranty.fdb"
Error while trying to open file
Permission denied
Dem
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.08.2010 16:28:06

Re: Firebird + Lazarus

Сообщение Brainenjii » 30.08.2010 19:42:30

лучший способ, ИМХО, скопировать файл туда, где лежат дефолтные базы Firebird'a. Например, при установке с сайта Firebird - /opt/firebird; в OpenSUSE при установке из репозитариев базы лежат в /var/lib/firebird/data
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Firebird + Lazarus

Сообщение Vadim » 31.08.2010 02:37:44

Dem
У меня была такая же фигня. Это связано с правами самого сервера. Надо права на файл выставлять такие же, с которыми запускается сервер. Если не заморачиваться, то можно просто выставить права 0777, то есть "для всех", тогда база нормально откроется.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Firebird + Lazarus

Сообщение SeventhSon » 31.08.2010 05:31:40

в MidnightCommander посмотри права на доступ к файлу БД.Владельцем файла назначь пользователя:группу firebird:firebird
ну и на саму папку где лежит файл БД фаербёрду надо дать полные права
SeventhSon
новенький
 
Сообщения: 56
Зарегистрирован: 17.02.2009 01:57:17

Re: Firebird + Lazarus

Сообщение Ustas » 28.06.2016 16:32:00

Всем привет!
Не стал создавать новую тему - это подходит.
Итак: Windows 7, Laserus 1.6, Firebird 2.5.4.
В последнее время, в рабочей программе заметил глюк: в Firebird поле типа DATE игнорирует значение null. Другие значение нормально сохраняются.
Код: Выделить всё
...
SQLQueryWork.SQL.Add('UPDATE TECHNS');
...
SQLQueryWork.SQL.Add('DATE_CLOSE = :DATE_CLOSE');
...
SQLQueryWork.Params.ParamByName('DATE_CLOSE').IsNull
...

Что могло произойти?
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Firebird + Lazarus

Сообщение PapaNT » 28.06.2016 17:03:40

ls -la в консоли набери из /home/nik/Code/samples/firebird/, а потом посмотри на права для пользователя от имени которого идет обращение к файлам БД.
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: Firebird + Lazarus

Сообщение *Rik* » 28.06.2016 18:08:36

Ustas писал(а):Всем привет!
Не стал создавать новую тему - это подходит.
Итак: Windows 7, Laserus 1.6, Firebird 2.5.4.
В последнее время, в рабочей программе заметил глюк: в Firebird поле типа DATE игнорирует значение null. Другие значение нормально сохраняются.
Код: Выделить всё
...
SQLQueryWork.SQL.Add('UPDATE TECHNS');
...
SQLQueryWork.SQL.Add('DATE_CLOSE = :DATE_CLOSE');
...
SQLQueryWork.Params.ParamByName('DATE_CLOSE').IsNull
...

Что могло произойти?

Зачем там эта строка?
SQLQueryWork.Params.ParamByName('DATE_CLOSE').IsNull

Это свойство которое проверяет пустой ли параметр, если в параметре Null оно возвращает True.


Если Вам нужно очистить значение, используйте
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').Clear
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 427
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Firebird + Lazarus

Сообщение Ustas » 29.06.2016 11:12:20

*Rik* писал(а):Зачем там эта строка?
SQLQueryWork.Params.ParamByName('DATE_CLOSE').IsNull

Это свойство которое проверяет пустой ли параметр, если в параметре Null оно возвращает True.


Если Вам нужно очистить значение, используйте
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').Clear


Я же говорю, рабочий код... был.
а почему:
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').IsNull
- честно говоря, не помню.
Но вариант:
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').Clear
тоже не работатет.
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Firebird + Lazarus

Сообщение slyubez » 29.06.2016 21:18:20

в Firebird поле типа DATE игнорирует значение null.

С типом Date и методами AsDate у меня постоянно проблемы, поэтому я уже давно из-за этого стараюсь вместо Date использовать Timestamp.
slyubez
постоялец
 
Сообщения: 173
Зарегистрирован: 31.03.2015 08:44:07

Re: Firebird + Lazarus

Сообщение Ustas » 30.06.2016 10:56:23

slyubez писал(а):
в Firebird поле типа DATE игнорирует значение null.

С типом Date и методами AsDate у меня постоянно проблемы, поэтому я уже давно из-за этого стараюсь вместо Date использовать Timestamp.

В IBExpert нормально все пишется
Код: Выделить всё
update techns set date_close = null where id = 1

Косяк где то в компонентах Lazarus.
Тогда вопрос: используя тип Timestamp, кокой метод используется в Lazarus?

P.S. Поставил Firebird-2.5.5 - все заработало, и .IsNull и .Clear.
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Firebird + Lazarus

Сообщение *Rik* » 30.06.2016 11:34:19

Ustas писал(а):
slyubez писал(а):
в Firebird поле типа DATE игнорирует значение null.

С типом Date и методами AsDate у меня постоянно проблемы, поэтому я уже давно из-за этого стараюсь вместо Date использовать Timestamp.

В IBExpert нормально все пишется
Код: Выделить всё
update techns set date_close = null where id = 1

Косяк где то в компонентах Lazarus.
Тогда вопрос: используя тип Timestamp, кокой метод используется в Lazarus?

P.S. Поставил Firebird-2.5.5 - все заработало, и .IsNull и .Clear.

В смысле какой метод? Все тоже самое как с Date, но следует понимать, что при TimeStamp вы не сможете выбрать записи принадлежащие одному дню просто запросом
Код: Выделить всё
WHERE DATA = :MYDATE

Придется писать
Код: Выделить всё
WHERE DATA >= :DATEBEGIN AND DATA <= :DATEEND
Где DATEBEGIN должен содержать дату и время начала дня, а DATEEND дату и время конца дня.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 427
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Firebird + Lazarus

Сообщение Ustas » 30.06.2016 12:17:53

*Rik* писал(а):В смысле какой метод? Все тоже самое как с Date

Я имел ввиду:
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDate
или
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateTime
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Firebird + Lazarus

Сообщение *Rik* » 30.06.2016 12:36:14

Ustas писал(а):
*Rik* писал(а):В смысле какой метод? Все тоже самое как с Date

Я имел ввиду:
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDate
или
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateTime

Если Вас миллисекунды не волнуют, то без разницы, AsDate и AsDateTime оба работают как DateTime, только когда к параметру обращаются как AsDateTime он ещё миллисекунды тащит.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 427
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал


Вернуться в Lazarus

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

Сейчас этот форум просматривают: slyubez и гости: 41

Рейтинг@Mail.ru