Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Gallemar
Member

Откуда: г.Иркутск
Сообщений: 5149
Ого,при таком раскладе я наверно зря Delphi забросил :(
29 авг 12, 06:34    [13079512]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Док
Member

Откуда: Казань
Сообщений: 6353
Симонов Денис
Что IBDataSet научат работать с двумя транзакциями?

Что транзакции. Лучше бы научили его видеть другие библиотеки, кроме gds32.
29 авг 12, 09:03    [13079688]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
ibx? ну, я себе научил.
29 авг 12, 10:31    [13080212]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
PEAKTOP
Member

Откуда: агломерация Славянск-Краматорск-Дружковка
Сообщений: 1381
Док
Что транзакции. Лучше бы научили его видеть другие библиотеки, кроме gds32.


У FIBPlus есть неплохая идея с LibraryFactory - списка используемых приложением библиотек. Идентифицирует она их по абсолютным путям (что логично), таким образом LoadLibrary вызывается один раз и один раз происходит связывание IGDSIntarface с API-функциями из gds32/fbclient независимо от того, сколько там ты на форму TIBDataBase накидал (или создал в цикле в рантайме).

И она там не гвоздями прибита, так открутить c десяток саморезов. Опыт позитивного скрещивания с потомком от IBX есть.
29 авг 12, 11:28    [13080783]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
arni
Диля пишет под пых, вероятно.

- Чур тя, чур...
Лабаем Дельфей всё: в столбик, строчку и по диагонали...
29 авг 12, 12:58    [13081667]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
kdv
ibx? ну, я себе научил.

А тынц где?
Все тошь хОчут...
29 авг 12, 13:01    [13081689]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2755
PEAKTOP
Док
Что транзакции. Лучше бы научили его видеть другие библиотеки, кроме gds32.


У FIBPlus есть неплохая идея с LibraryFactory - списка используемых приложением библиотек. Идентифицирует она их по абсолютным путям (что логично), таким образом LoadLibrary вызывается один раз и один раз происходит связывание IGDSIntarface с API-функциями из gds32/fbclient независимо от того, сколько там ты на форму TIBDataBase накидал (или создал в цикле в рантайме).


Зачем так усложнять? Достаточно для каждого соединения иметь свой экземпляр интерфейса. Там меньше килобайта будет даже в 64-битных приложениях. A LoadLibrary с повторной загрузкой либы сама разберется.
29 авг 12, 13:08    [13081747]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
PEAKTOP
Member

Откуда: агломерация Славянск-Краматорск-Дружковка
Сообщений: 1381
IBExpert
Достаточно для каждого соединения иметь свой экземпляр интерфейса. Там меньше килобайта будет даже в 64-битных приложениях. A LoadLibrary с повторной загрузкой либы сама разберется.

LoadLibrary оставим, с ней и так все понятно.

В том то и смысл подхода, шо экземпляров интерфейса ровно столько, сколько я юзаю библиотек. Понятно, шо меньше кубика будет, но тут дело принципа: кубик сюда, кубик туда, а оно глядишь - и метр набегает. Вот так и появляются "блокноты", отжирающие еще без загрузки файла редактор 300 метров памяти...

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

-----------------------------

Тут вон на хабре бурление говн по поводу изменений в EULA для XE3. Теперь разрабатывать клиент-серверные приложения в версии Pro будет нельзя (с юридической точки зрения). Только Enterprise или Architect. То есть разработчики-одиночки дружной толпой влетают на бабки.

А вы тут про открытый TDataSet говорите...
29 авг 12, 13:42    [13082083]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Док
Member

Откуда: Казань
Сообщений: 6353
kdv
ibx? ну, я себе научил.

предлагаешь наследника писать? Нафик, все велосипеды уже придуманы

PEAKTOP
Тут вон на хабре бурление говн по поводу изменений в EULA для XE3.

Даже комментировать не интересно. Продукт сырой (как изделия нашего автопрома), нужных фишек до сих пор нет.

Мне-то что, для меня это хобби. А вот ребят-дельфистов (особенно честных фрилансеров) до сих пор жалко.
29 авг 12, 19:45    [13085021]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 60170
Док
Лучше бы научили его видеть другие библиотеки, кроме gds32.
Это как раз не проблема (переименования файла достаточно), да и фиксится легко.

Док
А вот ребят-дельфистов (особенно честных фрилансеров) до сих пор жалко.

Их-то чего жалеть? Большинство как не покупали, так и не собираются.
И уж по поводу ХЕ3 тем более никто печалиться не будет, а ко времени выхода ХЕ4 -
глядишь, производитель поумнеет или просто цены/лицензии снова поменяются. :)
29 авг 12, 19:51    [13085043]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Гаджимурадов Рустам
Это как раз не проблема (переименования файла достаточно), да и фиксится легко.

