Firebird + Lazarus
Модератор: Модераторы
Firebird + Lazarus
Доброго времени.
Подскажите начинающему програмировать в Linux
Сабж:
Попытка подключения к базе выдает следующее: (во вложении)
права менял.
Подскажите начинающему програмировать в Linux
Сабж:
Попытка подключения к базе выдает следующее: (во вложении)
права менял.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
permission denied - значит что нет доступа. Значит либо открыт файл бд еще кем то в монопольном режиме, либо у тебя просто нет прав на тот файлкаталог
Добавлено спустя 1 минуту 13 секунд:
я обычно проверяю сначала доступность и работоспособность бд с помощью программы flamerobin
Добавлено спустя 1 минуту 13 секунд:
я обычно проверяю сначала доступность и работоспособность бд с помощью программы flamerobin
- это понятноvay1 писал(а):permission denied - значит что нет доступа
- 100% нет. не открыт.vay1 писал(а):Значит либо открыт файл бд еще кем то в монопольном режиме
- менял права для пользователя/группы на "firebird" - не помогло/vay1 писал(а):либо у тебя просто нет прав на тот файлкаталог
- робин тоже не открывает.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
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
лучший способ, ИМХО, скопировать файл туда, где лежат дефолтные базы Firebird'a. Например, при установке с сайта Firebird - /opt/firebird; в OpenSUSE при установке из репозитариев базы лежат в /var/lib/firebird/data
Dem
У меня была такая же фигня. Это связано с правами самого сервера. Надо права на файл выставлять такие же, с которыми запускается сервер. Если не заморачиваться, то можно просто выставить права 0777, то есть "для всех", тогда база нормально откроется.
У меня была такая же фигня. Это связано с правами самого сервера. Надо права на файл выставлять такие же, с которыми запускается сервер. Если не заморачиваться, то можно просто выставить права 0777, то есть "для всех", тогда база нормально откроется.
-
SeventhSon
- новенький
- Сообщения: 56
- Зарегистрирован: 17.02.2009 00:57:17
в MidnightCommander посмотри права на доступ к файлу БД.Владельцем файла назначь пользователя:группу firebird:firebird
ну и на саму папку где лежит файл БД фаербёрду надо дать полные права
ну и на саму папку где лежит файл БД фаербёрду надо дать полные права
Всем привет!
Не стал создавать новую тему - это подходит.
Итак: Windows 7, Laserus 1.6, Firebird 2.5.4.
В последнее время, в рабочей программе заметил глюк: в Firebird поле типа DATE игнорирует значение null. Другие значение нормально сохраняются.
Что могло произойти?
Не стал создавать новую тему - это подходит.
Итак: 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
...
Что могло произойти?
ls -la в консоли набери из /home/nik/Code/samples/firebird/, а потом посмотри на права для пользователя от имени которого идет обращение к файлам БД.
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
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* писал(а):Зачем там эта строка?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в Firebird поле типа DATE игнорирует значение null.
С типом Date и методами AsDate у меня постоянно проблемы, поэтому я уже давно из-за этого стараюсь вместо Date использовать Timestamp.
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.
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
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*Rik* писал(а):В смысле какой метод? Все тоже самое как с Date
Я имел ввиду:
Код: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateКод: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateTime- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
Ustas писал(а):*Rik* писал(а):В смысле какой метод? Все тоже самое как с Date
Я имел ввиду:илиКод: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateКод: Выделить всё
SQLQueryWork.Params.ParamByName('DATE_CLOSE').AsDateTime
Если Вас миллисекунды не волнуют, то без разницы, AsDate и AsDateTime оба работают как DateTime, только когда к параметру обращаются как AsDateTime он ещё миллисекунды тащит.
