|
|
|
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:19 |
|
||
|
Firebird+MIDAS+IBExpress
|
|||
|---|---|---|---|
|
#18+
Привет! Полная з%№;%:;ца с поддержкой генераторов через Мидас... На community.borland.com поищи - там была статья как раз про IBX+MIDAS, но как обычно, работает только сам пример, а шаг вправо-шаг влево. Имхо, самым верным и быстрым решением было бы написать функцию вида getGenID , расширяющую твой AppServer, внутри которой на сервере приложений происходил бы вызов Код: plaintext и которую ты бы дергал в ClientDataSet на событии OnNewRecord и заполнял свое ключевое поле. Любые другие способы мне (имхо) кажутся непрозрачными и ненадежными в Мидас-приложениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2003, 17:39 |
|
||
|
Firebird+MIDAS+IBExpress
|
|||
|---|---|---|---|
|
#18+
Точно-точно. Получение следующего значения не в триггере, а в событии OnNewRecord - самое то. Особенно при связке мастер-деталь по этому полю, в этом случае очень желательно сразу знать его значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2003, 18:50 |
|
||
|
Firebird+MIDAS+IBExpress
|
|||
|---|---|---|---|
|
#18+
А если выкинуть МИДАС? Тогда пока DBGrid открыт висит транзакция на чтение, что мне кажется не очень правильно. Как вообще ПРАВИЛЬНО строить приложение при работе с IB? Примерчик так сказать... Может кто поделится опытом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2003, 20:17 |
|
||
|
Firebird+MIDAS+IBExpress
|
|||
|---|---|---|---|
|
#18+
Потестил еще.... Выкинул мидас - работает классно, но транзакция "висит".... Ставлю мидас - не работают генераторы. Все как у людей :) Сделал как советовали - через процедуру (тяжко вздыхая) не изящно..... Вот если бы немного поправить ClientDataSet, чтобы он нормально стал понимать генераторы (или провайдера).... Сырцы то вроде есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2003, 22:54 |
|
||
|
Firebird+MIDAS+IBExpress
|
|||
|---|---|---|---|
|
#18+
Тебе же сказали, как работать с трехзвенкой. Вообще говоря, двухзвенное и трехзвенное приложение строятся разными способами. Выбери, что же тебе требуется PS Транзакция открыта не когда открыт DBGrid, а когда открыт запрос. В двухзвенных приложениях обычно делают CommitRetaining. Да и IBX в них не используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:52 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32105433&tid=1580869]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 324ms |

| 0 / 0 |
