Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 09:55   #1
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию DBGrid не редактируется при использовании IBQuery.

Здраствуйте !
Работаю с СУБД FireBird, делаю интерфейс на Delphi. Для подключения и вывода инфы из таблиц вместо IBTable использую IBQuery с заранее забитыми запросами:
select * from t1 и.т.д.

Тока недавно обнаружил, что когда вывожу данные из таблиц в DBGrid через IBQuery, в DBGrid нельзя ничего редактировать.
Как это исправить ? При использовании IBTable всё нормально, но говорят что IBTable - это ламерство.
POPOV вне форума Ответить с цитированием
Старый 09.04.2010, 10:25   #2
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Код:
IBQuery.Edit;
IBQuery.Post;
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 09.04.2010, 10:34   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

IBQuery - только для чтения. Нужно использовать IBDataSet или к IBQuery прикручивать IBUpdateSQL, чтобы была возможность редактирования данных
pu4koff вне форума Ответить с цитированием
Старый 10.04.2010, 15:50   #4
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Код:
IBQuery.Edit;
IBQuery.Post;
А когда именно использовать данный код ?

Цитата:
Сообщение от pu4koff Посмотреть сообщение
IBQuery - только для чтения. Нужно использовать IBDataSet или к IBQuery прикручивать IBUpdateSQL, чтобы была возможность редактирования данных
1. IBDataSet использовать вместо IBQuery ? А это будет правильно ?
2. А например в ADO нет компонента IBUdpdateSQL, как там быть ?

Последний раз редактировалось POPOV; 10.04.2010 в 15:52.
POPOV вне форума Ответить с цитированием
Старый 10.04.2010, 16:51   #5
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Цитата:
говорят что IBTable - это ламерство.
Использование DbGrid-a для редактирования таблицы такое же ламерство)
Google2010 вне форума Ответить с цитированием
Старый 10.04.2010, 16:55   #6
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Google2010 Посмотреть сообщение
Использование DbGrid-a для редактирования таблицы такое же ламерство)
А чем это объясняется ? Это помоему удобней, чем к примеру сначала вводить в Edit то что надо изменить, потом то на что это нужно изменить, и только потом нажимать кнопку.
А так двойной клик по выбранной строке в DBGrid и меняю.

Кстати к одному из полей БД прикручен DBMemo1. Как его тогда редактировать ?
POPOV вне форума Ответить с цитированием
Старый 10.04.2010, 17:03   #7
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Цитата:
удобней
это когда щелкнул правой кнопкой по записи
выбрал изменить или удалить или добавить и вылетела формочка для редактирования/добавления этой записи!
и все на sql -запросах а не
Код:
IBTable.Edit;
IBtable.Post;
Google2010 вне форума Ответить с цитированием
Старый 10.04.2010, 17:25   #8
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Google2010 Посмотреть сообщение
это когда щелкнул правой кнопкой по записи
выбрал изменить или удалить или добавить и вылетела формочка для редактирования/добавления этой записи!
и все на sql -запросах а не
Код:
IBTable.Edit;
IBtable.Post;
О, спасибо вам за разъяснения. Теперь буду знать
POPOV вне форума Ответить с цитированием
Старый 11.04.2010, 21:31   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от POPOV Посмотреть сообщение
1. IBDataSet использовать вместо IBQuery ? А это будет правильно ?
Если мне не изменяет память, то IBQuery наследуется от IBDataSet. Там только тупо функциональность обрезается, а посредством IBUpdateSQL возвращается полная функциональность IBDataSet. Так что использование последнего является наиболее оптимальным, как мне кажется, если нужно выполнять чтение, добавление, изменение и удаление записей.
Цитата:
Сообщение от POPOV Посмотреть сообщение
2. А например в ADO нет компонента IBUdpdateSQL, как там быть ?
А там один компонент на все случаи жизни. Не помню уже как называется, но он что-то среднее между Table и DataSet. Пишется только запрос на выборку данных, а уже на базе него автоматически генерируются запросы на добавление, изменение, удаление записей.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании copyfile The Best Общие вопросы Delphi 20 22.07.2009 13:26
Отключение ActiveX при использовании JavaScript POPOV JavaScript, Ajax 2 02.07.2009 15:47
Проблемка при использовании регрессии 500_pinguins Microsoft Office Excel 0 16.06.2009 08:17
Баллонная подсказка при использовании Shell_NotifyIcon Fantom Win Api 1 28.09.2008 00:41
Как узнать какая колонка в DBGrid редактируется?? DangerousWulf БД в Delphi 3 31.01.2007 14:43