У меня есть форма с компонентом dbgrid и sqlquery. Я пытаюсь заполнить dbgrid с помощью sqlquery. Когда я это сделаю, я получаю сообщение: «Операция не разрешена для однонаправленного набора данных». Я НЕ хочу использовать набор данных клиента, так как мне не нужна «локальная» копия данных, я бы хотел прочитать и отобразить данные напрямую. Как это может быть сделано?dbgrid без клиента dataset
ответ
documentation четко указано, (подчеркивание добавлено):
TSQLQuery является однонаправленным набор данных. В отличие от других наборов данных, однонаправленные наборы данных не буферируют несколько записей в памяти. Из-за этого вы можете перемещаться только с использованием методов First и Next. Нет встроенной поддержки редактирования: вы можете редактировать данные только в SQL-запросе, явно создавая команду SQL UPDATE или подключая набор данных к набору данных клиента с помощью поставщика.
Поскольку нет буферизации нескольких записей, вы не можете двигаться в любом направлении, за исключением вперед, что означает, что DBGrid
не может отображать несколько строк или поддержку прокрутку.
(На самом деле, все DBExpress
компоненты являются однонаправленными, в соответствии с документацией по Types of DBExpress DataSets.)
Вы должны либо использовать TClientDataSet
или изменения с помощью DBExpress
в какой-то другой метод доступа к данным например ADO
, или отобразить данные с использованием чего-либо, кроме TDBGrid
(например, TStringGrid
) и реализовать собственное внутреннее хранилище. Однако TClientDataSet
не должен быть файлом диска, если количество данных, которое вы извлекаете, управляемо в памяти; все данные могут оставаться там без «локальной копии» («набор данных в памяти»).
- 1. Перемещение столбцов в DBGrid, кажется, перемещает прикрепленные поля DataSet
- 2. DBGrid не показывать записи
- 3. Auto обновить TDataSet/DBGrid
- 4. Фильтр DBGrid, Delphi.
- 5. Выберите DBGrid
- 6. Расчет Dbgrid
- 7. Delphi DbGrid упорядочить по ID
- 8. Компонент инкрементного поиска DBGrid
- 9. Обновить DBGrid VB6
- 10. Добавить DBLookupCombobox в Delphi DBGrid
- 11. Ширина столбца DBGrid видимая
- 12. Получить объект столбца для поля DataSet
- 13. DBGrid/DataSet не может сортировать согласно SQL заявление, установленного в CommandText
- 14. Добавление поиска, который ищет данные в DBGrid и временно изменяет то, что отображает этот DBGrid. Delphi
- 15. dbgrid autofit к форме
- 16. Объединить значения столбца DBGrid
- 17. Thousand Separator в DBGrid
- 18. DBGrid XE3 цвет фона
- 19. Delphi DBgrid Развернуть/свернуть
- 20. Мышь над названием dbgrid
- 21. Реализация моего собственного DBGrid
- 22. Delphi DBGrid условный dbcombo
- 23. Мне нужен DBGrid OnAfterCellClick
- 24. Delphi Dbgrid удалить запись
- 25. Изменить цвет строки DBGrid
- 26. CheckBox в DBGrid
- 27. DBGrid получить выделенную ячейку
- 28. dbgrid columns delphi
- 29. Настройка ширины столбца DBGrid
- 30. Выделить конкретный текст в DBGrid