powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
13 сообщений из 13, страница 1 из 1
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070437
NAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NAV
Гость
Всем привет!

Мелочи позади в проекте, начинается самое главное. Чтение данных из базы в таблицы и другие элементы формы.

Начальное условие - использование ADOConnection.
Исходя из этого подскажите, пожалуйста: какие компоненты мне необходимы для работы?? Для некоторых целей я УЖЕ использую ADOQuery. Может, этого элемента в связке с обычными контролами (ну, и ADOConnection, естественно) достаточно, чтобы читать и писать в базу через обычные (не DB-) элементы формы или же нужно обязательно добавить ADOTable, ADODataSet´s плюс к этому - DBGrid и ему подобное ??

Компонент так много, что голова идет кругом... Но не хочется на форму совать все подряд, хочется обойтись минимумом компонент, но чтобы при этом не пришлось слишком много кодить..
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070472
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBGrid, ADOCommand, ADODataset
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070475
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если проектом предусматривается многопользовательский доступ к обновляемым таблицам, то использование DBGRID вызовет блокировку при обновлении данных, которые читаются (просматриваются) в данный момент.
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070528
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBGrid - визуальный элемент, он просто отображает использует TDataSource на экране, он не управляет блокировками

Для работы с БД AdoConnection, AdoCommand, AdoQuery, AdoDataSet - AdoTable лучше не использовать

Для отображения - Все что есть в DataControls + все отстальные элементы управления, но для них придется писать код добавления/обновления базы
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070638
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я юзаю Janus GridEx 2000 - все устраивает
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070652
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй что хочешь, только через хранимые процедуры. Тогда все будет хорошо. И поках данных, и добавление, и все остальное.........
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070690
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
funikovyuri
>DBGrid - визуальный элемент, он просто отображает использует TDataSource на экране, он не управляет блокировками

Ага, только при его использовании нельзя зарыть курсор, и т. д.
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070691
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2tygra: про view ведь тоже забывать не стоит!
2AISOFT: если честно, не сталкивался. Но IMHO по крайней мере смотря с чем связан - если с Table, то ??? НО если с TQuery - интересно что он там блокирует - хотя ...
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070762
SuperMuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что, если используешь DBGrid, то после изменения данных в нем происходит блокировка это 100%! Я на эти грабли наступал. Не знаю кто блокирует, но это факт. Я избавляюсь от этого припомощи выставления хинтов: WITH(NOLOCK или какой-либо еще). И еще, учтите, что если у вас в гриде отражается запрос соеденерия нескольких таблиц, то при удалении и обновлении будет сделана попытка удалить или обновить все таблицы учавствующие в запросе.
Конечно, в гриде есть св-во, которое отвечает за то чтоб изменялись только измененные данные, но лично я так и не смог его заставить работать. Кста, может у кого-нить это получилось?
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070769
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2SuperMuha: Написалы бы что используете? Явно TTable
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070785
Oleg F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, т.к. пока с ним не работал.
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32070828
SuperMuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2funikovyuri, а использую ADOQuery, конечно.
А во-вторых я не говорил, что DBGrid блокирует таблицу, я говорил, что в связке DBGrd+ADOQuery происходит блокировка при исправлении данных. Мне, честно говоря, по барабану кто блокирует данные, я говорю что факт имеет место. А Oleg F прав, в том что:
блокировки зависят только от текстов Ваших SQL-запросов, от настроек ADOQuery (или прочих DataSet-компонентов), от использования/неиспользование транзакций и от наличия/отсутствия индексов по ключевым полям в таблицах SQL-cервера (наличие или отсутствие индексов в MS SQL 7.0 влияет на способ блокирования, выбирается или блокирование строки при доступе через индекс или блокирование страницы если индекса нет) .
Ну и этот вопрос надо обсуждать в форуме по Delphi, IMHO.
...
Рейтинг: 0 / 0
Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
    #32071106
NAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NAV
Гость
Добавил я обычный 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, кстати, все равно не заменяет)

Объясните, пожалуйста, ЧТО для ЧЕГО! Потому как в хэлпе билдэровском так я толком и не понял, зачем их так много, этих компонент!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Grid или DBGrid?? ADOQuery ONLY или также ADODataSets, etc. ??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]