Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» InterBase и FireBird: вопросы по работе и их решение

Автор: xpin2013
Дата сообщения: 28.08.2014 21:29
exteris
Мне кажется Вы не договариваете. На сколько я понял FireDAC не такой удобный, а если учёсть мою приверженность к UniDAC...
Автор: exteris
Дата сообщения: 29.08.2014 07:49
xpin2013
Да нормальный он, всё что нужно имеется. Другой немного, это да, но привыкнуть можно.

Унидаки давно пробовал, как-то не сложилось у меня с ними. Или у них со мной
Автор: xpin2013
Дата сообщения: 01.09.2014 21:10
Написал Индекc который навешивается на любой TDataSet. Он нужен для переборов со сложным анализом, где Locate(LocateNext) делается по индексу а не с самого начала как у стандартного датасета. Первые пробы были на FIBPlus. В случае когда Locate не срабатывает Индекс даёт 2 секунды, без индекса 30 секунд. Но в случае когда Locate срабатывает делается Delete после чего обязательно делать CloseOpen фибовского компонента. Не в качестве рекламы вот код:

Код: [no]procedure TdmExchange.Load1;
var
N, ID_PREP: Integer;
indexL: TDataSetIndexList;
begin
quPrepClient.ParamByName('ID_CLIENT').AsInteger := dmMain.quClient['ID_CLIENT'];
quPrepClient.CloseOpen(True);

indexL := TDataSetIndexList.Create('ID_PREP', quPrepClient);
indexL.Eval;

// Избавление от дубликатов.
quPrepClient.First;
while not quPrepClient.Eof do
begin
N := quPrepClient.RecNo;
ID_PREP := quPrepClientID_PREP.Value;
while indexL.LocateNext(ID_PREP, []) do
begin
indexL.Delete;
quPrepClient.Delete;
quPrepClient.CloseOpen(True); //!!!!!!!!!!!!!!!! Обязательно!
quPrepClient.RecNo := N;
end;
quPrepClient.RecNo := N;

quPrepClient.Next;
end;
end;
[/no]
Автор: xpin2013
Дата сообщения: 02.09.2014 16:53
У Фибов после Delete все RecNo съезжают, так что индекс по их правилам не построить. Но мне важно, чтобы когда нечего делать - работало быстро. 8 циклов сложного анализа работают 3 секунды на подключении к трём базам. Ещё один программист с которым советовался - принял CloseOpen, так и оставили.

ps
Bookmark по кейфилдам это тот же Locate с самого начала, так что я избавлялся от этих несортированных циклов. На сегодняшний день я отказался от объектной модели с перекрёстными ссылками.
Автор: exteris
Дата сообщения: 03.09.2014 08:32
Еще у Фибов есть функция ExtLocate с опцией eloInSortedDataset.
Работает довольно шустро.
Автор: xpin2013
Дата сообщения: 03.09.2014 16:22
Спасибо exteris. "У Фибов" столько всего неизученного неиспользованного. Я не знаю как отказаться от этого пакета, я его буду тащить в XE7.
Автор: xpin2013
Дата сообщения: 11.09.2014 09:00
Так к слову, не в качестве рекламы. Можете поэкспериментировать с внешними индексами на любой DataSet. Я выложил vdb.zip на:
http://cc.embarcadero.com/Item/29941
http://sourceforge.net/p/vdbi/home/Home/
Там надо использовать файлик vdb.pas и создать класс TDataSetIndexList.
Автор: xpin2013
Дата сообщения: 22.09.2014 19:06
Я пока вне интернета, но сдесь бываю. Будут вопросы велком, для меня sql без клиент датасетов невполне полноценен. По этому я интересуюсь взаимодействием. TDataSetIndexList доступен без регистрации компонентов, надо только подключить юнит vdb.pas.
Автор: alexgala
Дата сообщения: 01.10.2014 14:55
Работаю на XE6, с FIbPLus. Также думаю его допиливать или переходить на , что-то другое. Не могу пока выбрать, уж очень привык к фибам. Пытаюсь перейти на кроссплатформенность. Жаль, что Firebird не поддерживает iOS.
Автор: xpin2013
Дата сообщения: 09.10.2014 19:07
alexgala
Ну не знаю мне UniDAC понравилась, цепляется ко всем. Но FireBird умер если умер FIB. Пора признать что DB это ещё и компоненты. Надеюсь Фибы будут так же портировать добровольцы как JEDI.
Автор: noisy
Дата сообщения: 09.10.2014 19:12
xpin2013

Firebird еще крылья не расправил!
Выйдет 3-ка вот тогда поглядим как птичка слона унесет, а дельфинчику придеться привыкать жить в мутной воде
и уж точно, от жизни фибов он никак не зависит
Автор: chAlx
Дата сообщения: 09.10.2014 22:25
Поддержу мысль: весь обсуждаемый здесь виндовый шлак я только по заголовкам знаю, а самой базой на сервере пользуюсь регулярно.

Только насчёт выноса слона сомневаюсь: там как раз с клиентами не заигрывали, а пилили ядро под все возможные [серверные] нужды. И продвинулись в этом очень значительно.
Автор: xpin2013
Дата сообщения: 10.10.2014 09:28
noisy
Я не об этом. С точки зрения работодателей им без разницы на какой базе будет крутится их ПО. МССкуэль Постгрес Майскуэль. Если нет удобных компонентов, то выберут другую базу. И эти кстати базы тоже не стоят на месте.
Автор: protoror
Дата сообщения: 10.10.2014 09:52

Цитата:
Я не об этом. С точки зрения работодателей им без разницы на какой базе будет крутится их ПО. МССкуэль Постгрес Майскуэль. Если нет удобных компонентов, то выберут другую базу. И эти кстати базы тоже не стоят на месте.

не согласен, как раз есть разница. Все зависит от задачи. Если, к примеру, это какой нибудь электронный каталог продукции выбор сильно зависит независимости базы от установки, т.к. каталог должен работать с диска без всяких установок.
Конечно есть встраиваемые решения для многих баз. Но зачем мудрствовать если есть sqlite3
И опять же делать многопользовательскую базу с тысячами запросов, тут sqlite3 уже подсдаст.
Автор: xpin2013
Дата сообщения: 24.10.2014 19:51
protoror
Спасибо за sqlite3 будем изучать.
Автор: AlexCoRu
Дата сообщения: 30.10.2014 09:52
Подскажите, что поправить в исходниках IBDAC 5.4.11, чтоб полноценно заработал с FB 3.0. В частности, воспринимал тип BOOLEAN и CreateDatabase.
Автор: mrUlugbek
Дата сообщения: 31.10.2014 07:37
Кто знает когда будет выпускать для андроида как Iblite?
Автор: miwa
Дата сообщения: 01.11.2014 13:11
mrUlugbek
http://mapopa.blogspot.ro/2013/09/building-firebird-client-for-android.html
Автор: ivanmara
Дата сообщения: 01.11.2014 14:05
xpin2013

Да некогда Firebird не взлетит ... максимум что будет так это постепенная завершающаяся поддержка старых проэктов ... печльно конечно ... а что делать ?
Автор: miwa
Дата сообщения: 01.11.2014 18:06
xpin2013

Цитата:
С точки зрения работодателей им без разницы на какой базе будет крутится их ПО. МССкуэль Постгрес Майскуэль. Если нет удобных компонентов, то выберут другую базу.

На дельфи свет клином не сошелся (особенно учитывая тот факт, что у емберкадеро никак не получается сделать нормальную разработку под андроид). Есть java, python, php, .net; на них тоже люди программируют, и даже без компонентов. Не говоря уже о c++ в связке c qt.

Поговаривают, кстати, знающие люди, что фибы для тройки таки будут выпущены, так что и у дельфи все не так плохо.

AlexCoRu

Цитата:
Подскажите, что поправить в исходниках IBDAC 5.4.11, чтоб полноценно заработал с FB 3.0. В частности, воспринимал тип BOOLEAN и CreateDatabase.

Поскольку в fb3 серьезно изменен АРІ, «поправить» не получится. Как минимум, надо переписывать слой взаимодействия с клиентской библиотекой.

protoror

Цитата:
Конечно есть встраиваемые решения для многих баз. Но зачем мудрствовать если есть sqlite3

Зачем sqlite3, если есть встраиваемые решения для нормальных баз?

ivanmara

Цитата:
Да некогда Firebird не взлетит ... максимум что будет так это постепенная завершающаяся поддержка старых проэктов ... печльно конечно ... а что делать ?

Для начала, наверное, подучить русский язык. Чисто для общего развития ну и чтобы собеседники на форумах воспринимали как взрослого человека.
Автор: mrUlugbek
Дата сообщения: 05.11.2014 15:08
miwa
А вы пробовали? Ibdac или Unidacom будет работать?
Автор: Buldozer_and_Co
Дата сообщения: 06.11.2014 11:30

Цитата:
С точки зрения работодателей им без разницы на какой базе будет крутится их ПО. МССкуэль Постгрес Майскуэль

Тоже не согласен, финансовый вопрос тоже имеет место, мы покупали msSQL вышло больше 100к руб. А express тупить начинал, так что возможно FB3 хоть както по функционалу приблизится к MSSQL.
Автор: miwa
Дата сообщения: 06.11.2014 15:18
mrUlugbek

Цитата:
А вы пробовали? Ibdac или Unidacom будет работать?

Не пробовал, поэтому ничего, к сожалению, сказать не могу.

Buldozer_and_Co

Цитата:
А express тупить начинал, так что возможно FB3 хоть както по функционалу приблизится к MSSQL.

