0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
|
|
1 | |
Как мне настроить обращение к базе или как ее открыть?28.03.2018, 23:56. Показов 5324. Ответов 7
Метки нет (Все метки)
Всем привет! Знаю, глупый вопрос задам, но деваться не куда. Сразу поправлюсь, в БД я ноль, но разобраться с вопросом нужно.
Подскажите, как мне настроить обращение к базе или как ее открыть. Поясню в чем суть вопроса: Есть софт который работает с FDB базами, а точнее в них ведет учет клиентов, заказав, материалов, товарный учет. Но у предприятия нет программы для планирования производства. Так чтоб не забивать все данные во второстепенный софт вручную, нужно настроить обращение к этим базам данных, чтоб второстепенный софт выдергивал из них нужную инфу и подставлял в определенный график планирования. Установил Firebird и IBExpert Но в итоге открывая база в IBExpert выдает такую дичь. Подскажите что делать и как быть. Или хотя бы где копать... Error Message: ---------------------------------------- Unsuccessful execution caused by an unavailable resource. unavailable database. [00541C13] FIB.IBError (Line 556, "FIB.pas" + 55) + $2 [0053D60C] FIBDatabase.TFIBDatabase.Open (Line 1122, "FIBDatabase.pas" + 64) + $9 [00517BC3] pFIBDatabase.TpFIBDatabase.Open (Line 285, "pFIBDatabase.pas" + 9) + $2 [0053D8FD] FIBDatabase.TFIBDatabase.SetConnected (Line 1192, "FIBDatabase.pas" + 4) + $4 [010C128E] IBEDatabases.TIBEDatabase.Connect (Line 3238, "IBEDatabases.pas" + 2) + $10 [0105976A] InspectorFm.TInspectorFrame.OpenDatabase (Line 3325, "Frames\InspectorFm.pas" + 44) + $D [01054582] InspectorFm.TInspectorFrame.ObjectsTLDblClick (Line 1292, "Frames\InspectorFm.pas" + 11) + $A [0045539D] Controls.TControl.DoMouseDown (Line 4306, "Controls.pas" + 2) + $21 [00455459] Controls.TControl.WMLButtonDblClk (Line 4331, "Controls.pas" + 5) + $C [00444160] Forms.StdWndProc (Line 1459, "Forms.pas" + 8) + $0 [0044D96F] Forms.TApplication.ProcessMessage (Line 6630, "Forms.pas" + 13) + $1 [01106B4A] IBExpert.IBExpert (Line 935, "D:\Projects_5\IBExpert\IBExpert.dpr" + 147) + $7
0
|
28.03.2018, 23:56 | |
Ответы с готовыми решениями:
7
Как бы мне настроить Wi-Fi? Как мне открыть код? Подскажите как мне открыть фаил мдф Как мне настроить Angular 8 SSR в связке с .NET Core? |
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
|
|
29.03.2018, 23:48 [ТС] | 3 |
Ок! Спасибо. Немного ближе подобрался=))
Файл базы открывается в IBExpert, все круто=) Теперь другая проблема, не могу подключится к ней в Delphi, выдает вот такую хрень Unsupported on-disk structure for file L:\***\DEMO.FDB; found 32779, support 17 Не могу найти инфу по этой ошибки((( Уже все перепробовал, что нашел. Firebird 2.5.8.27089 поставил IBXepert с офсайта поставил (В нем база открывается если указать fbembed.dll из Firebird-2.5.8.27089-0_Win32_embed вместо gds32.dll) Все по туториалу так сказать. Но в делфях не открывает( Ребят простите за возможно глупые вопросы, выручите советом, хотя бы где копать(
0
|
9 / 9 / 1
Регистрация: 25.06.2017
Сообщений: 51
|
||||||||||||||||
03.04.2018, 01:24 | 4 | |||||||||||||||
у тебя гранаты не той системы
У каждой версии сервера своя ODS. В конкретном твоем случае ошибка говорит, что ты пытаешься открыть базу не той клиентской библиотекой. Не знаю, какие туториалы ты читал, но я бы посоветовал тебе почитать Ковязина и Вострикова "Мир InterBase" (книжка есть на рутрекере) или Хелен Борри "Firebird: руководство разработчика баз данных". Если вкратце: различают полноценный и встроенный (embedded) сервер. Полноценный сервак может запускаться и как служба(демон), и как приложение. Про различные архитектуры сервера (суперсервер, классик, суперклассик) читай сам. Все, что написано ниже, справедливо для FB 2.5.х и ниже (в FB 3.x.x кое-что м.б. немного по-другому). Если ставишь сервер штатным инсталлятором, то по умолчанию он должен установиться, как служба (т.е. прописать себя любимого в реестре, как единственного, кто может работать с базами Firebird на данной машине, и установить себя в автозапуск и приготовиться слушать порт 3050). При этом в процессах винды будет висеть служба сервера fbserver.exe, который находится в <Firebird root dir>\bin\. В этой же папке находится клиентская библиотека fbclient.dll, которую и надо указывать при подключении компонентов доступа к БД. Теперь про gds32.dll. Исторически эта библа осталась от Interbase (форком которого и является firebird). Опять же исторически она помещалась %SystemRoot%\system32\(для x32). Поэтому "встроенные" дельфевые компоненты IBX "ищут" ее именно там. И у программера нет возможности без хака указать другую клиентскую библиотеку (в FIBPlus, которое используется IBExpert'ом, это поведение уже изменено). Вот поэтому (для тех, кто пользуется IBX в дельфях) в штатном инсталляторе Firebird предлагается возможность скопировать еще один экземпляр fbclient.dll в %SystemRoot%\system32\, но под именем gds32.dll. Желательно, чтобы строка коннекта к базе выглядела так: <имя сервера или IP>/<номер порта, если не 3050>:<полный путь к БД> Имя сервера или IP указывается в файле %SystemRoot%\system32\drivers\etc\hosts, например
Если не указать имя сервера или IP, то для FB 1.5.x доступ к базе будет монопольным (т.е. другие приложения подключиться уже не смогут), для FB 2.1.x не помню, FB 2.5.x вроде не блокирует (для суперсервера точно). Если я правильно ошибаюсь, сервер, запущенный как служба, на данной машине может быть только один. Если тебе необходимо, чтобы на машине крутилось несколько серверов (например, 2.1.x + 2.5.x + 3.0.x), то их надо будет запускать, как приложение. При этом необходимо изменить несколько настроек в firebird.conf. Это ты сможешь узнать потом, когда освоишь азы. Встроенный (embedded) сервер это fbserver.exe + fbclient.dl = fbembed.dll. Указываешь только путь к базе и эту библу (без пароля и логина). Не рекомендуется для разработки. Ну и напоследок. Если у тебя русскоязычная винда (кодовая страница win1251), то ты можешь совершенно бесплатно пользовать IBE отсюда. Разработчики FB тусуются здесь, но с пустой головой ходить туда не советую Вроде все.
0
|
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
|
|
03.04.2018, 01:39 [ТС] | 5 |
о_О=))) Очень круто все объяснил!
Спасибо за инфу. Она в любом случае мне пригодится, но на данном этапе уже разобрался и решил вопрос. Правда теперь немного Делва голову делает. Прописал обращение к библиотеке через 2 IBQuery, так как обращение в таблице к разным строкам идет. Для теста компилил, все было круто, все работало. После 5 или 6 раза и последнего сохранения начал выбрасывать Access violation at address 006DA6F5 in module 'proizvodstvo2'. Read of address 00000000.
0
|
9 / 9 / 1
Регистрация: 25.06.2017
Сообщений: 51
|
|
03.04.2018, 09:11 | 6 |
Могу предположить, что ошибка никак не связана с Firebird. AV - это обращение к несуществующему объекту в памяти. Приводи полный код процедуры
0
|
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
|
|||||||||||
03.04.2018, 12:20 [ТС] | 7 | ||||||||||
Проблема была связанна с коряво установленными FireBird и IBExpert.
Вопрос решен таким образом: Снес все начисто, скачал программы с оф.сайтов и поставил по новой. Все работает. Тут не правильно прописал
0
|
9 / 9 / 1
Регистрация: 25.06.2017
Сообщений: 51
|
|||||||||||||||||||||
03.04.2018, 22:39 | 8 | ||||||||||||||||||||
Во второй портянке ты два раза пытаешься селектить один и тот же датасет, причем во второй раз меняешь текст запроса еще открытого датасета? Я правильно понял?
по коду: 1. вместо
вместо
0
|
03.04.2018, 22:39 | |
03.04.2018, 22:39 | |
Помогаю со студенческими работами здесь
8
Как настроить поиск по базе данных? У меня две ошибки по Базе данных: как мне их исправить Как мне открыть файл в Excel по нажатию на кнопку в программе Как мне програмно открыть различные файлы из своей проги. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |