powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / АNN: Создание приложений для СУБД Firebird: FireDAC
46 сообщений из 46, показаны все 2 страниц
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39135762
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,

Мы начали публиковать цикл примеров для начинающих, посвященный работе с Firebird c использованием различных инструментов.
Первый в очереди - Дельфи. Автор - Денис Симонов.

Все статьи будут использовать одну и ту же структуру БД, и реализовывать примерно одинаковый функционал, фокусируясь на основных моментах разработки под Firebird.

Большая просьба - посмотреть и прокомментировать, что можно улучшить.
Если есть аккаут на Хабре - поддержите плюсом, пожалуйста.

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac

With best regards,
Alexey Kovyazin
Попробуйте HQbird - продвинутый дистрибутив Firebird
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39135862
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSPX – локальный протокол
вообще-то, это сетевой протокол Novell Netware. И вырезан он был как бы не в 1.х вообще.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136354
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KovyazinБольшая просьба - посмотреть и прокомментировать, что можно улучшить.
Транзакция с такими параметрами в Firebird может быть открытой сколь угодно долгое время (дни, недели, месяцы)
Пожалуйста, не надо провоцировать данное поведение. Ибо хотя транзакция и стартует как закоммиченная, она всё же жива и имеет побочные эффекты в виде накопления блобов, например.
Счётчик транзакций расширен до 48 бит, так что лучше не мелочиться и делать правильно: создавать отдельные транзакции на отдельные логические куски работы. В вашем мышевозном примере - своя транзакция на каждую форму, которая стартует при открытии (или когда надо) и сразу завершается при закрытии (окончания фетча если компоненты позволяют) последнего связанного с ней датасета.

За использование TDataSet.Refresh (и тем более Requery) - отдельные люли.

Код: pascal
1.
on E: EFDDBEngineException do


Поздравляю, вы только что подвесили пишущую транзакцию в неопределённом состоянии при любой ошибке, не связанной с работой с БД.

И, кстати, если не использовать Application.ShowException(E), а просто выбрасывать исключение дальше, код будет проще и, местами, предсказуемее.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
FInvoiceForm.trWrite.StartTransaction;
try
.....
except
on E: Exception do
begin
if FInvoiceForm.trWrite.Active then
FInvoiceForm.trWrite.Rollback;


1) Лезть к компонентам в другой форме - архитектурная ошибка. Нарушение инкапсуляции.
2) Вы таки всерьёз сомневаетесь, что StartTransaction приведёт транзакцию в состояние Active?..
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136447
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗа использование TDataSet.Refresh (и тем более Requery) - отдельные люли.

конкретно в BDE или вообще? И почему ?
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136449
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЛезть к компонентам в другой форме - архитектурная ошибка

а лезть в TDatabase/TSQLConnection/youNameIt расположенном в другой форме/датамодуле?

а то так ведь потребуется для каждой формы своё соединение устанавливать...
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136461
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да это приложение имеет крайне далёкую от реальных систем архитектуру. По уму даже оконное приложение должно иметь архитектуру MVC.
Это ведь только пример работы с FireDac. Тут недавно множество вопросов было куда переходить с FibPlus.

Dimitry SibiryakovПожалуйста, не надо провоцировать данное поведение. Ибо хотя транзакция и стартует как закоммиченная, она всё же жива и имеет побочные эффекты в виде накопления блобов, например.
Счётчик транзакций расширен до 48 бит, так что лучше не мелочиться и делать правильно: создавать отдельные транзакции на отдельные логические куски работы. В вашем мышевозном примере - своя транзакция на каждую форму, которая стартует при открытии (или когда надо) и сразу завершается при закрытии (окончания фетча если компоненты позволяют) последнего связанного с ней датасета.

Возможно ты и прав. В FireDac датасет не обязательно очищается по коммиту.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136468
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochконкретно в BDE или вообще? И почему ?
Лишний запрос на сервер.
В лучшем случае бесполезный (если Refresh стандартный и обновляет только текущую запись),
в худшем - вызывающий формирование нового result set-а, если осуществляется через
Close+Open+Locate.

Ariochа лезть в TDatabase/TSQLConnection/youNameIt расположенном в другой
форме/датамодуле?
Для мышевозников, увы, это меньшее зло.
По-хорошему соединение должно передаваться в форму, работающую с данными, как параметр.
В идеале - вся работа с БД должна осуществляться в отдельном классе, где этот объект
инкапсулирован до приватности и который обменивается с классами морды исключительно
бизнес-объектами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136474
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну короче - ORM наше всё :-)
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136475
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ лучшем случае бесполезный

не факт, может увидеть новые записи закоммиченные другими пользователями
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136481
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисда это приложение имеет крайне далёкую от реальных систем архитектуру.

Ты это понимаешь, я это понимаю, а тысячи чайников будут тупо копипастить. Не люблю сидеть
на саппорте, хоть это и основной источник дохода. Допиливать такую банку со спагетти тоже
удовольствие ниже среднего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136488
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochне факт, может увидеть новые записи закоммиченные другими пользователями

Повторяю ещё раз, медленно: "если Refresh стандартный и обновляет только текущую запись".
Я не знаю как работает метод с этим названием в FireDUCK.
Ну и "видеть новые записи" это, конечно, может быть полезный побочный эффект, но лично я
не уверен, что ему место в таком неочевидном месте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136516
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже и текущую запись кто-то может изменить

и я тоже повторю

Dimitry Sibiryakovтем более Requery

Dimitry Sibiryakovв худшем - вызывающий формирование нового result set-а, если осуществляется через
Close+Open+Locate.

То есть практический смысл этого есть, лучше это или хуже ,чем явный вызов подряд close/open/locate - вопрос дискуссионный
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136518
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochдаже и текущую запись кто-то может изменить
Но этого уже никто никогда не увидит, поскольку строчкой выше эти изменения были навсегда
потеряны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136675
EvgErmak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял про общую читающую транзакцию

Всю жизнь использую для отдельного датасета на форме (типа справочника,журнала или отчета) отдельную транзакцию на чтение с параметрами

isc_tpb_read
isc_tpb_read_committed
isc_tpb_nowait
isc_tpb_rec_version

и для изменений

isc_tpb_write
isc_tpb_read_committed
isc_tpb_wait
isc_tpb_no_rec_version

Взято отсюда: http://www.devrace.com/ru/fibplus/articles/2169.php

А также два общих датасета для всего приложения, один для чтения чего-либо, другой для изменений...
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39136894
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Evgermak!
You wrote on 24 декабря 2015 г. 11:38:24:

Evgermak> Взято отсюда: http://www.devrace.com/ru/fibplus/articles/2169.php зачем тебе их личные заблуждения?
заблуждайся сам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39137062
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgErmakНе понял про общую читающую транзакцию

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

Там есть всего лишь демонстрация некоторых способов работы с FireDac. Именно с компонентами, а не как пример архитектуры приложения.

1. Читающая транзакция не обязана быть одной и общей. И не обязана быть RO RC. Просто такая транзакция не удерживает сборку мусора, а потому может быть длинной. Остальные транзакции должны быть короткими. Хотя как заметил DS это не всегда означает что не будет негативных эффектов.
2. В ряде случаев пишущая транзакция RC это зло.

Dimitry Sibiryakov,

я немного поменяю пример чтобы формы редактора не содержали логики.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39137067
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисТам есть всего лишь демонстрация некоторых способов работы с FireDac.
Именно с компонентами, а не как пример архитектуры приложения.
К сожалению, её будут рассматривать именно как пример архитектуры. И ТСы будут на неё
ссылаться в плане "я всё сделал как там написано, а база всё равно тормозит".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39140890
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov - все были бы очень признательны за реальный пример какой-нибудь задачи!

Банально - отображение одной таблицы и модальное редактирование запись из неё.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144575
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
Где можно скачать полный версии исходников там только dpr а где pas?
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144587
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RADSeatle,

пока качай отсюда https://yadi.sk/d/fYMrhAk5mUCHV
позже обновятся на ibase
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144650
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо..
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144691
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Dimitry SibiryakovК сожалению, её будут рассматривать именно как пример архитектуры. И ТСы будут на неё
ссылаться в плане "я всё сделал как там написано, а база всё равно тормозит".


RADSeatleГде можно скачать полный версии исходников там только dpr а где pas?

Ну вот, началось...
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144695
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

ещё раз для всех. Там не пример архитектуры, а пример работы с FireDac. И даны приёмы как не держать длительных транзакций, какие уровни изолированности выбирать и т.д.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144711
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 11 января 2016 г. 16:03:07:

Симонов Денис> даны приёмы как не держать длительных транзакций, какие уровни изолированности выбирать и т.д.
это уже "архитектура" приложения
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39144722
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати у кого есть пожелания по улучшению внимательно выслушаю.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39145000
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисКстати у кого есть пожелания по улучшению внимательно выслушаю.
Оформить приложение в виде образцово-показательного приложения Windows.
Со стандартными менюшками (File, View, Help...), сплешскрином, окном About.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39145080
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeroMQ,

ты ещё скажи руководство пользователя для этого написать
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39145092
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис
Хотел спросить можно ли в такое сделать snapshot режиме
Хочу заполнять в одной форме мастер и детайл сразу
Пример
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
  trWrite.StartTransaction;
  try
    //Вызываю процедуру с return id    
      qrySaveMaster.Execute();
      while not tmpdetail.Eof do
      begin
          qryproc.FieldByName('masterid').Value:=returnID;
          qryproc.FieldByName('qty').Value:=tmpdetail.fieldbyname('qty').value;
          qryproc.execute()
      end;
      qryProcUpdateBalanceTotal.Execute();
     trWrite.Commit;
     qryInvoice.Refresh;
    Action := caFree;
  except
    on E: Exception do
    begin
      if trWrite.Active then
        trWrite.Rollback;
      Application.ShowException(E);
      // It does not close the window give the user correct the error
      Action := caNone;
    end;
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39145096
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RADSeatleХотел спросить можно ли в такое сделать snapshot режиме

можно.

tmpdetail - это что ClientDataSet что ли? В FD можно использовать CachesUpdates не только для одной записи.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39145097
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно да это времменный датасет который заполняет
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151311
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите если у меня 20 датасетов для них тоже надо создать отдельно WriteTransaction или один хватит для всех?
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151318
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Radseatle!
You wrote on 20 января 2016 г. 12:33:20:

Radseatle> Подскажите если у меня 20 датасетов для них тоже надо создать отдельно WriteTransaction или один хватит для всех?
абстрагируйся от датасетов.
думай о том, что транзакции живут на сервере.
а не в твоём приложении.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151341
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял примерно так?

то есть при нажатие кнопки
dataset1.updatetransaction:=Datamodule.WriteTransaction
dataset2.updatetransaction:=Datamodule.WriteTransaction
dataset3.updatetransaction:=Datamodule.WriteTransaction

Try
Datamodule.WriteTransaction.Starttransaction
dataset1.post;
dataset2.post
dataset3.post

dataset1.applyupdates;
dataset2.applyupdates;
dataset3.applyupdates;

dataset1.commit;
dataset2.commit;
dataset3.commit;

Datamodule.WriteTransaction.CommitTranscation
except
Datamodule.WriteTransaction.rollback
end
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151344
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бурные аплодисменты. зал встаёт. скандирует.
на сцену приглашается Денис.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151359
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151361
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RADSeatle,

1. какой на фиг коммит у датасета. Наверное имелся ввиду CommitUpdates;
2. распихивать отложенные изменения через сразу в несколько датасетов это просто ад. Можно конечно, но в ряде случаев может быть высока вероятность конфликтов. Когда делаешь добавления это ещё ладно, но массовый апдейт нескольких записей...
И ещё там точно надо прям использовать датасеты? Может проще использовать ХП, которые сами распихают в несколько табличек
3. Транзакций должно быть столько сколько нужно. Если у тебя несколько запросов должны быть выполнены в рамках одной транзакции, то нужно одну транзакцию.

И ещё подумай что кроме транзакций БД существуют ещё так называемые бизнес-транзакции. Возможно не надо пытаться скрестить ужа и ежа.

Мимопроходящий,

такого я там не советовал
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151363
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 20 января 2016 г. 13:18:35:

Kdv> почитай
> http://www.ibase.ru/devinfo/ibx.htm#tran_use не катит же. у него ж сиэтл.
и он читал статью Дениса.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151369
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 20 января 2016 г. 13:20:11:

Симонов Денис> Мимопроходящий,
>
> такого я там не советовала всё теперь.
теперь ты в ответе за каждого хомячка которого приручил неофита прочитавшего твою статью
и соорудившего своё мегаприложение по образу и подобию.

зы: не рассматривай это как наезд :)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151399
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RADSeatle,

я так понимаю ты пытаешься одним действием добавить шапку документа и его строки. Так?

Если уж решил так делать, то заметь, что DataSet.Post делается для каждой записи. Поэтому в режиме CachedUpdates Post не надо вносить в старт транзакции

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
    

DataSet1.CachedUpdates := True;
DataSet2.CachedUpdates := True;
DataSet3.CachedUpdates := True;

// действия по вставке, редактированию и удалению из датасетов
// соответственно post вызываются здесь для каждой записи у которой Insert или Update

try
  trWrite.StartTransaction;

  DataSet1.CommitUpdates;
  DataSet2.CommitUpdates;
  DataSet3.CommitUpdates;

  trWrite.Commit;

  DataSet1.CachedUpdates := False;
  DataSet2.CachedUpdates := False;
  DataSet3.CachedUpdates := False;
except
    on E: Exception do
    begin
      if trWrite.Active then
        trWrite.Rollback;
      ...
    end;  
end;
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151415
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисИ ещё подумай что кроме транзакций БД существуют ещё так называемые
бизнес-транзакции.
И в простейших случаях они обязаны совпадать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151436
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийне катит же. у него ж сиэтл.
и он читал статью Дениса.
да пох. там FireDAC, тут IBX, все равно прямое управление транзакциями, так что концепцию можно использовать одну и ту же.
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151451
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 20 января 2016 г. 14:00:59:

Kdv> да пох. там FireDAC, тут IBX, все равно прямое управление транзакциями,
> так что концепцию можно использовать одну и ту же.противник прогресса!
ретроградный ортодокс!
реакционерный ястреб!
оголтелый мракобес!
обскурантный палеофрон!

в то время... когда наши... космические корабли... бороздят..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151473
RADSeatle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151532
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийретроградный ортодокс!
реакционерный ястреб!
оголтелый мракобес!
обскурантный палеофрон!
абстинентный синдром?
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151573
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dbconstructor!
You wrote on 20 января 2016 г. 15:45:42:

Dbconstructor> абстинентный синдром?трансгрессивная идиосинкразия

не люблю школьников
даже кушать нэ магу
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
АNN: Создание приложений для СУБД Firebird: FireDAC
    #39151607
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, "трансгрессивная" - наследственная чтоль?
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / АNN: Создание приложений для СУБД Firebird: FireDAC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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