|
|
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
Всем привет! Мелочи позади в проекте, начинается самое главное. Чтение данных из базы в таблицы и другие элементы формы. Начальное условие - использование ADOConnection. Исходя из этого подскажите, пожалуйста: какие компоненты мне необходимы для работы?? Для некоторых целей я УЖЕ использую ADOQuery. Может, этого элемента в связке с обычными контролами (ну, и ADOConnection, естественно) достаточно, чтобы читать и писать в базу через обычные (не DB-) элементы формы или же нужно обязательно добавить ADOTable, ADODataSet´s плюс к этому - DBGrid и ему подобное ?? Компонент так много, что голова идет кругом... Но не хочется на форму совать все подряд, хочется обойтись минимумом компонент, но чтобы при этом не пришлось слишком много кодить.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 20:50:55 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
DBGrid, ADOCommand, ADODataset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 23:27:32 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
Если проектом предусматривается многопользовательский доступ к обновляемым таблицам, то использование DBGRID вызовет блокировку при обновлении данных, которые читаются (просматриваются) в данный момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2002, 23:43:01 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
DBGrid - визуальный элемент, он просто отображает использует TDataSource на экране, он не управляет блокировками Для работы с БД AdoConnection, AdoCommand, AdoQuery, AdoDataSet - AdoTable лучше не использовать Для отображения - Все что есть в DataControls + все отстальные элементы управления, но для них придется писать код добавления/обновления базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 08:52:35 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
Я юзаю Janus GridEx 2000 - все устраивает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 11:39:59 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
Используй что хочешь, только через хранимые процедуры. Тогда все будет хорошо. И поках данных, и добавление, и все остальное......... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 11:57:58 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
funikovyuri >DBGrid - визуальный элемент, он просто отображает использует TDataSource на экране, он не управляет блокировками Ага, только при его использовании нельзя зарыть курсор, и т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 12:40:01 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
2tygra: про view ведь тоже забывать не стоит! 2AISOFT: если честно, не сталкивался. Но IMHO по крайней мере смотря с чем связан - если с Table, то ??? НО если с TQuery - интересно что он там блокирует - хотя ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 12:47:14 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
То что, если используешь DBGrid, то после изменения данных в нем происходит блокировка это 100%! Я на эти грабли наступал. Не знаю кто блокирует, но это факт. Я избавляюсь от этого припомощи выставления хинтов: WITH(NOLOCK или какой-либо еще). И еще, учтите, что если у вас в гриде отражается запрос соеденерия нескольких таблиц, то при удалении и обновлении будет сделана попытка удалить или обновить все таблицы учавствующие в запросе. Конечно, в гриде есть св-во, которое отвечает за то чтоб изменялись только измененные данные, но лично я так и не смог его заставить работать. Кста, может у кого-нить это получилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 14:14:31 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
2SuperMuha: Написалы бы что используете? Явно TTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 14:23:33 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
DBGrid никакого отношения к блокировкам не имеет, здесь уже писалось, что это визуальный компонент. Такой же как DBText, DBEdit или DBMemo. На блокировки влияют те наследники от DataSet, с помощью которых DBGrid чере DataSource работает с данными. Точнее не они сами, а те SQL-запросы, которые они используют. Вставка, удаление или редактирование данных через DBGrid приводит к вызову методов Append, Insert, Edit, Delete, Post компонента-наследника от DataSet. Сам DBGrid ничего делать с данными не умеет, он лишь спользует свойства и методы компонентов DataSource и DataSet. Иными словами, я хочу подчеркнуть то, что блокировки зависят только от текстов Ваших SQL-запросов, от настроек ADOQuery (или прочих DataSet-компонентов), от использования/неиспользование транзакций и от наличия/отсутствия индексов по ключевым полям в таблицах SQL-cервера (наличие или отсутствие индексов в MS SQL 7.0 влияет на способ блокирования, выбирается или блокирование строки при доступе через индекс или блокирование страницы если индекса нет). Я не знаю, влияют индексы на блокировку или нет в MS SQL 2000, т.к. пока с ним не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 14:43:52 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
2funikovyuri, а использую ADOQuery, конечно. А во-вторых я не говорил, что DBGrid блокирует таблицу, я говорил, что в связке DBGrd+ADOQuery происходит блокировка при исправлении данных. Мне, честно говоря, по барабану кто блокирует данные, я говорю что факт имеет место. А Oleg F прав, в том что: блокировки зависят только от текстов Ваших SQL-запросов, от настроек ADOQuery (или прочих DataSet-компонентов), от использования/неиспользование транзакций и от наличия/отсутствия индексов по ключевым полям в таблицах SQL-cервера (наличие или отсутствие индексов в MS SQL 7.0 влияет на способ блокирования, выбирается или блокирование строки при доступе через индекс или блокирование страницы если индекса нет) . Ну и этот вопрос надо обсуждать в форуме по Delphi, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2002, 15:18:01 |
|
||
|
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
|
|||
|---|---|---|---|
|
#18+
Добавил я обычный DataSource на форму, в качестве DataSet к которому указал уже существующий и служащий верой и правдой в других функциях ADOQuery (А ТАК МОЖНО ДЕЛАТЬ? :) Можно в качестве DataSet использовать ADOQuery? Если - нет, то почему я МОГУ выбрать ADOQuery в качестве DataSet ? ) В любом случае, я надеялся, что поступив таким образом, я смогу через ADOQuery->SQL->Add('SELECT * from mytable') c последующим ADOQuery->Open() "заиметь" в своем DataSource результат выборки из mytable. Похоже, ничего такого не произошло. Или же я просто не знаю, как получить извлеченные SELECT´ом данные? Может, тут нужно задействовать parameters ADOQuery? Хоть убейте, друзья, не понимаю я, зачем на форме множить ТАКУЮ КУЧУ компонент - ADOConnection (если есть более универсальный ADOQuery), ADODataSet (если, казалось бы, можно довольствоваться обычным DataSet, который ADODataSet, кстати, все равно не заменяет) Объясните, пожалуйста, ЧТО для ЧЕГО! Потому как в хэлпе билдэровском так я толком и не понял, зачем их так много, этих компонент! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2002, 02:23:26 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1818593]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 304ms |

| 0 / 0 |
