:: Не фоксом единым
Re: Взять данные из файла *.gdb Firebird
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Не поверите, но как-то соединилось!..

Я тут разные службы включал/отключал... Опять включил все службы и добавил слово localhost перед именем базы:

lnHandle = SQLSTRINGCONNECT("DRIVER=Firebird/InterBase(r) driver; DBNAME=localhost:d:\mydir\myfile.GDB;UID=SYSDBA;PWD=masterkey")

И соединилось!.. [sm021] :danc: [sm128]

Такшта будущим поколениям на заметку - надо добавлять localhost: перед именем базы. [sm128]
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
PaulWist
http://www.ibase.ru/ibfaq.htm#unavail

Спасибо за помощь!.. Но вдвойне приятно, что я успел сам найти причину.
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Немного запоздало - но ... пропишите у себя алиас базы в (fb 2.5 пример) в файле

C:\Program Files\Firebird\Firebird_2_5\aliases.conf

т.е. в вашем случае типа такого:

myfile.gdb = d:\mydir\myfile.GDB
myfile = d:\mydir\myfile.GDB

и тогда в строке соединения можно просто указывать:

DRIVER={Firebird/InterBase(r) driver};DBNAME=localhost:myfile.gdb;UID=SYSDBA;PWD=masterkey;CHARSET=win1251;DIALECT=3

диалект указвайте тот в котором база создана - у вас как я понял первый ...

заодно удобнее будет к ней подключиться с другого компа ежели потребуется

и еще насчет IBExpert - самая удобная утилька для птицы, есть у меня вариант без регистрации (не самый последний - но там есть все что нужно)

Сам работаю с fb давно - и доволен ... проблем минимум, 50-100 Гб базу держит без вопросов (больше не пробовал), ХП, тригеры, констрэйны - все есть, сама птица - версионник (вроде так это обзывается), на линух сервак ставится даж таким некомпетентым как я ))))
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
С IBExpert есть нюансы. Я его раньше и использовал. Но потом вдруг он стал "ломаться" при конвертировании таблиц в dbf-формат. Причину установить не удалось. Одни таблицы конвертировались, а другие "ломались". Вот после этого по совету IK и перешел на работу с FireBird из VFP. Помимо всего прочего, в новых версиях IBExpert конвертация в dbf возможна только для платных версий. Конечно, для изучения структуры таблиц IBExpert может пригодиться. А вот конвертирование в dbf и последующую обработку (если таковая нужна после конвертации) удобнее делать из VFP.
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
ИБэксперт удобен именно для разработки базы/запросов ... а ежели нуна тока в dbf переливать данные - то да, через одбс будет быстрее и удобнее - хотя мне не совсем понятно зачем из боль-мене нормальной базы в dbf гнать - но вам там на месте виднее )))
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Firebird вообще интересует меня хотя бы на уровне запросов к таблицам. Но даже не знаю, как к этому подступиться. Как пишется запрос? Откуда запускается? Из какой среды? Может быть, можно привести пример простого запроса? Типа там выбрать из таблицы записи по значению поля. Допустим, по дате или там cena#0

Что-то в таком духе.

И что должно быть проинсталлировано для выполнения запросов?
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Тут все просто:
Установлен ли firebird сервак на крмпе? и какой версии?
Если установлен, то далее, как я понимаю уже какая-то база имеется - вот на ней и поиграться, т.е. подключаем базу в ибэксперте, и в нем в меню - Tools - SQL editor - пишем простецкий запрос, выделяем его и жмаем кнопку Execute (F9) - тут же получим и результат и кой-каку статистику выполнения:
[attachment 26815 p1.png]

[attachment 26816 p2.png]

через одбс из фокса тож без проблем (для примера):
cConnectionString=[DRIVER={Firebird/InterBase(r) driver};DBNAME=localhost:d:\mydir\myfile.GDB;UID=SYSDBA;PWD=masterkey;CHARSET=win1251;DIALECT=1]
nConnect=SQLSTRINGCONNECT(cConnectionString)
* =SQLSETPROP(nConnect,"Transactions",2) && ежели нужно ручное управление транзакциями
IF nConnect>0
lcParam=25 && значение параметра
cScript=[select pole1 from table1 where pole2<>?lcParam]
IF !SQLEXEC(nConnect,cScript,'cRezult')>0
lcOk=0
ENDIF
* =SQLCOMMIT(nConnect) && ручной коммит транзакции ежели поставили вручную управлять
=SQLDISCONNECT(nConnect)
ENDIF