У MSSQL весьма специфическое понимание sql как такового. Мое субъективное мнение - как среди «больших» рсубд (Oracle, DB/2) так и среди опенсорсных (mysql, pg, fb) они больше всех, скажем так, непохожи на других. Поэтому перевод хоть немного сложной базы данных на/из mssql - удовольствие еще то, независимо от того, куда/откуда осуществляется сам перевод.
Автор: xpin2013
Дата сообщения: 08.11.2014 10:13
miwa
Ни о чём не сказало. Фибраху надо реанимировать.
Автор: Andryshok
Дата сообщения: 10.11.2014 08:45
mrUlugbek
Цитата:
А вы пробовали? Ibdac или Unidacom будет работать?
Я пробовал, пробую и буду пробовать - все нормально работает - отличные библиотеки, че вам свет клином сошелся на этих фибах.... - ведь это всего лишь обертка клиентской библиотеки, куча других есть которые развиваются - вышеназванные.
Автор: Kmich
Дата сообщения: 13.11.2014 08:18
Andryshok
я тоже пользую Fib и UniDac полет нормальный, раньше IBDAC использовал, но после Fib на него не хочется переходить. Fib сделаны как-то то ли понятнее то ли интуитивно удобнее для меня.
Автор: noisy
Дата сообщения: 14.11.2014 07:48
Хорошее событие.

Руководство по языку SQL Firebird на русском языке


Цитата:

Русская документации СУБД FirebirdSQL появилась благодаря спонсорам - Московской Бирже (платиновый спонсор) и IBSurgeon/IBase.ru (золотой спонсор).

На этом работа над документацией не заканчивается - будут выпускаться исправления и дополнения к документации по Firebird 2.5, в активной работе находятся разделы, посвященные Firebird 3, планируется перевод русской документации на английский язык, а также написание примеров работы с Firebird.
На будущий год запланирован выпуск "Руководства по эксплуатации СУБД Firebird" (Firebird Operations Guide).


Домашняя страница проекта русской документации (там Вы сможете всегда скачать самую свежую версию документации)
Автор: xpin2013
Дата сообщения: 15.11.2014 12:11
Andryshok

Цитата:
че вам свет клином сошелся

Любовь поими - любовь. Фибрахи секли тему глобально. Они решали кучю проблем и держали корпоративный стандарт. На сегодняшний день меня в человечестве ничего не радует, но Фибрахи исключение они радуют. Нужно понимать что очень много благодарных за то что Фибы есть. Реально полно народу. Если бы я смог общятся с автором фибов, у меня своя база данных, но я бы встал на колени перед Фибами. Просто я ценю то что действительно ценно, но если они не получают денег я готов второй раз купить фибы в пользование, я готов лиш бы были фибы.
Автор: Andryshok
Дата сообщения: 22.11.2014 15:47

Цитата:
Любовь поими - любовь
Это чувство изменчиво... я вот дельфи любил... а сейчас люблю PHP, жабаскрипт и иже с ними потому что они меня хорошо кормят, а моя любовь к дельфи меня голодом морила и вечными поисками работы.... эт так к слову
Автор: xpin2013
Дата сообщения: 26.11.2014 16:38
Andryshok
Понимаю. PHP я баловался, но без толку. Я работал даже в фирме Itex. Они как то заняли 3 место после Москвы и Питера. Но первое место по количеству сайтов. Я сделал CDDisk с сайтом крупного портала на своём шифрованном клиент датасете, с хуком файловой системы WebBrovser, чтобы картинки нельзя было свистнуть - желание заказчика. Сегодня меня кормит FIBPlus + FireBird. Если учесть что я снимаю комнату и плачу 10 тысяч, я каждый день имею ноль пять водки и консерву пожрать. Я пишу только FreeWare компоненты, где каждый кто использует - становится автоматически владельцем. Это качество видимо воспитано во мне в СССР и в сетях BBS.

Но как то хочется итога. Я очень люблю FireBird за его фрееварность. Клёвое дело для 2014. Ну у меня своя собственная база данных от Delphi7 до Xe6. На XE7 не пробовал - лень ставить. Но перед авторами фибов реально могу встать на колени, и не пострадает моя гордость. Вот смысл написанного. В моей библиотеке я вешаю на FIB датасет локальный индекс и делаю 8 анализов за 3 секунды. Неужели Вы предполагаете что у меня нет гордости, или я подхалим? Меня даже приняли в Квелити Централ Борланда. В общем, я добился всех успехов о которых мечтал, но вернуть фибы к жизни я не могу, и это печалит.

Добавлено:
Забыл - линк на хук файловой системы WebBrowser
http://cc.embarcadero.com/Item/29685
108 скачиваний сегодня - это неплохая цифра для комьюнити.

Добавлено:
А правдо такое? В общем триггер и на Insert и на Update. Из-за корявости некоторых программистов было написато - хранимая процедура execute MakeDictionary(old.ID). Мы вставили генератор в процедуру. И число генератора свидетельствовало о том что триггер профигачил все записи в таблице. Ровно столько сколько в таблице. Так как в Insert нет Old.Value, то решили фигачить всех. Зачем так сделано? Гораздо лучше IMHO не давать так сделать компилятором Prepare SQL. Вопрос меня интересует в смысле чтобы ещё кто проверил, FB 2.5.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

Предыдущая тема: Сравнение двух строк


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.