powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение компонентов для доступа к данным
34 сообщений из 34, показаны все 2 страниц
Сравнение компонентов для доступа к данным
    #38803373
Marcellus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищ один у меня в раздумьях по поводу покупки компонентов. Сам толком ему не могу ничего посоветовать, поэтому решил спросить у знающего сообщества. Компненты какой компашки лучше всего взять? Я про универсальные компоненты пишу такие как FireDAC и UniDAC.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803380
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
UniDAC бери, там саппорт классный, и ошибки патчат мгновенно.

FireDAC уже встроен в последние версии Delphi, как гвоорится, "искаропки", но саппорт гумно.
И компоненты не развиваются.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803388
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, что FireDAC входит в комплект Delphi и при её покупке ты уже за него заплатил, это
не плюс?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803390
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я за UniDAC
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803443
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Я за UniDAC
Тогда я за ZEOS, он самый дешёвый.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803451
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GlaysX11Я за UniDAC
Тогда я за ZEOS, он самый дешёвый.

Но не самый качественный ))
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803467
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я - за то, чтобыMarcellusуниверсальные компонентывыкинуть и использовать специализированные DAC'и
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803473
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlaysТогда я за ZEOS, он самый дешёвый.
ODBC вообще халявный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803498
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorНо не самый качественный ))
И медленный. Зато много лицензионной чистоты, код открытый для допилов, и обновления через SVN.
Но тут уж выбирать нужно исходя из задачи, которую ТС постеснялся озвучивать.
Dimitry SibiryakovGlaysТогда я за ZEOS, он самый дешёвый.
ODBC вообще халявный.
Собсно ZEOS тоже.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38803620
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovFireDAC входит в комплект DelphiВ Professional Edition его нет
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38804224
ain-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorUniDAC бери, там саппорт классный, и ошибки патчат мгновенно.

FireDAC уже встроен в последние версии Delphi, как гвоорится, "искаропки", но саппорт гумно.
И компоненты не развиваются.
Поддерживаю, за UniDAC.
Откликаются мгновенно.
Ни разу не пожалел.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38804546
Marcellus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за советы.
Вчера протестил время отклика саппорта FireDAC и UniDAC. Люди в этой теме правду пишут, откликаются по UniDAC намного быстрее. В саппорт UniDAC написал 3 сообщения и на все получил ответ. От команды FireDAC гробовое молчание(
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38808295
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorно саппорт гумно.
Не вижу для себя ни малейшего смысла регулярно посещать ресурс с подобным хамством.
Мне гораздо комфортнее отвечать людям на forums.embarcadero.com.
defecatorИ компоненты не развиваются.
Ты их вообще видел, что бы это заявлять ? :) Впрочем, бисер ...
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38809887
Александр Божко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, надо понимать для чего будут использоваться компоненты.

UniDAС, во-первых, дешевле Как ни крути, юзеры Delphi Professional за FireDAC платят, и платят почти вдвое больше, чем за UniDAC. К тому же на UniDAC можно получить серьезные скидки. Во-вторых, поддержка Oracle и MySQL для мобильных приложений (для тех, кому это действительно надо). В-третьих, некоторые моменты сделаны аккуратнее и красивее (те же кодировки по умолчанию в SQLite). Как говорится, дьявол в мелочах...

FireDAC бесплатен для пользователей старших версий Delphi. Как по мне, он более удобен при работе с DataSnap.

Поддержка... Лично мне грех жаловаться и там и там.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38810088
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dmitry Arefievdefecatorно саппорт гумно.
Не вижу для себя ни малейшего смысла регулярно посещать ресурс с подобным хамством.
Мне гораздо комфортнее отвечать людям на forums.embarcadero.com.


Dmitry, ты не гоношись, не гоношись.
Ты был прародителем компонентов, этого никто не отрицает.
Но ты продал свой проект Embarcadero, за славу за совесть за бапки в итоге,
и теперь уже кагбэ Embarcadero поддерживает их (ха-ха три раза),
а ты можешь выступать только как очередной разработчик, посаженный за поддержку FireDAC.
Причём, даже не тут, на sql.ru, а на официальных форумах Emb.
А тут ты просто частное лицо.

И на что ты обижаешься ? На то, что саппорт Embarcadero - полное гумно ? Оно и есть - полное гумно.
На то, что чтобы получить мажорное обновление FireDAC, надо покупать очередную версию Delphi ?
На то, что компоненты DevArt развиваются и обновляются гораздо динамичнее и их покупать просто выгоднее - и по уровню саппорта, и по надёжности вложений ?

Динамика для FireDAC исчезла в тот миг, как она перестала быть твоим личным проектом.

Dmitry ArefievdefecatorИ компоненты не развиваются.
Ты их вообще видел, что бы это заявлять ?

Многие тебе благодарны, что ты (пока) не даёшь скатиться FireDAC в откровенное УГ,
как и всё остальное, что попало в руки Emb, но в любом случае всё к этому идёт.

И - да, я видел и щупал их много-много раз, но душа не лежала, как раньше, так тем более - теперь.

P.S. Всё сказанное - моё ИМХО.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38810106
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На тему саппорта эмбаркадеро (на их же сайте)
Вот тут Бровину задавали вопросы... в феврале.

http://blogs.embarcadero.com/yaroslavbrovin/2014/01/28/tips-1/#comments

И че?
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38810112
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
asviridenkovНа тему саппорта эмбаркадеро (на их же сайте)
Вот тут Бровину задавали вопросы... в феврале.

http://blogs.embarcadero.com/yaroslavbrovin/2014/01/28/tips-1/#comments

И че?

Ты понимаешь меня, как никогда )
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38835910
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UniDAC для работы с большими таблицами > 300к записей не годится - потребляет очень много памяти. Их новая фича "SmartFetch" призвана это дело побороть, но вот уже сколько билдов подряд, начиная с версии 5.3 её не могут довести до ума. Постоянно AV-шки, assert'ы на равном месте (то при удалении\изменении записи, то на RAISERROR в триггере MS SQL UniDAC валится стопкой AV-шек). Эти баги правят, но на это зачастую уходят месяцы от релиза до релиза. В новом билде эти ошибки исправлены, но с ним приходит и стопка новых багов. Написать какой-то мало-мальски серьезный коммерческий продукт становится невозможным.

Что касается FireDAC, так исправления багов вообще можно годами ждать и если они выйдут, то только на последние версии Delphi XE 5,6,7. Пруф: http://qc.embarcadero.com/wc/qcmain.aspx?d=124435 Из-за этого бага вообще остановилась миграция проекта с BDE на FireDAC.

Так что такие, совсем не радужные, дела
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38835921
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
zladeykaUniDAC для работы с большими таблицами > 300к записей не годится - потребляет очень много памяти. Их новая фича "SmartFetch" призвана это дело побороть, но вот уже сколько билдов подряд, начиная с версии 5.3 её не могут довести до ума.

У меня версия UniDAC 5.5.12, SmartFetch используется активно, никаких ассертов и AV не видел.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #38835939
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,

В 5.5.12 на UniTable некоторые баги были исправлены. Но на этой версии невозможно работать со SmartFetch и представлениями, на которые повешены триггеры INSTEAD OF.

В версии 6.0.1 это было исправлено, но в ней добавился собственный парсер SQL-запросов, полный багов. На сложных запросах, с UNION и алиасами ломается TUniQuery во время выполнения.

Нового билда, после 6.0.1 с исправлениями до сих пор не видно (25.11.2014), а времени прошло уже почти месяц.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сравнение компонентов для доступа к данным
    #39137419
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появились новые факты и эмоции на тему выбора компонентов доступа к СУБД


Компания, в которой я работаю, использует Юнидак уже несколько лет для продакшн проектов, которые используют множество клиентов в Украине и не только. С первого же билда Юнидак, который был на тот момент, постоянно есть какие-то глюки, в основном Access Violation. Спустя столько времени и тонн баг-репортов мы уже привыкли к AV-шкам, научились их подпирать какими-то костылями, либо ограничивать какой-то функционал, где всплывает ошибка UniDAC, благо эти ошибки довольно просто находились. В одном релизе есть какой-то один набор AV-шек, выходит новый билд, эти баги попатчены, но находятся новые (в течении полудня), при каких-то новых событиях.

Но на днях Юнидак нас удивил! Вышел билд 6.2.9 от 14.12.2015. Мы его тестили и нашли только ОДНУ AV во всем билде Юнидак, связанной с опцией обновления roBeforeEdit. В принципе, всего одна AV-хороший результат для UniDAC'a. И вот, мы на днях выпустили релиз и на следующий день были в шоке с новенького бага UniDAC: все числа, которые меньше 0.1, UniDAC молча, без зазрений совести, округлял до десятых. Соответственно 0.001 превращались в 0.1, 0.05 в 0.5 и т.д.
И вот что большего всего бесит в UniDAC: этот баг уже запостили на их форуме 21.12.2015 - они типично ответили, на данный критичный баг, что воспроизвели и исследуют проблему. Но мля, никакого письма клиентам, мол будьте аккуратны - есть критический баг, который можно сразу и не заметить. Для них это мелочь и им все равно. Если приложение, используещее UniDAC, это ERP-система с товарооборотом и прочим, то за время своей работы оно может столько начудить с суммами и ценами, что наступит коллапс, исправлением которого будет только один способ - восстановлением БД из бэкапа.


На сайте Devart в клиентах значатся такие компании как BMW, Boening, Samsung, Toyota и т.д. Как они могут использовать такие глючные продукты, где подвоха можно ожидать в самых невероятных местах? Дай Бог, чтобы не упал ни один самолет или не отказали тормоза в машине из-за AV или еще какого-то бага в компонентах Devart'a. Хорошо, что они со своим продуктом не добрались еще до АЭС.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137492
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тестовый проект:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm1.Button1Click(Sender: TObject);
Var
  e: Extended;
begin
  UniQuery1.SQL.Text:= 'SELECT 0.00001 As SumCC_wt';
  UniQuery1.Open;
  e:= UniQuery1.FieldByName('SumCC_wt').AsExtended;
  ShowMessage(FloatToStr(e));
end;
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137509
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЖелание жрать всегда самую свежую версию кактуса вызывает недоумение

вот когда исправят этот кактусище http://qc.embarcadero.com/wc/qcmain.aspx?d=124435
так сразу и соскочим с UniDAC'a
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137515
KeyOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovВот именно это желание жрать всегда самую свежую версию кактуса и вызывает недоумение. проблема в том что в свежих версиях, на первый взгляд а иногда и на второй, меньше колючек ...
вот если бы они в хистори наравне с "fixed" писали "bug added" .... то конечно было бы проще
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137526
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeykaА для чего вы вообще на новую версию переходили? Ну вот у вас есть "огромнейший проект", все в нем
работает, известные проблемы обойдены теми или иными способами. Вы решили дернуть удачу за хвост?
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137605
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeyka,

Вообще-то у юнидаковских датасетов есть вкладка "Data Type Mapping", где можно указать, какого именно типа поля возвращаются в запросе -- как раз на случай, если их анализатор сам справится не может.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137608
zladeyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZeroMQА для чего вы вообще на новую версию переходили? Ну вот у вас есть "огромнейший проект", все в нем
работает, известные проблемы обойдены теми или иными способами. Вы решили дернуть удачу за хвост?

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

Впоследствии, нам пришлось откатиться обратно на предыдущую версию UniDAC 6.2.8, т.к. лучше урезать часть своих функций, чем вообще испортить клиентские учетные БД неверными числами.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39137616
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeykaZeroMQА для чего вы вообще на новую версию переходили? Ну вот у вас есть "огромнейший проект", все в нем
работает, известные проблемы обойдены теми или иными способами. Вы решили дернуть удачу за хвост?

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

Впоследствии, нам пришлось откатиться обратно на предыдущую версию UniDAC 6.2.8, т.к. лучше урезать часть своих функций, чем вообще испортить клиентские учетные БД неверными числами.
Ну, любой опыт - он положительный.

Мы вот уже много лет используем одну из последних версий FIB+ 6.9.
Точно так же пару раз нарывались на грабли, когда "просто так" переходили на новые версии.

И версию Delphi меняем очень нечасто, по той же причине.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39138006
delphinotes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я вот недавно (недели две назад) обновил VirtualTreeView с версии 5.0.0 на 6.2.1.
Уже 7 или 8 правок пришлось внести.
Где-то на 5й правке сильно задумался, может вернуть всё взад? Но сейчас вроде работает стабильно, местами чуть быстрее..

