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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2014, 18:04   #1
Dmitri1alfa
Новичок
Джуниор
 
Регистрация: 10.08.2014
Сообщений: 5
По умолчанию Заполнение DBGrid из SQL-таблицы

Всем доброго времени суток! Решил воспользоваться компонентом DBGrid для отображения данных из sql-таблицы.
Добавил я значит на форму компоненты DBGrid, DataSource, ADOConnection и ADODataSet. Связал их между собой. Создал кнопку с SQL-запросом.
Код кнопки:

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  AdoDataSet1.Active:=False;
    AdoDataSet1.CommandText:='select * from Table1';
  AdoDataSet1.Active:=True;
  AdoDataSet1.Open;
End;
При нажатии на кнопку в DBGrid ничего не выводится.
Подскажите, пожалуйста, что необходимо дописать, чтобы компонент отображал данные из SQL-таблицы? Заранее спасибо!

Последний раз редактировалось Stilet; 12.08.2014 в 12:20.
Dmitri1alfa вне форума Ответить с цитированием
Старый 10.08.2014, 18:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не использую этот компонент, поэтому скажу: ADODataSet меняй на ADQuery.
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  with AdoQuery1 do begin
    Active:=False;
    SQL.Text:='select * from Table1';
   Open;
  end;
...
end;
DataSource свяжешь с ним.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.08.2014, 11:29   #3
Dmitri1alfa
Новичок
Джуниор
 
Регистрация: 10.08.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не использую этот компонент, поэтому скажу: ADODataSet меняй на ADQuery.
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  with AdoQuery1 do begin
    Active:=False;
    SQL.Text:='select * from Table1';
   Open;
  end;
...
end;
DataSource свяжешь с ним.
Прописал данный код в кнопку, только вот почему-то после компиляции нажимаю на эту кнопку, а грид отображает только пустые строки, причем количество строк эквивалентно количеству строк в sql-таблице, вот только в гриде в строках данных нет. Подскажите, в чем может быть проблема?
Dmitri1alfa вне форума Ответить с цитированием
Старый 12.08.2014, 11:47   #4
mirkul
Пользователь
 
Регистрация: 16.07.2014
Сообщений: 62
Сообщение

Вместо Open Добавь
Код:
...
Active:=true;
...
mirkul вне форума Ответить с цитированием
Старый 12.08.2014, 11:54   #5
Dmitri1alfa
Новичок
Джуниор
 
Регистрация: 10.08.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от mirkul Посмотреть сообщение
Вместо Open Добавь
Код:
...
Active:=true;
...
Не помогло
Dmitri1alfa вне форума Ответить с цитированием
Старый 12.08.2014, 12:11   #6
mirkul
Пользователь
 
Регистрация: 16.07.2014
Сообщений: 62
Сообщение

Код:
...
procedure TForm1.Button2Click(Sender: TObject);
begin
  with AdoQuery1 do begin
    DBGrid1.DataSource:=DataSource1;
    Active:=False;
    SQL.Clear;
    SQL.Text:='select * from Table1';
    Active:=true;
  end;
...
end;
...
mirkul вне форума Ответить с цитированием
Старый 12.08.2014, 12:20   #7
Dmitri1alfa
Новичок
Джуниор
 
Регистрация: 10.08.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от mirkul Посмотреть сообщение
Код:
...
procedure TForm1.Button2Click(Sender: TObject);
begin
  with AdoQuery1 do begin
    DBGrid1.DataSource:=DataSource1;
    Active:=False;
    SQL.Clear;
    SQL.Text:='select * from Table1';
    Active:=true;
  end;
...
end;
...
Да не, ребят, привязку к DataSource в гриде я в Object Inspector'е сделал. Можно и программно канеш, но не суть. Дело не в этом...
Dmitri1alfa вне форума Ответить с цитированием
Старый 12.08.2014, 12:23   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
ADODataSet1.Close;
ADODataSet1.commandText:='....';
Dbgrid1.columns.Clear;
Dbgrid1.Datasource:=DataSource1;
Dbgrid1.DataSource.DataSet:=AdoDataSet1;
DBgrid1.Datasource.DataSet.Open;
showMessage( Inttostr(DBGrid1.Datasource.DataSet.RecordCount));
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.08.2014, 12:24   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в Table1 той данные не пустые хоть есть?
И в гриде если есть созданные колонки убери
Да, Active:=True и Open одно и то же, считай синонимы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.08.2014, 12:25   #10
Dmitri1alfa
Новичок
Джуниор
 
Регистрация: 10.08.2014
Сообщений: 5
По умолчанию

Прошу прощения. Тему можно закрывать. Оленем оказался я. Проблема решилась созданием нового грида, наверное в старом чет в опциях намудрил. Всем спасибо.
Dmitri1alfa вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы данными через SQL запрос nata-khramenkova Помощь студентам 3 18.03.2014 13:55
Заполнение DBComboBox из DBGrid. chelsea_1993 Помощь студентам 1 02.04.2013 21:35
Макрос: заполнение таблицы данными из другой таблицы с автоматическим добавлением строк yevgeniy.demidov Microsoft Office Excel 6 06.09.2012 15:27
Заполнение DBGrid Girl-bird БД в Delphi 4 22.05.2011 18:03
Заполнение DBgrid из DBLookupComboBox1 girz БД в Delphi 0 17.05.2009 13:01