Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизСтранности DBGrid при работе с InterBase Найти похожие ветки
← →
Alex_S (2004-12-26 15:02) [0]Раньше пользовался только локальными БД, теперь нужно ее переделать для пары комп-ров. Пытаюсь использовать IB6.5. В базе масса полей (штук 60-70), поэтому не хочется при вставке и т.д записей явно использовать SQL-запросы, где все эти поля надо перечислять. Так же, как и прежде хочется использовать навигационные способы: DBGrid, DBNavigator, DBEdit и т.п. Но получается плохо с DBGrid. Вставляю строку, а она заменяет собой какую-нибудь старую. Более того, начинаю двигаться по DBGrid, она пропадает, появляется исчезнувшая или что-то ещё. Перезагружаю БД-все нормально. В чем я не прав? Использую компоненты TQuery, TDataBase... Пробовал с IBQuery, IBDataBase - там вообще база не корректируется. Извиняюсь, но с сетевыми БД только начинаю... Может, для пары комп-ро что-то другое посоветуете. Только файл-серверные варианты не желательны, так как постоянно большая база будет занята двумя пользователями.
← →
Vemer © (2004-12-26 21:20) [1]Используй для добавления/изменения данных отдельную форму с не-DB-Aware компонентами. Грид отражает несколько полей всех записей, форма все поля одной. Можно разнести по 2-м Dataset. Использование 2-х разных (пишущая/читающая) транзакции также желательно.
← →
DrPass © (2004-12-26 21:22) [2]
> Вставляю строку, а она заменяет собой какую-нибудь старую
В отличие от Парадокса в большинстве СУБД новые записи вставляются в произвольное место таблицы. IB тоже так поступает. Для того, чтобы этого не происходило, нужно выводить упорядоченный датасет (order by или просто использовать нужный индекс, если работаешь с TIBTable).
> Пробовал с IBQuery, IBDataBase - там вообще база не корректируется
Сначала почитай теорию, потом еще раз попробуй
← →
Соловьев © (2004-12-27 10:50) [3]http:\\ibase.ru
← →
msguns © (2004-12-27 12:34) [4]Для работы проги, работающей с парадоксом, на сетке из 2-х (3)компов, не надо никаких переводов - парадокс вполне удовлетворителен.
← →
Johnmen © (2004-12-27 12:57) [5]>Alex_S (26.12.04 15:02)
>...не хочется при вставке и т.д записей явно использовать SQL-
>запросы, где все эти поля надо перечислять.
Почему ты решил, что НАДО ? Вовсе НЕТ.
← →
Alex_S (2004-12-27 13:36) [6]msguns © (27.12.04 12:34) [4]
Для работы проги, работающей с парадоксом, на сетке из 2-х (3)компов, не надо никаких переводов - парадокс вполне удовлетворителен.
-------
Работать-то работает. Но что-то не нравится, не так как на одном. Работает с копией базы, изменения, сделанные другим пользователем видны только после перезагрузке базы, а хочется сразу и т.д.
Vemer © (26.12.04 21:20) [1]
Используй для добавления/изменения данных отдельную форму с не-DB-Aware компонентами. Грид отражает несколько полей всех записей, форма все поля одной. Можно разнести по 2-м Dataset. Использование 2-х разных (пишущая/читающая) транзакции также желательно.
----------
Без DBGrid - это без списка, а уже привыкли - со списком.
А 2 Dataset - что-то кажется уже лишним, хотя для некоторых ситуаций и полезно.
Johnmen © (27.12.04 12:57) [5]
Я уже начинаю догадываться, что и не НАДО - можно обойтись.
← →
msguns © (2004-12-27 13:45) [7]>Alex_S (27.12.04 13:36) [6]
>Работать-то работает. Но что-то не нравится, не так как на одном. Работает с копией базы, изменения, сделанные другим пользователем видны только после перезагрузке базы, а хочется сразу и т.д.
Зачем с копией-то ? Все клиенты должнй работать с одной базой. Для этого настроить BDE и Paradox.net. Изменения видны сразу, если правильно юзать TTable или TQuery с перечиткой.
← →
Alex_S (2004-12-27 19:18) [8]msguns © (27.12.04 13:45) [7]
<Все клиенты должнй работать с одной базой. Для этого настроить BDE и Paradox.net. >
--------------
Оказывается, их ещё как-то надо дополнительно настраивать - это не знал, и в букварях не сказано. А где ж это выяснить?
<Изменения видны сразу, если правильно юзать TTable или TQuery с перечиткой.>
Так все-таки без перечитки не обойтись?
(Если даже и не обойтись, то не смертельно, хотя это в DBGrid будет заметно...)
← →
Vemer © (2004-12-28 00:08) [9]Править данные в не-DB-aware компонентах, предварительно считав их из базы, а потом записывать изменения короткой пишущей транзакцией в IB/FB - почти единственный нормальный способ обеспечить нормальную работу нескольких пользователей в базе. Поэтому 2 Dataset и 2 транзакции - читающая и пишущая. Править данные в гриде - изврат. Т.к. нормально не отловить ошибки ввода + неудобно.
← →
Johnmen © (2004-12-28 00:32) [10]>Vemer © (28.12.04 00:08) [9]
>Править данные в гриде - изврат. Т.к. нормально не отловить
>ошибки ввода + неудобно.
Думаю, что не надо столь необдуманно категорично...
← →
Alex_S (2004-12-28 13:17) [11]DBGrid здесь только для ориентрировки - для списка (полей немного). Никто и не собирается править 70 полей в гриде. Все равно перехожу для этого в отдельную форму с несколькими листами.
Всем спасибо за подсказки. Постараюсь понять и учесть.
← →
Vemer © (2004-12-28 23:26) [12]Менее категоричный вариант для JohnMen:
Править данные в гриде - изврат в большинстве случаев..
← →
Johnmen © (2004-12-28 23:37) [13]>Vemer © (28.12.04 23:26) [12]
Мягче, Matt, ещё мягче...:)
Не забывай про овощи...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.053 c