Проблема тут как раз в обратном. Лично мне каждому второму чайнику приходится объяснять,
что "клиент Firebird это fbclient.dll". И все эти проблемы - результат того, что я таки
научил софтину "видеть другие библиотеки кроме gds32".

Posted via ActualForum NNTP Server 1.5

29 авг 12, 19:56    [13085060]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Док
предлагаешь наследника писать? Нафик, все велосипеды уже придуманы

нет, я просто ibintf.pas отредактировал. У меня проги ищут либо gds32.dll, либо fbclient.dll, кто первый попадется, ибо им пофиг, чей это клиент и где он.
29 авг 12, 20:28    [13085194]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Док
Member

Откуда: Казань
Сообщений: 6353
Дим, а как это выглядит в коде, не поделишься? В порядке повышения общей образованности? ;)
30 авг 12, 00:12    [13086049]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
Dimitry Sibiryakov
Лично мне каждому второму чайнику приходится объяснять,
что "клиент Firebird это fbclient.dll". И все эти проблемы - результат того, что я таки
научил софтину "видеть другие библиотеки кроме gds32".

И зачем ты им это показываешь? (чешу в репе.)
Чем меньше юзер знает, тем больше спит программист...
30 авг 12, 00:54    [13086139]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Док
Дим, а как это выглядит в коде, не поделишься? В порядке повышения общей образованности? ;)

код писан на коленке, очень давно, работает, но когда ни одна либа не найдена, где-то вылазит какой-то скрытый exception, но это, imho, проблема ibx.

ibintf.pas (Delphi 2007)

const
  ibdll = 'gds32.dll';
  fbdll = 'fbclient.dll';

begin
{$IFDEF MSWINDOWS}
  SetErrorMode(SEM_FAILCRITICALERRORS);
  IBLibrary := LoadLibrary(PChar(ibdll));
  if IBLibrary <= HINSTANCE_ERROR then
    IBLibrary := LoadLibrary(PChar(fbdll));
//  IBLibrary := LoadLibrary(PChar(IBASE_DLL));
  if (IBLibrary > HINSTANCE_ERROR) then


как-то так. под 64 бита не затачивал, ибо последняя купленная у меня 2010, на XE2 апгрейд не делал (вот сейчас в раздумьях на тему XE3).
30 авг 12, 01:05    [13086163]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Di_LIne
И зачем ты им это показываешь?

Ну а что я, телепат что-ли - угадывать к какому серверу юзверь будет цепляться? Я ему
честно дал список поддерживаемых на его компе СУБД, а он, понимаешь, жалуется, что среди
них нет Firebird. Ясен пень - нету, раз я её клиента загрузить не смог! Вот и пишешь
каждому второму, что мол "используй instclient, Люк!" И молишься, чтобы они ещё и с
разрядностью не прокололись.

Posted via ActualForum NNTP Server 1.5

30 авг 12, 01:09    [13086168]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Dimitry Sibiryakov
И молишься, чтобы они ещё и с разрядностью не прокололись.

Дима, самый ад - это когда коннектятся к ФБ через ODBC. Перепутано все к чертям:
ОС 32/64 бит, програма 32/64, ODBC 32/64, фбклиент 32/64, ну и сам ФБ 32/64.

