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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2009, 20:17   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

ArtInt, а по стринггриду можно выполнять запросы как с дбгридом?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 18.04.2009, 20:43   #12
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Запросы ты формируешь при помощи компонента Query, а Стринггрид и дбгрид просто отображают полученный результат.
S@fer вне форума Ответить с цитированием
Старый 19.04.2009, 11:59   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

S@fer, так это ж хорошо . Мне в принципе без разницы в чем результат и структуру таблицы отображать: в DBGride или StringGride. А вы можете привести пример кода отображения результата запроса в StringGrid?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.04.2009, 12:57   #14
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Код:
adoQuery.First;
i:=1;
While NOT AdoQuery.EOF do begin
  for j:=0 to adoQuery.recordCount-1 do
  Stringgrid.cellc[i,j+1]:=adoquery.Fields[j].asString; 
  i:=i+1;
  adoQuery.next;
end;
Вроде как-то так.
S@fer вне форума Ответить с цитированием
Старый 19.04.2009, 13:24   #15
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Эта процедура выведет содержимое таблицы в stringgrid?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.04.2009, 14:16   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я делаю через BDE. Ваш код я попробовал сделать так:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
 i,j:integer;
begin
 Query1.First;
 i:=1;
 while not Query1.Eof do begin
  for j:=0 to Query1.RecordCount-1 do
   Form2.StringGrid1.Cells[i,j+1]:=Query1.Fields[j].AsString;
   i:=i+1;
   Query1.Next;
 end;
end;
Результат запроса на скриншоте. Вы подразумевали такой результат?
Изображения
Тип файла: jpg скрин.jpg (21.7 Кб, 154 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.04.2009, 17:14   #17
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Я делаю через BDE. Ваш код я попробовал сделать так:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
 i,j:integer;
begin
 Query1.First;
 i:=1;
 while not Query1.Eof do begin
  for j:=0 to Query1.RecordCount-1 do
   Form2.StringGrid1.Cells[i,j+1]:=Query1.Fields[j].AsString;
   i:=i+1;
   Query1.Next;
 end;
end;
Результат запроса на скриншоте. Вы подразумевали такой результат?
Я немного перепутал
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
 i,j:integer;
begin
 Query1.First;
 i:=1;
 while not Query1.Eof do begin
  for j:=0 to Query1.RecordCount-1 do
   Form2.StringGrid1.Cells[j,i]:=Query1.Fields[j].AsString;
   i:=i+1;
   Query1.Next;
 end;
end;
Так должно заноситься правильно, попробуй менять координаты записи. И смотри, что получиться.
Первую строку можно сделать заголовком,
т.е.
Код:
Form2.StringGrid1.Cells[0,0]:='ID'
Form2.StringGrid1.Cells[1,0]:='FIO'
Form2.StringGrid1.Cells[2,0]:='Predmet'
S@fer вне форума Ответить с цитированием
Старый 19.04.2009, 17:22   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

S@fer, спасибо) Это работает. Только у меня есть три вопроса.
1. Почему то не отображается третья колонка "Отчество".
2. Какая строчка в коде отвечает за позицию расположения начала колонок? Т.е. где указывается откуда начинается вствка записей?
3. Какую строчку кода вставить, чтобы в stringgride автоматически добавлялись строки?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 19.04.2009 в 17:32.
artemavd вне форума Ответить с цитированием
Старый 21.04.2009, 07:23   #19
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
1. Почему то не отображается третья колонка "Отчество"
Склько столбцов в стринггриде?
Цитата:
2. Какая строчка в коде отвечает за позицию расположения начала колонок? Т.е. где указывается откуда начинается вствка записей?
Код:
 i:=1;
 while not Query1.Eof do begin
  for j:=0 to Query1.RecordCount-1 do
   Form2.StringGrid1.Cells[j,i]:=Query1.Fields[j].AsString;
   i:=i+1;
   Query1.Next;
 end;
j - номер стоблца,
i - номер строки,
Нумерация в стринггриде начинается с ячейки [0,0]
Первую строку можно сделать заголовком (в свойтсвах стринггрида есть FixedCols, FixedRows).
Цитата:
3. Какую строчку кода вставить, чтобы в stringgride автоматически добавлялись строки?
Сделай так перед началом цикла вставь
Код:
Stringgrid.rowCount:=Query1.RecordCount;
S@fer вне форума Ответить с цитированием
Старый 21.04.2009, 08:43   #20
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

S@fer, я дописал ваш код так:
Код:
var
 i,j:integer;
begin
 Query1.First;
 i:=1;
 StringGrid1.RowCount:=Query1.RecordCount;
  while not Query1.Eof do
   begin
    for j:=0 to Query1.RecordCount + 1 do
     StringGrid1.Cells[j,i]:=Query1.Fields[j].AsString;
     i:=i+1;
     Query1.Next;
   end;
end;
Но почему то выводится только одна строка, а в БД их у меня пока две. Число столбцов в гриде равно числу столбцов в таблице в БД. Почему только одна строка?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранять ширину колонок у Grid adigozalov БД в Delphi 1 27.03.2009 15:30
Как в VB6 получить доступ к содержимому колонок в ListBox'е? AndreyMust19 Помощь студентам 3 21.03.2009 00:06
Синхронизация колонок eImage Microsoft Office Excel 4 13.03.2009 20:42
Звук без колонок Лубышев Помощь студентам 1 22.01.2008 19:50
как управлять звуком правой и левой колонок с помощью TrackBar? ZhekON Win Api 8 12.04.2007 14:50