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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 18:31   #1
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию Вывести непустые значения

используется Delphi + Access
На форма DBGRID и кнопка BtnBtn.
При нажатии на кнопку нужно, чтобы выводились все студенты проживающие в комнатах. Вот код.
Код:
procedure TForm3.N4Click(Sender: TObject);
begin

DataModule4.ADOQueryStudent.Active:=false;
DataModule4.ADOQueryStudent.SQL.text:='SELECT Код_студента, Фамилия, Имя, Отчество, Дата_рождения, Пол, Код_группы, Код_комнаты FROM Студенты WHERE (((Студенты.Код_комнаты) Is Not Null))';
DataModule4.ADOQueryStudent.Active:=true;
DataModule4.ADOQueryStudent.Open;
DBGrid1.Columns.Items[0].FieldName := 'Код_студента';
DBGrid1.Columns.Items[0].Title.Caption:='Код_студента';
DBGrid1.Columns.Items[0].Visible:=False;

DBGrid1.Columns.Items[1].FieldName := 'Фамилия';
DBGrid1.Columns.Items[1].Title.Caption:='Фамилия';
DBGrid1.Columns.Items[1].Visible:=True;

DBGrid1.Columns.Items[2].FieldName := 'Имя';
DBGrid1.Columns.Items[2].Title.Caption:='Имя';
DBGrid1.Columns.Items[2].Visible:=True;

DBGrid1.Columns.Items[3].FieldName := 'Отчество';
DBGrid1.Columns.Items[3].Title.Caption:='Отчество';
DBGrid1.Columns.Items[3].Visible:=True;

DBGrid1.Columns.Items[4].FieldName := 'Дата_рождения';
DBGrid1.Columns.Items[4].Title.Caption:='Дата_рождения';
DBGrid1.Columns.Items[4].Visible:=True;

DBGrid1.Columns.Items[5].FieldName := 'Пол';
DBGrid1.Columns.Items[5].Title.Caption:='Пол';
DBGrid1.Columns.Items[5].Visible:=True;

DBGrid1.Columns.Items[6].FieldName := 'Gruppa';
DBGrid1.Columns.Items[6].Title.Caption:='Группаfff';
DBGrid1.Columns.Items[6].Visible:=True;

DBGrid1.Columns.Items[7].FieldName := 'Komnata';
DBGrid1.Columns.Items[7].Title.Caption:='Комната';
DBGrid1.Columns.Items[7].Visible:=True;

DataModule4.ADOQueryStudent.Close;
end;
Ошибки Delphi не фиксирует, но и результат запроса не показывается.
StudentMarat вне форума Ответить с цитированием
Старый 04.12.2011, 18:44   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Open после Active:=true не нужен
2. Выполнили Close - зачем? Естественно ничего не отображается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.12.2011, 18:46   #3
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
1. Open после Active:=true не нужен
2. Выполнили Close - зачем? Естественно ничего не отображается
Сделал, но все равно ничего не отображается
StudentMarat вне форума Ответить с цитированием
Старый 04.12.2011, 18:52   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

DBGrid нацелен на DataSource?
DataSource нацелен на ADOQuery?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.12.2011, 19:00   #5
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Да DBGRID нацелен на DataSource

Нет DataSource нацелена на AdoTAble
StudentMarat вне форума Ответить с цитированием
Старый 04.12.2011, 19:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А при чем AdoTAble , если используете ADOQuery?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.12.2011, 19:04   #7
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А при чем AdoTAble , если используете ADOQuery?
Понял, час исправлю
StudentMarat вне форума Ответить с цитированием
Старый 04.12.2011, 23:09   #8
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Все с этим разобрался.
Но теперь появилась другая проблема.
К примеру, есть в DBGrid информация о студентах, проживающих в общежитии. Я хочу определенного студента выселить из комнаты общежития. Я пишу такой код:
Код:
procedure TForm3.BitBtn3Click(Sender: TObject);
var
f:string;
begin
F:=DataModule4.StudentTable.FieldValues['Фамилия'];
if  MessageDlg
('Вы действительно хотите выселить '+f+'',mtConfirmation,[mbYes,mbNo],0)= idYes
    then

        DataModule4.StudentTable.FieldByName('Komnata').Clear;
end;
Выдается ошибка.
StudentMarat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести на оси категорий значения месяцев? O_H Microsoft Office Excel 16 14.09.2016 00:59
MSSQL Как вывести значения по сегодняшней дате KARTOH SQL, базы данных 7 24.06.2011 18:56
Вычеслить и вывести значения сложной функции armeec08 Помощь студентам 19 13.05.2010 00:46
Как сложить непустые ячейки в StringGrid-e? artemavd Общие вопросы Delphi 11 10.04.2009 11:04
Вывести в DBGrid значения из DBLookupComboBox фЁдОр БД в Delphi 16 20.11.2007 16:27