I’m trying to create a Firebird database in my home directory through Flamerobin however I always get
*** IBPP::SQLException ***
Context: Database::Create
Message: isc_dsql_execute_immediate 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 during "open O_CREAT" operation for file "/home/user/test.fdb"
Error while trying to create file
Permission denied
even though the file is chmod 777, the file /etc/firebird/2.5/firebird.conf has been modified so that:
DatabaseAccess = Full
is set to allow access to all files.
The service is running:
$ ps ax | grep fireb
3909 ? S 0:00 /usr/sbin/fbguard -daemon -forever -pidfile /var/run/firebird/2.5/fbserver.pid
even though strangely the netstat doesn’t find the connection port:
netstat | grep 3050
and returns empty list.
If I connect to an existing database all works, for instance connecting to
/var/lib/firebird/2.5/system/help.fdb
correctly shows tables.
asked Apr 29, 2015 at 11:40
saimiris_develsaimiris_devel
6671 gold badge6 silver badges19 bronze badges
0
I see two possible causes:
-
You mention that the file is chmod 777, this implies that the file already exists, so creating a new database will fail.
-
You are trying to create (or connect) to a file in a user folder (I assume yours), through the Firebird server (although the fact no server is running might indicate this isn’t the case).
I assume that the Firebird server isn’t running under your account (but under the firebird user), and therefore it isn’t allowed to access files in your folder.
You need to create (or access) the database in a location where the Firebird user has sufficient access rights, or use a local (embedded) connection (although I am not sure if that is supported by flamerobin.
answered Apr 29, 2015 at 16:40
Mark RotteveelMark Rotteveel
96.7k180 gold badges135 silver badges188 bronze badges
You must do some things… first, let’s see the security stuff…
in the file /etc/firebird/2.5/firebird.conf
section: DatabaseAccess it must be like this:
DatabaseAccess Restrict /the/directory/you/want/to/put/the/database
now, in the file /etc/firebird/2.5/aliases.conf
you put an alias and the directory…
diryouwant = /the/directory/you/want/to/put/the/database/database.fdb
save and restart the firebird service like:
sudo service firebird-2.5"theversionyouhave" restart
you must change the directory owner like this:
sudo chown firebird.firebird /the/directory/you/want/to/put/the/database
and now you can use flamerobin without any trouble…
dur
15k25 gold badges81 silver badges117 bronze badges
answered Dec 29, 2015 at 20:45
Check /home/user owner and mode and firebird process owner. I’m pretty sure user which running firebird just do not have access to this directory.
answered Apr 29, 2015 at 14:33
I had same problem, as described, trying run firebird 2.5 in a Oracle Linux OS, can’t restore any database with gbak, same error message.
After a search, I found an answer saying about permissions on the destination directory and on the temp directory.
My solution: as root:
first re-run firebird installer to grant that are no problems in installation;
after, create specific directory for firebird databases on / (example, /fdb),
move the backup files to this directory;
change owner of entire directory to firebird with this commands
chown firebird /fdb -R
chmod 700 firebird /fdb -R
after this, gbak is normally for me, running it as root.
reference: http://forums.devshed.com/firebird-sql-development-61/gbak-restore-linux-453690.html
answered Oct 3, 2017 at 8:48
Topic: IBX/IBDatabase-> I/O error during createfile (open) operation for file… (Read 9784 times)
Hi!
I use Firebird 2.5, IBExpert and IBX. I want to establish a connection between IBX and firebird, but it does not work for some reason.
When I tried to connect to database I get succescful connection. I attached first image. If I open the IBExpert the database is working without problems. But when I tried to IBDatabase connected=true I cannot open the database because lazarus I/O error during createfile (open) operation for file «localhost» I attached second image.
What am I doing wrong? I used the same settings in the delphi and it works perfectly.
Many thanks.
Best regards
Logged
When I tried to connect to database I get succescful connection. I attached first image. If I open the IBExpert the database is working without problems. But when I tried to IBDatabase connected=true I cannot open the database because lazarus I/O error during createfile (open) operation for file «localhost» I attached second image.
What did you enter for DatabaseName ?
(It needs to be the HOSTNAME:<complete path> <filename>)
You could try 127.0.0.1:C:etc.
« Last Edit: April 26, 2018, 01:43:05 pm by rvk »
Logged
I use direct path, becasue this is test project.
DatabaseName: 192.168.0.104:C:UsersfloriankovacDesktopprobadbdbbase.gdb
Logged
DatabaseName: 192.168.0.104:C:UsersfloriankovacDesktopprobadbdbbase.gdb
And you get a «localhost:» error?
That’s weird indeed.
Logged
Maybe you can create a very small test-project which reproduces this problem so we can test this.
Logged
yes I get localhost error. I try to open to another .gdb file but I get the same problem. If I use ZConnection and set this gbd databasename it works fine. This gdb file is working perfectly with ZConnection.
I uninstalled lazarus ibx, firebird, IBExpert, etc but unfortunately not working.. I do not understand
Logged
Logged
It works fine for me(IBX 2.2). After I press the connect button a «Database login» form appears. If I type a username and password everything works fine.
« Last Edit: April 26, 2018, 02:16:50 pm by GetMem »
Logged
Can you check Databasename just before connecting (in code)?
-
procedure TForm1.FormCreate(Sender: TObject);
-
begin
-
Showmessage(IBDatabase1.DatabaseName);
-
IBDatabase1.Connected := true;
-
end;
I attached> https://1drv.ms/f/s!AqVsnEe7He7Ngv0CQZRLhLJMcaDTGg
So, where do you set the IBDatabase1.Connected := true; ???
« Last Edit: April 26, 2018, 02:16:25 pm by rvk »
Logged
just there… otherwise with code…but if it does not go then it will not go anyway (code)
Logged
just there… otherwise with code…but if it does not go then it will not go anyway (code)
Switching to Connected in the Object Inspector work for me too.
If you leave it unconnected and you create a .FormCreate and put those line I suggested in?
What does the showmessage give you and what is the exact error-message then?
And what version of IBX are you working with? (I saw you still worked with an old Lazarus version 1.6).
Logged
Yes! I installed old version becasue I get same problem the IBX 2.3.0
I’ll try it right away. I’ll be right back
Logged
just work. The probem was IBX version. The ibx 2.2.0 is working with lazarus 1.8.2. The old version cant work.
Thank you!!!!
Logged
Содержание
- iBase.ru Forum
- Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_xxxx
- Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_xxxx
- Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
- Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
- Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
- Error while trying to open file firebird
- Error while trying to open file firebird
iBase.ru Forum
Форум по InterBase, Firebird и Yaffil
- Темы без ответов
- Активные темы
- Поиск
- Наша команда
Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_xxxx
Модераторы: kdv, CyberMax
Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_xxxx
Сообщение kmi » 30 авг 2007, 12:42
Сообщение WildSery » 30 авг 2007, 12:52
Сообщение kmi » 30 авг 2007, 12:56
Сообщение WildSery » 30 авг 2007, 13:15
Сообщение kmi » 30 авг 2007, 14:08
Сообщение kmi » 30 авг 2007, 14:30
Сообщение WildSery » 30 авг 2007, 15:10
Сообщение kmi » 30 авг 2007, 15:13
Сообщение Dimitry Sibiryakov » 30 авг 2007, 15:37
Тебя не это спрашивают. Тебя спрашивают под каким аккаунтом запущен сервер FB.
Собственно, при кривой БД и запросе сожрать 30ГБ под сортировку — нет ничего невозможного.
Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
Сообщение hvlad » 30 авг 2007, 15:52
Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
Сообщение kmi » 30 авг 2007, 16:25
Сообщение kmi » 30 авг 2007, 16:28
Сообщение stix-s » 30 авг 2007, 18:26
Сообщение kmi » 30 авг 2007, 18:31
Re: Ошибка I/O error for file «C:WINDOWSTEMPfb_sort_
Сообщение WildSery » 30 авг 2007, 18:52
Сообщение kmi » 31 авг 2007, 19:35
В лог-файле ошибка отсутствует. Фиксируются только данные о разрывах и восстановлении подключения.
Установка параметра TempDirectories = e:temp; f:temp в файле конфигурации привела к тому, что ошибка с файлом сортировки исчезла, но возникла другая проблема. Некоторое количество клиентов подключается замечательно. Но затем подключения начинают отвергаться. Даже попытка подключения к расшаренной папке на сервере приводит к ошибке «Превышено максимальное количество подключений». В результате из 40 клиентов работает только 15. Впрочем, эти 15 работают корректно.
Если я комментирую параметр TempDirectories в файле конфигурации — все клиенты подключаются, но вновь возникают проблемы с сортировкой.
Источник
Error while trying to open file firebird
Учусь работать на python 2.7 с базами данных. Использую firebird. Пытаюсь работать по вот такому мануалу
http://firebirdsql.org/file/document. g-started.html
Создал базу данных, но при выполнении такого кода:
Точно есть и именно с таким путем?
Точно есть и именно с таким путем?
Ну без английского сложно программировать.
Вот тут, есть больше примеров,
Вот тут, есть больше примеров,
И такой варианта подключения тоже сработал
con = fdb.connect(dsn=’localhost:/home/korolev/Downloads/mkpdlpdb.gdb’, user=’sysdba’, password=’respect’, charset=’UTF8′)
Хотя раньше я его использовал уже и не получилось. Но был потом обнаружен косяк с оквычками. Ресурс с которого я копировал команду использовал одинарные ковычки, но другие и они вызывали ощшибку. Наложилось еще несколько других ошибок и я заплутал.
Теперь можно хоть дальше посмотреть как это работает.
Источник
Error while trying to open file firebird
Junior Member Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Проинсталлировал FireBird 2.5 Beta.
Я себе пишу вроде мануала, чтобы была в будущем подсказка под рукой:
Прокоментируйте мои действия:
С isql.exe не разобрался,
для создания базы данных и таблицы в ней, использовал IB/FB Development Studio.
Запустить IB/FB Development Studio
Войти в Редактор Баз Данных.
Создать новую базу данных
Указать сервер, указать путь к файлу
Открыть Базу Данных
Правая кнопка мыши — создать объект (новую таблицу)
Правая кнопка мыши — создать поле, если нужно добавить первичный ключ и автоинкремент (создать генератор)
—————————————————————————-
Запустить Delphi2007
Создать новый проект
Из вкладки InterBase добавить на форму компонент TIBDatabase
Из вкладки InterBase добавить на форму компонент TIBTransaction
Из вкладки InterBase добавить на форму компонент TIBDataSet
Из вкладки Data Access добавить на форму компонент TDataSource
Из вкладки Data Controls добавить на форму компонент TDBGrid
—————————————————————————-
Настройка компонента TIBDatabase:
В свойстве компонента DefaultTransaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Database Editor
Remote
localhost
TCP
ввести путь к файлу базы данных
USER: SYSDBA
PASSWORD: masterkey
Свойство компонента Connected =TRUE
—————————————————————————-
Настройка компонента TIBTransaction:
В свойстве компонента DefaultDatabase: имя компонента TIBDatabase
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Transaction Editor
Выбрать опцию Read Committed (для чтения и записи по подтвержением)
Свойство компонента Active =TRUE
—————————————————————————-
Настройка компонента TIBDataSet:
В свойстве компонента Database: имя компонента TIBDatabase
В свойстве компонента Transaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) — вызвать DataSet Editor
Select Table Name: (доступны только при активных предыдущих компонентах)
Select Primary Keys (либо выбрать вручную автоинкрементное поле)
Update Fields: (рекомендуется снять выбор с автоинкрементного поля)
Нажать кнопку «Generate SQL»
Свойства компонента DeleteSQL,InsertSQL,ModifySQL,RefreshSQL автоматически заполнятся.
Выбрать свойство компонента SelectSQL в Object Inspector, вызвать CommandText Editor
Выбрать таблицу, ввести SQL: Select * from (имя выбранной таблицы)
В свойстве компонента GeneratorField: выбрать имя генератора, выбрать поле, применить: On New Record
Свойство компонента Active =TRUE
—————————————————————————-
Настройка компонента TDataSource:
В свойстве компонента DataSet: имя компонента TIBDataSet:
Свойство компонента Enable =TRUE
—————————————————————————-
Настройка компонента TDBGrid:
В свойстве компонента DataSource: имя компонента TDataSource
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Columns Editor
Если предыдущие компоненты активны (база данных подключена), то доступна кнопка «Добавить все поля» (Add All Fields)
В Дельфи, на вкладке Structure — компонент TDBGrid/Columns — выбрать столбец, задать его ширину в пикселях. Тем столбцам, которые не надо показывать — сделать Visible=FALSE (либо удалить из списка в столбцов в Columns Editor)
—————————————————————————————————————————
К сожалению, для информации у меня только книга Архангельского «Программирование в Delphi7» и интернет, поэтому будет много вопросов:
Вообщем, база данных подключилась. В базе данных Character Set = UNICODE_FSS (хочу и на русском и на европейских языках писать)
Если ввожу в текстовые поля английские символы — всё нормально, если ввожу русские — выдает ошибку «malformed string».
Далее, хочу создать программку, в которой можно самому программно создавать таблицы с полями.
Программный код создания таблицы отсюда: http://ibase.ru/devinfo/ibx.htm
create table X
(id int not null,
name varchar(30),
constraint PK_X primary key (id));
Мои вопросы — куда этот код вставлять? И как добавлять новые поля? Что это за ошибка «malformed string» (как от этого избавиться)? Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 19:32 22-06-2009 | Исправлено: Kursist, 19:42 22-06-2009
volser
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
По поводу ошибки «malformed string» почитайте здесь IBase |
Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 19:46 22-06-2009 |
X11
Silver Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Цитата: С isql.exe не разобрался, Цитата: скачай лучше ———- |
Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 20:31 22-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору volser FireBird 2.5 Beta Delphi2007 В компоненте IBDatabase обнаружил UTF8, а вот в Как же быть? |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:37 22-06-2009 |
X11
Silver Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Цитата: Настройка компонента TIBDatabase: Не увидел, с какой кодировкой ты базу создавал и с какой кодировкой подключаешься. ———- |
Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 20:39 22-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11
Цитата: скачай лучше IBExpert он на русском и для жителей бывшего СНГ бесплатен ОПА: (http://www.ibase.ru/unicode_faq.html) 15th June 2009 Добавлено: Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. Server: Remote, ServerName: localhost, Protocol: TCP/IP, ServerVersion: FireBird 2.5 Test: Connecting. Failed! Attempting to connect to services manager. Passed! Disconnecting from database. Passed! Я так понимаю, что файла этого нет, а разве он его сам не создает? —————————————————————- Добавлено: Не могу создать таблицу в базе данных (эти опции не активны в меню), предположительно это из-за ошибки доступа — не может подсоединиться, только почему я не пойму! Чисто административные проблемы, наверное, не люблю я такие проблемы — совсем это не программирование! |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:43 22-06-2009 | Исправлено: Kursist, 21:48 22-06-2009 |
volser
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
Цитата: Для полной поддержки unicode нужно использовать Delphi2009. |
Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 22:35 22-06-2009 |
X11
Silver Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Цитата: IBExpert не является unicode-приложением Если быть внимательным, то ты не прав. Цитата: Для полной поддержки unicode нужно использовать Delphi2009. Или компоненты типа TNT или DevExpress, или TMS Цитата: Тест не работает — ругается! Сочувствую. Жди телепатов. Цитата: Я так понимаю, что файла этого нет, а разве он его сам не создает? В эксперте выбери меню Создать новую базу. А ты что, подключаешься к несуществующей? Добавлено: ———- |
Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 22:50 22-06-2009 |
volser
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11
Цитата: Начиная с Delphi2009. Цитата: Пакет для работы с unicode есть, но сами визуальные компоненты компоненты не являются unicode, поскольку построены на vcl. |
Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 23:05 22-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11
Всё заработало. Перезагрузка ноутбука помогла. При подключении базы данных в Дельфи, пришлось использовать новый IBDataSet, так как в предыдущем были настройки на предыдущую базу данных, и генератов автоинкремента ключевого поля. Цитата: Dinamic SQL error У меня в таблице нет столько полей/столбцов! Добавлено: А когда пытаешься подключиться к базе данных, то выдает ошибку: (перевод: Добавлено: |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 23:52 22-06-2009 | Исправлено: Kursist, 01:33 23-06-2009 |
X11
Silver Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Цитата: Читай про Windows авторизацию в Firebird ———- |
Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 09:23 23-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Можете подсказать, как в IBExpert в уже созданной таблице удалить поле? |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 14:46 24-06-2009 |
volser
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
Открыть таблицу. Перейти на закладку поля. Правой клавишей нажать на нужное поле. Выбрать пункт меню «Удалить поле. « |
Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:03 24-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Правый клик мышкой по полю. В popup-меню: New Filed Edit Field Drop Field Create Foreign Key.. Reorder Fields Copy Fields list to clipboard Нет у меня «Delete Field»! Если бы это было так очевидно, я бы не спрашивал. Во вкладке DDL хотел удалить строку создания поля, в команде создание таблицы, но не разрешает.. |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 15:39 24-06-2009 | Исправлено: Kursist, 15:47 24-06-2009 |
data man
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist 1. Если не открыт Эксплорер БД — нажать F11. 2. В нем (обычно он слева), в списке таблиц, найти нужную. 3. В списке полей, правый клик, в меню «Удалить поле» или нажать Ctrl-Del. Если поле только одно, то удалить его таким образом нельзя. P.S. |
Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 15:53 24-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору data man
IB Expert — The Most Expert for InterBase, Firebird and Yaffil Полей несколько. Цитата: В popup-меню: + не реагирует. |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:06 24-06-2009 |
volser
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
Цитата: Команды «удалить поле» — НЕТ! А это что? |
Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:07 24-06-2009 | Исправлено: volser, 16:07 24-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Цитата: А! Это и есть УДАЛИТЬ! Бл. (Извиняюсь!) |
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:08 24-06-2009 |
data man
Advanced Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist Может стоит переключить интерфейс IBExperta’а на русский ? P.S. Здесь cсылка лежит более новый перевод, чем в инсталле. |
Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 16:25 24-06-2009 | Исправлено: data man, 16:38 24-06-2009 |
Kursist
Junior Member |
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору data man в настройках язык интерфейса только English (Default) Ещё вопрос: Добавлено: Вот такой скрипт получается: alter table ORDERS This operation is not defined for system tables. Источник Adblock |
УРА, НАШЕЛ!!! Спасибо Дмитрию, натолкнул на мысль. Хотя он был и не совсем прав )))
Возможно IBExpert и в самом деле может использовать embedded server, точно не знаю, но зато я на 100% уверен что в моем случае он подключается к настоящему FB серверу. (доказательства в Шагах 9 и 8 моего предыдущего поста).
Оказалось, что проблема на самом деле не в IBExpert, не в embedded server и не в ADO.NET. Проблема в том, как fbserver обрабатывает символические ссылки.
Поскольку я считаю это как минимум некорректностью реализации сервера, а как максимум — багом, то детально опишу причины проблемы.
Сформулировать можно в общем случае так: «При одновременном подключении 2 и более независимых клиентов к одному и тому же файлу БД через FB server, при условии, что один из клиентов сообщает серверу путь к файлу, отличающийся от пути, сообщенного серверу первым подсоединившимся клиентом, сервер отказывает клиенту в подключении мотивируя это тем, что файл уже используется другим приложением».
В каком случае пути к одному и тому же файлу могут отличаться? в случае, если используется символическая ссылка на каталог. Пример:
На диске С: в каталоге db лежит файл application.fdb.
На этом же диске создана символическая ссылка (symlink или junction) на каталог db с именем sdb.
В этом случае, к файлу application.fdb можно «добраться» двумя разными путями, которые абсолютно эквивалентны с точки зрения операционной системы:
1) c:dbapplication.fdb
2) c:sdbapplication.fdb
Однако же, эти два пути представляются серверу Firebird абсолютно различными! Поэтому, если вы попытаетесь подключиться ЛЮБЫМ клиентом (даже упомянутым Дмитрием isql.exe) к одной и той же БД, используя при первом подключении путь (1), а при втором — путь (2), сервер отвергнет вторую попытку подключения!!!
Вероятнее всего, когда сервер проверяет путь к БД, к которой клиент хочет подключиться, он сравнивает его с путями уже имеющихся подключений. Не найдя совпадения, сервер считает что он этой БД не подключен, а следовательно требует монопольного доступа к файлу. Что не есть корректно (на мой взгляд).
Предлагаемое решение: перед проверкой пути к БД, сервер должен разрешить все символические ссылки и сравнивать абсолютные дисковые пути, лишенные символических ссылок.
А можно просто нам, разработчикам, зарубить на носу — всегда серверу передавать в строке коннекта только абсолютный путь, без всяких ссылок.
В любом случае, всем спасибо за участие, для меня проблема решена
АПЕКСОФТ Community
»
Программные продукты
»
Общий
»
Ошибка соединения с базой основных данных
Ошибка соединения с базой основных данных |
Предыдущая тема Следующая тема |
Rbcz |
|
Ранг: Новенький Группы: Пользователи
|
Добрый день, Скачала и установила демо-версию «торговля и склад». Но не могу войти в неё, так как появляется вот такая ошибка: Ошибка соединения с базой основных данных IO error during «CreateFile (open)» operation for file «c:Program FilesApecCRMLite3Data_232_1250……» Системе не удается найти указанный путь. Я проверила, действительно такого файла нет. Что делать??? |
Вверх |
|
Сергей |
|
Ранг: Сотрудник Группы: Пользователи, Администраторы Сказал(а) «Спасибо»: 2 раз |
При установке спрашивалось в какую папку размещать файлы баз данных. По умолчанию это c:Program FilesApecTradeData_232_1250……» Почему у Вас в пути CRMLite трудно сказать. Найдите в какой папке находится файл ApecMainTrade.fdb и пропишите этот путь в настройке подключения. |
Вверх |
|
Вадим_2111 |
|
Ранг: Новенький Группы: Пользователи
|
Почему у Вас в пути CRMLite трудно сказать. Найдите в какой папке находится файл ApecMainTrade.fdb и пропишите этот путь в настройке подключения. ApecMainTrade.fdb у меня вообще нет такого файла в папке с установленной программой!Установил АПЕК CRM Lite 3.4.0.8 (Украина) + СУБД Firebird (сборка платформы 234, конфигурация 1.2.7.1) (26,7 M) [/quote] |
Вверх |
|
Сергей |
|
Ранг: Сотрудник Группы: Пользователи, Администраторы Сказал(а) «Спасибо»: 2 раз |
Так какую программу Вы устанавливаете? Торговля и Склад или CRM Lite |
Вверх |
|
Сергей |
|
Ранг: Сотрудник Группы: Пользователи, Администраторы Сказал(а) «Спасибо»: 2 раз |
Добрый день! Получилось ли у Вас настроить подключение к базе? Попробуйте переустановить программу, если оставить все значение по-умолчанию, должно все запуститься. |
Вверх |
|
Пользователи, просматривающие эту тему |
Guest |
АПЕКСОФТ Community
»
Программные продукты
»
Общий
»
Ошибка соединения с базой основных данных
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Question:
I want to develop a demo project in ASP.NET Core MVC with embedded Firebird v2.5. I read Firebird connection string information from a text file. Because I will change database in project presentation thus I must read from a text file. Or what is the your idea?
In this project I create a DbContext
file and I fill in the database information using this class:
public class DbContext
{
string startupdirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)+"\settings.txt";
string dblocation = string.Empty;
string userName = string.Empty;
string pass = string.Empty;
int port = 0;
string dataSource = string.Empty;
public DbContext()
{
if (File.Exists(startupdirectory))
{
string[] allData = File.ReadAllLines(startupdirectory);
dblocation = allData[0].ToString();
userName = allData[1].ToString();
pass = allData[2].ToString();
port = Convert.ToInt32(allData[3].ToString());
dataSource = allData[4].ToString();
}
}
public string GetConnectionString()
{
FbConnectionStringBuilder csb = new();
csb.Database = dblocation;
csb.DataSource = dataSource;
csb.UserID = userName;
csb.Password = pass;
csb.ServerType = FbServerType.Default;
csb.Port = port;
//i added below code for embedded db
csb.Dialect = 3;
csb.Role = "";
csb.ConnectionLifeTime = 15;
csb.Pooling = true;
csb.MinPoolSize = 0;
csb.MaxPoolSize = 50;
csb.PacketSize = 8192;
return csb.ToString();
}
public FbConnection GetConnection()
{
string connectionString = GetConnectionString();
FbConnection connection = new();
connection.ConnectionString = connectionString;
connection.Open();
return connection;
}
public void KillConnection(FbConnection connection)
{
connection.Close();
connection.Dispose();
}
}
When I work locally, everything is fine. I can do all CRUD operations.
But when I upload my project, I see this screen:
An unhandled exception occurred while processing the request.
IscException: I/O error during «CreateFile (open)» operation for file «C:FirmaBlinePalmeWEBMandanten11PalmeITGDI21.FDB»
Error while trying to open file
FirebirdSql.Data.Client.Managed.GdsConnection.HandleResponseException(IResponse response)
FbException: I/O error during «CreateFile (open)» operation for file «C:FirmaBlinePalmeWEBMandanten11PalmeITGDI21.FDB»
Error while trying to open file
FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
Stack Query Cookies Headers Routing
IscException: I/O error during «CreateFile (open)» operation for file «C:FirmaBlinePalmeWEBMandanten11PalmeITGDI21.FDB» Error while trying to open file FirebirdSql.Data.Client.Managed.GdsConnection.HandleResponseException(IResponse response) FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse() FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.Attach(DatabaseParameterBufferBase dpb, string database, byte[] cryptKey) FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
Show raw exception details
FbException: I/O error during "CreateFile (open)" operation for file "C:\Firma\BlinePalmeWEB\Mandanten\11PalmeIT\GDI21.FDB" Error while trying to open file
FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
FirebirdSql.Data.FirebirdClient.FbConnection.Open()
GDIWebApplication.Controllers.DbContext.GetConnection() in DbContext.cs
GDIWebApplication.Models.Deneme.ProductRepository.GetArtikelList() in ProductRepository.cs
GDIWebApplication.Controllers.ProductController.Index(string search) in ProductController.cs
lambda_method1(Closure , object , object[] )
Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
Show raw exception details
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): I/O error during "CreateFile (open)" operation for file "C:\Firma\BlinePalmeWEB\Mandanten\11PalmeIT\GDI21.FDB"
Error while trying to open file
---> FirebirdSql.Data.Common.IscException: I/O error during "CreateFile (open)" operation for file "C:\Firma\BlinePalmeWEB\Mandanten\11PalmeIT\GDI21.FDB"
Error while trying to open file
at FirebirdSql.Data.Client.Managed.GdsConnection.HandleResponseException(IResponse response)
at FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse()
at FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.Attach(DatabaseParameterBufferBase dpb, String database, Byte[] cryptKey)
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
at FirebirdSql.Data.FirebirdClient.FbConnection.Open()
at GDIWebApplication.Controllers.DbContext.GetConnection() in C:UsersMDsourcereposGDIWebApplicationModelsContextDbContext.cs:line 60
at GDIWebApplication.Models.Deneme.ProductRepository.GetArtikelList() in C:UsersMDsourcereposGDIWebApplicationModelsRepositoriesProductRepository.cs:line 20
at GDIWebApplication.Controllers.ProductController.Index(String search) in C:UsersMDsourcereposGDIWebApplicationControllersProductController.cs:line 16
at lambda_method1(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
I added all privileges is IIS but I can’t make this work – how can I solve this?
Answer:
You are not using Firebird Embedded. As you specified FbServerType.Default
(which is also the default value), you are connecting through a normal Firebird server using TCP/IP, and the error indicates that the database file does not exist (or possibly that the Firebird server process does not have sufficient access rights to open the file).
If you really want to use Firebird Embedded (which personally I think is not a good idea for a server application), you need to specify FbServerType.Embedded
. Also make sure that the database file actually exists at C:FirmaBlinePalmeWEBMandanten11PalmeITGDI21.FDB
on the server specified by dataSource
.
If you have better answer, please add a comment about this, thank you!
Source: Stackoverflow.com