Исправлено 6 раз(а). Последнее : AndyNigmatec, 05.01.17 14:00
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Simple777
Firebird вообще интересует меня хотя бы на уровне запросов к таблицам.
Собственно говоря, любая СУБД занимается в основном именно "запросами к таблицам"
Simple777
Как пишется запрос? Откуда запускается? Из какой среды?
Из той, в которой пишется прикладной софт - из VFP, C#, java... Запрос там либо пишется "вручную" - т.е. как текстовая строка, с возможным указанием специальных маркеров для параметров, и потом заданием значений этим самым параметрам (как именно - это уже зависит от самой среды разработки и используемого метода доступа). Либо генерируется тем или иным "автоматом" - от простейших View Designer в фоксе, и до весьма сложных инфраструктурных подсистем типа Entity Framework.
Simple777
Может быть, можно привести пример простого запроса? Типа там выбрать из таблицы записи по значению поля. Допустим, по дате или там cena#0
Запросы одинаковы по сути для любых СУБД. SQL он и в Африке SQL. Нюансы типа поддерживаемых функций, способа написания литералов (в одинарные или двойные кавычки строки брать, как записывать дату-время и т.п.), необходимости обрамлять идентификаторы (имена таблиц, полей - например брать их в двойные кавычки), собственно правила составления идентификаторов (надо ли писать префиксы имени БД, имени схемы, владельца...) и т.п. Это уже всё несущественные детали реализации. Основа языка будет точно такой же - как и в фоксе, или в MSSQL...
Пример тривиального запроса
SELECT tbl1.fld1, tbl1.fld2 FROM tbl1 WHERE tbl1.fld3 > 1 AND tbl1.fld4 < 0
Simple777
И что должно быть проинсталлировано для выполнения запросов?
Смотря из какой среды/какого языка это всё будет использоваться. Где-то нужен ODBC драйвер, где-то OLEDB провайдер, где-то .NET провайдер, где-то jdbc драйвер... Плюс к тому для "файл-серверных" СУБД (или, точнее, режима работы - FB может даже на 1 машине работать как полноценный "сервер", не как "встраиваемая" СУБД) нужно устанавливать сам "сервер" - для FB это по идее одна dll-ка.


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 05.01.17 13:40
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
для работы с FB все-таки нужен сервер (не рассматриваем вариант embedded-сервера - там действительно достаточно нескольких dll - но это слишком уж куцый и вдобавок еще и однопользовательский вариант)... установка сервака fb - дело 15 секунд - поэтому не вижу проблемы с этим



Исправлено 1 раз(а). Последнее : AndyNigmatec, 05.01.17 13:54
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Для "доступа к данным" сервер не обязателен. А "для работы" нужен не только софт "сервера FB", но и выделенная под это дело машина-сервер. Т.к. "сервер" работающий на обычной клиентской машине это совершенно ненормально (варианты использования FB для разработки/тестирования ПО мы, естественно, не рассматриваем - там хватит и локального сервера - но для продуктивного сервера никаких "локально установленных на компе дяди Васи FB" быть не может).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Взять данные из файла *.gdb Firebird
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Так и я о чем )))
В данном случае имеется только gdb (т.е. тока сам файл базы) - соотв. человеку нужОн сервак дабы можно было с нею работать, и опять же в данном случае - самый простой и быстрый путь - установить птичку локально - и играться с нею.

А если вообще - то да, есть сервер с базой и есть клиенты, на которых уже нет никакой надобности в установке сервера - достаточно одбс-драйвера (или других компонент) через которые с энтой базой планируется работать
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 12 alex;  (Гостей: 11)

© 2000-2024 Fox Club 
Яндекс.Метрика