то есть, людям мозг выносит напрочь. Я думаю написать статейку на эту тему, т.к. моих слов на эту тему в вебинаре про InterBase явно не хватает.
30 авг 12, 01:39    [13086198]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

kdv
Дима, самый ад - это когда коннектятся к ФБ через ODBC.

Ну дык это всегда так: чем больше прокладок, тем проще всё падает.

Posted via ActualForum NNTP Server 1.5

30 авг 12, 01:57    [13086220]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Dimitry Sibiryakov
тем проще всё падает.

я не про это - люди не соображают, что должно быть 32 или 64битным.
Ситуацию еще ухудшает то, что разрядность fbclient.dll можно определить только утилитами dumpbin, link или filever из Visual Studio.
Я бы порекомендовал все же составителям дистрибутива сделать fbclient64.dll, или хотя бы в 64битный дистр включать fbclient32.dll, в общем, как-то развести битность по названиям.
Пример:
- пытаются пристыковать к 64битному MS SQL 32битный Firebird ODBC
- ставя 64битный Firebird ODBC не могут найти к нему fbclient.dll
- не знают, как запустить конфигуратор ODBC для 32бит.
и так далее. Администраторы.
30 авг 12, 02:32    [13086252]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 60170

kdv> Я думаю написать статейку на эту тему

Статейка должна быть из одного предложения - "Не используйте ODBC".

Posted via ActualForum NNTP Server 1.5

30 авг 12, 02:35    [13086255]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Док
Member

Откуда: Казань
Сообщений: 6353
kdv
+
  if IBLibrary <= HINSTANCE_ERROR then
    IBLibrary := LoadLibrary(PChar(fbdll));
//  IBLibrary := LoadLibrary(PChar(IBASE_DLL));
  if (IBLibrary > HINSTANCE_ERROR) then

... как-то так ...

Дим,
и каждый раз исходники правишь, если вдруг понадобилась конкретная библиотека?

kdv
Я бы порекомендовал все же составителям дистрибутива сделать fbclient64.dll, или хотя бы в 64битный дистр включать fbclient32.dll, в общем, как-то развести битность по названиям.

+1
30 авг 12, 12:16    [13087740]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Док
и каждый раз исходники правишь, если вдруг понадобилась конкретная библиотека?

какая "конкретная"? FIBPlus позволяет указывать клиентскую либу, более удобным способом. Мне FIBPlus не нужен, достаточно IBX. Я поменял чтобы IBX использовал ЛЮБУЮ установленную клиентскую либу IB/FB, какая есть. Использование "конкретных" мне нафиг не надо нигде, кроме IBExpert. И никакой нормальной программе, которая работает с одним сервером и одной базой, тоже не надо.

Если надо проверить мою программу с "конкретной либой", я ее просто подсовываю в папку exe. зачем править исходники???
30 авг 12, 12:29    [13087868]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
Dimitry Sibiryakov
Я ему честно дал список поддерживаемых на его компе СУБД...

Хм... Так этот список состоит из 2 пунктов: FB, или IB, или "пшел в Мусклю"...
Бо в 99% случаев клиенская прога сама знает с каким сервером работает.
Головняк начинается на прогерских машинах. Тут весь зоопарк на лицо.
30 авг 12, 13:12    [13088255]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
kdv
Я думаю написать статейку на эту тему, т.к. моих слов на эту тему в вебинаре про InterBase явно не хватает.

Молчание - золото.
Слово - алмаз.
Написанное слово - брульянт.
(Мну)

Пока пишешь - мыслю гранишь...
30 авг 12, 13:13    [13088269]     Ответить | Цитировать Сообщить модератору
 Re: Почему все программы с FB пишутся на Delphi?  [new]
Док
Member

Откуда: Казань
Сообщений: 6353
kdv
Если надо проверить мою программу с "конкретной либой", я ее просто подсовываю в папку exe. зачем править исходники???

ну да, я про это и забыл :)
30 авг 12, 13:18    [13088321]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить