
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2003, 17:19
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
Решил попробовать эту связку для своих задач. Пишу на 5-м С++ Билдере. Получаем такую цепочку: IBDatabase (+Def. IBTrans.)-> IBDataSource (+IBTrans.)-> DataSetProvider ->ClientDataSet ->DataSource ->DBGrid Пока удаление, чтение, редактирование проходит нормально. Но, я хочу чтобы ключевое поле получалось в соответствии в генератором. Для этого в IBDataSource есть GeneratorField. Но - не работает оно. Ставлю на New Record, On Post - нифига. Пока ручками в DbGrid-e ID не поставишь - не добавляет. Это четко видно SQLMonitorom. В чем проблема - непойму, подскажите как правильно использовать GeneratorField в млем случае? Может это из-за MIDAS-а или еще чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2003, 17:39
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
Привет! Полная з%№;%:;ца с поддержкой генераторов через Мидас... На community.borland.com поищи - там была статья как раз про IBX+MIDAS, но как обычно, работает только сам пример, а шаг вправо-шаг влево. Имхо, самым верным и быстрым решением было бы написать функцию вида getGenID , расширяющую твой AppServer, внутри которой на сервере приложений происходил бы вызов Код: plaintext и которую ты бы дергал в ClientDataSet на событии OnNewRecord и заполнял свое ключевое поле. Любые другие способы мне (имхо) кажутся непрозрачными и ненадежными в Мидас-приложениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2003, 18:50
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
Точно-точно. Получение следующего значения не в триггере, а в событии OnNewRecord - самое то. Особенно при связке мастер-деталь по этому полю, в этом случае очень желательно сразу знать его значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2003, 20:17
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
А если выкинуть МИДАС? Тогда пока DBGrid открыт висит транзакция на чтение, что мне кажется не очень правильно. Как вообще ПРАВИЛЬНО строить приложение при работе с IB? Примерчик так сказать... Может кто поделится опытом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2003, 22:54
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
Потестил еще.... Выкинул мидас - работает классно, но транзакция "висит".... Ставлю мидас - не работают генераторы. Все как у людей :) Сделал как советовали - через процедуру (тяжко вздыхая) не изящно..... Вот если бы немного поправить ClientDataSet, чтобы он нормально стал понимать генераторы (или провайдера).... Сырцы то вроде есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2003, 10:52
|
|||
|---|---|---|---|
|
|||
Firebird+MIDAS+IBExpress |
|||
|
#18+
Тебе же сказали, как работать с трехзвенкой. Вообще говоря, двухзвенное и трехзвенное приложение строятся разными способами. Выбери, что же тебе требуется PS Транзакция открыта не когда открыт DBGrid, а когда открыт запрос. В двухзвенных приложениях обычно делают CommitRetaining. Да и IBX в них не используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1580869]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 337ms |

| 0 / 0 |
