Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Странности 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
3-1103879417
intaari
2004-12-24 12:10
2005.01.30
Не устанавливается DataSource???


8-1097922688
GlavBOTan
2004-10-16 14:31
2005.01.30
Большой Bitmap и маленький A4 (или любой другой)


14-1105190158
xman
2005-01-08 16:15
2005.01.30
Connect to Quake III Arena


3-1104319731
AlexXn
2004-12-29 14:28
2005.01.30
Запроc к IB


1-1105712210
Skiner_Y
2005-01-14 17:16
2005.01.30
Меню