Ограничение на количество компонетов IBSQL в проекте

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Klubень
Сообщения: 4
Зарегистрирован: 17 мар 2006, 19:59

Ограничение на количество компонетов IBSQL в проекте

Сообщение Klubень » 17 мар 2006, 20:16

Добрый День!

Товарищи разьясните мне пожалуйста. Можно ли использовать неограниченное количество компонентов IBSQL. Или все таки необходимо очищать свойство SQL и создавать новый запрос Prepare?

И еще! Я начинающий. Поэтому для меня актуальна проблема взаимодействия IBTransaction и IBDataset. Решаю ее так: читаю в IBDataset в одной транзакции, а модифицирую записи IBSQL и в другой транзакции (компоненте). Так в статье у Д. Кузьменко. В книге "Мир Interbase" используется IBDataset и для чтения и для модификации. Кому отдать предпочтение?
Еще есть IBQuery+IBSQLUpdateW. Короче, кто что использует?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 мар 2006, 21:14

Klubень писал(а): Можно ли использовать неограниченное количество компонентов IBSQL.
Неограниченное - это звучит гордо... От бесконечности, может exe-шник уже и треснет по ресурсам... А может и не треснет... Мне проверить всё равно не получится, так и помру неучем :( Если запрос выполняется однократно и таких запросов в модуле шквал, то, пожалуй, чиста эстетически, через один TIBSQL удобней будет, а то глядючи на dfm-ку в глазах рябить начнёт. А если несколько запросов многократно, то каждый через свою быстрее будет. Выбирай, сегодня по пять или вчера по три :)
Klubень писал(а): для меня актуальна проблема взаимодействия IBTransaction и IBDataset. Решаю ее так: читаю в IBDataset в одной транзакции, а модифицирую записи IBSQL и в другой транзакции (компоненте).
Вот и молодец. Малость побольше пахоты тебе, зато гораздо легче жить серваку и сетке. Верной дорогой идёте, товарищ. Не забудь ещё читающей транзакции явно сказать, что она read.
Klubень писал(а): В книге "Мир Interbase" используется IBDataset и для чтения и для модификации.
Так удумал один древний мудрец, подгонявший компоненты под образ мыслей господствовавшего в те времена на планете биологического вида писателей однопользовательских десктопных приложений с редактированием в гридах. Технология удобна тем, что упрощает тебе жизнь. А серверу и сетке при этом усложняет. Потом другой мудрец, думая и на ёлку влезть и ничего не ободрать, внедрил в сервер для её поддержки такое чудо, как CommitRetaining - типа и изменения коммитятся вовремя и датасет не схлопывается. Но даром ничего не достаётся. Эта примочка, в общем и целом, облегчает незавидную долю только сетки, серверу почти ничем не помогает.
Klubень писал(а): Еще есть IBQuery+IBSQLUpdateW. Короче, кто что использует?
TIBQuery есть на самом деле кастрированный TIBDataSet. От него отрезали все ...SQL, кроме одного. А потом приляпали возможность использовать костыли вместо оттяпаных органов. Впрочем, TIBQuery вполне можно использовать и вместо TIBSQL, для модификаций. Сделан для облегчения миграции с BDE больших программ, активно пользововавших TQuery. При использовании в режиме селектов удобен, если тебе что-то не особо длинное надо именно поселектить и поработать с TFields, без рефрешей строк, всегда с полным рефрешем выборки или вообще без рефреша. Менее трепетно, чем TIBDataSet, относится к пересборке текста запроса с сохранением в нём одних и теже параметров и обращении к ним через ParamByName. TIBDataSet в такой ситуации чаще изумляется и голосит - не знаю никаких таких параметров. Ну и параметры у него TParams, а не XSQLDA, как у TIBSQL, более однотипный код твоей программы получается, если пользуешь ещё и TIBDataSet. Ну и ещё TIBDataset не скрещивается с MIDAS/DataSnap, а TIBQuery скрещивается. Впрочем, насчёт последних образцов IBX я про это не очень отчётливо, может уже и TIBDataSet тоже, я свой форканул от него ещё в 2000 году, чтоб не зависеть от Джеффовых капризов.

Klubень
Сообщения: 4
Зарегистрирован: 17 мар 2006, 19:59

Сообщение Klubень » 18 мар 2006, 17:48

Здравствуйте! Merlin, Спасибо, очень хорошо разьяснил! Т.е. если я правильно понял IBDataset+IBSQL-forever или IBDataset+IBQuery?
Еще раз большое спасибо!!!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 мар 2006, 16:52

это все дело вкуса и привычки.

Ответить