Конечно это не сравнить с проблемами доступа к данным, но для себя отметил, что действительно не стоит торопиться с обновлениями того, что и так работает.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сравнение компонентов для доступа к данным
    #39932552
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zladeyka
UniDAC для работы с большими таблицами > 300к записей не годится - потребляет очень много памяти. Их новая фича "SmartFetch" призвана это дело побороть, но вот уже сколько билдов подряд, начиная с версии 5.3 её не могут довести до ума. Постоянно AV-шки, assert'ы на равном месте (то при удалении\изменении записи, то на RAISERROR в триггере MS SQL UniDAC валится стопкой AV-шек). Эти баги правят, но на это зачастую уходят месяцы от релиза до релиза. В новом билде эти ошибки исправлены, но с ним приходит и стопка новых багов. Написать какой-то мало-мальски серьезный коммерческий продукт становится невозможным.


Сейчас у меня версия 8.0.1.
И снова проблема.

Есть запрос с макросом
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
  A.ID,
  A.NAME NAME_USER,
  A.REMARK

  FROM TABLE1 A
  &TYPES



Включаем SmartFetch.

В коде указываем текст макроса:
Код: pascal
1.
2.
3.
4.
  UniQuery1.MacroByName('TYPES').Value := 'LEFT JOIN TYPES T ON T.ID = A.ID_TYPE AND T.USERNAME = :USERNAME';
  UniQuery1.ParamByName('USERNAME').AsString := 'user';

  UniQuery1.open;



Получаем
Project raised exception class EIBCError with message 'Dynamic SQL Error
SQL error code = -204
Ambiguous field name between table TYPES and table TABLE1 ID'.

При этом UniQuery1.FinalSQL выдает рабочий код, который в IBExpert нормально отрабатывает:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
  A.ID,
  A.NAME NAME_USER,
  A.REMARK

  FROM TABLE1 A
  LEFT JOIN TYPES T ON T.ID = A.ID_TYPE AND T.USERNAME = :USERNAME



Если отключить SmartFetch, код работает нормально.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39932553
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Если отключить SmartFetch, код работает нормально.

Значит, SmartFetch как-то меняет значение FinalSQL. Лови то, что на сервер уходит.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39932561
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще до конца не понимаю, что такое SmartFetch и с чем его едят?
Соответственно, не понимаю, а нужно ли мне оно вообще?
Например, если у меня 1000 или 10000 записей в таблице, откуда выполняется Select?
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39932568
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

там строится свой запрос, исключающий загрузку больших полей, вроде фактически грузятся лишь ключевые поля. Ну и генератор запросов налажал.
Например, у тебя в табличке есть поле FK c именем вроде ИМЯFKТАБЛИЧКИ_ID, а генератор создал алиас с таким же именем для поля PK ключа, ну вот тебе и "аmbiguous field name between", панимаш...

Ну ты посмотри в отадчике, что на самом деле, в точке иксцепшна - интересно же.
...
Рейтинг: 0 / 0
Сравнение компонентов для доступа к данным
    #39933123
Фотография devart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

При открытии таблицы в режиме SmartFetch, считываются только значения ключевых полей и полей указанных в свойстве PrefetchedFields для всех записей, возвращаемых запросом. После открытия таблицы, происходит чтение полей для количества строк, указанных в свойстве FetchRows. Остальные поля будут прочтены непосредственно при обращении к ним.
Эффективность работы SmartFetch при извлечении любых данных таблицы зависит от используемых в этой таблице типов полей.
Наибольший прирост производительности наблюдается при использовании SmartFetch для типов данных с большими значениями, таких как long string, BLOB, и т.д.
При использовании SmartFetch режима UniDAC, если свойство TUniQuery.SmartFetch.SQLGetKeyValues установлено в пустую строку, UniDAC пытается составить и выполнить запрос на чтение ключевых полей и полей указанных в свойстве PrefetchedFields.
Когда SQL запрос является сложным, как в вашем случае, автоматически сгенерированный запрос может быть некорректным. В таком случае вам следует в свойстве TUniQuery.SmartFetch.SQLGetKeyValues.Text указать запрос на получения полей, которые будут уникально идентифицировать запись. Например:
Код: pascal
1.
2.
3.
4.
SELECT
  A.ID
  FROM TABLE1 A
  LEFT JOIN TYPES T ON T.ID = A.ID_TYPE AND T.USERNAME = :USERNAME
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение компонентов для доступа к данным
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]