Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.05.2008, 13:07
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
Смущение Жуткая проблема с запросом!!

Есть DBGrid,подключена к DataSource1.Query1 тоже подключена к DataSource1.Все идет хорошо,запрос обрабатывается.Но,форма для редактирования,которая обращается к тому же DataSource1 не позволяет редактировать данные DBGrid.Что делаааааааать????!Подскажите,как все организовать правильно!
Ответить с цитированием
  #2  
Старый 25.05.2008, 14:12
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Если Вы для доступа к данным используете Query, то Вам необходимо знать, что представления могут быть модифицируемыми и позволяющие только чтение данных. Для того что бы представление было модифицируемое нужно соблюсти несколько условий.
1.Нельзя использовать в SELECT операторы DISTINCT, HAVING и соединения таблиц.
2.Запрос не должен содержать агрегатных функций.

Если короче, то запрос должен обращаться к одной таблице без DISTINCT, GROUP BY, HAVING и всяких там AVG, SUM и т. д.
__________________
From VasYa with LoVe...
Ответить с цитированием
  #3  
Старый 25.05.2008, 16:57
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Если надо редактировать выборку лучше использовать Table, а не Query. Использовать вместо SQL запроса фильтры. Скорость конечно будет поменьше.
Если редактировать результаты SQL запроса в DBGrid-е необходимо то лучше использовать DataSet. С ADO это срабатывает, а вот с BDE не знаю.
Статья как раз об этом.
http://www.delphikingdom.com/asp/vie...?catalogid=420

А вообще обычно делают выборку через Query, а редактируют уже через Table. Например в DBGrid при двойном щелчке на записи, которую необходимо редактировать открываем форму для редактирования (карточку), где DB контролы уже подключены к соответствующим таблицам.
Переход на нужную запись в таблице,
Код:
Table1.Locate('id',Query1.fieldbyname('id').asstring,[]);
где id - ключевое поле.
Ответить с цитированием
  #4  
Старый 31.05.2008, 18:51
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
По умолчанию

Хммм...не получается.Я добавила еще один DataSource-DataSource2.Первый DataSource1 я подключила к таблице,2ой к Квери,DBGrid1 к DataSource2.Также прописала строку на кнопку к форме редактирования,а именно: form17.DBGrid1.DataSource:=form17.datasource1;

Теперь получается: запрос по поиску работает, редактирование происходит.НО!!!!После редактирования таблицы,уже нет возможности совершать поиск, а также редактирование происходит не по найденному полю,а по 1ой записи таблицы.Что делать???Что не тааак????Я просто уже не приложу ума,что делать??????
Ответить с цитированием
  #5  
Старый 01.06.2008, 21:55
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
Смущение

хммм...не соображу..Сорри..мой уровень знания Делфи весьма низок..Можно пороще?прямо на пальцах,если есть терпение

Есть одна таблица Table1.В ней содержатся фамилии,даты,диагнозы.Необходимо сделать запрос так,чтобы диагнозы одинаковые группировались,производился подсчет количества диагнозов в каждой группе и результат выводился в виде таблицы в Эксель...

Последний раз редактировалось killpretty, 01.06.2008 в 22:04. Причина: удалить,удалить!
Ответить с цитированием
  #6  
Старый 01.06.2008, 21:56
Аватар для killpretty
killpretty killpretty вне форума
Прохожий
 
Регистрация: 04.11.2007
Сообщения: 33
Репутация: 10
Смущение

хммм...не соображу..Сорри..мой уровень знания Делфи весьма низок..Можно попроще?прямо на пальцах,если есть терпение

Есть одна таблица Table1.В ней содержатся фамилии,даты,диагнозы.Необходимо сделать запрос так,чтобы диагнозы одинаковые группировались,производился подсчет количества диагнозов в каждой группе и результат выводился в виде таблицы в Эксель...

Последний раз редактировалось killpretty, 01.06.2008 в 21:59. Причина: удалить!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter