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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2014, 01:31   #1
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию Перенос выделенной строки с дальнейшим добавлением, поочередно из dbgrid в stringgrid

Здравствуйте, ребят! Помогите пожалуйста! Есть компоненты DBGrid1 , DataSource1, ADOConnection1, ADOTable1 - база данных из access и есть таблица Stringgrid. Так вот, моя задача из dbgrid перенести построчно данные, то есть я выбираю строку и она должна переноситься в stringgrid, выбираю другую любую - она должна переноситься дальше, не заменяя предыдущую, как, например, в этом коде (ОН МНЕ НЕ ПОДХОДИТ!! - заменяет):
Код:
with DBGrid1.DataSource.DataSet do
for
j:=0 to FieldCount - 1   do
konstruktor2.StringGrid1.Cells[j+1, 2]:=Fields[j].AsString;
Напишите, если кому не трудно кодик, я пока что сама сочинять коды не очень-то умею, только копировать и вставлять в нужное место могу.. а найти то, что мне нужно не могу =((

Последний раз редактировалось Stilet; 26.04.2014 в 09:45.
Ksenia Weide вне форума Ответить с цитированием
Старый 26.04.2014, 09:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
with DBGrid1.DataSource.DataSet do begin
 first; konstruktor2.StringGrid1.RowCount:=2;
 while not eof do begin
  konstruktor2.StringGrid1.RowCount:=konstruktor2.StringGrid1.RowCount+1;
  for j:=0 to FieldCount - 1   do
     konstruktor2.StringGrid1.Cells[j+1, konstruktor2.StringGrid1.RowCount-1]:=Fields[j].AsString;
  next;
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2014, 23:11   #3
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
with DBGrid1.DataSource.DataSet do begin
 first; konstruktor2.StringGrid1.RowCount:=2;
 while not eof do begin
  konstruktor2.StringGrid1.RowCount:=konstruktor2.StringGrid1.RowCount+1;
  for j:=0 to FieldCount - 1   do
     konstruktor2.StringGrid1.Cells[j+1, konstruktor2.StringGrid1.RowCount-1]:=Fields[j].AsString;
  next;
 end;
end;
Этот код просто всё копирует =(( У меня база данных (в дбгриде) состоит, допустим, из 1000 строк, а мне нужно выбрать из них, например, 5,10 или 20 (и не только) любых, которые я пожелаю строк, не рандомно, и перенести в стринггрид,это возможно?
Ksenia Weide вне форума Ответить с цитированием
Старый 27.04.2014, 23:31   #4
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

Нашла про выделение строк в dbgrid, осуществила, теперь их как-то нужно перенести в stringgrid. Выделила через dgMultiSelect. Знаете как перенести?
Ksenia Weide вне форума Ответить с цитированием
Старый 28.04.2014, 00:08   #5
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Пройтись по выделенным строкам:
Код:
  for I := 0 to DBGrid1.SelectedRows.Count-1 do begin
    DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[I]));
    //здесь присвоение ячейкам стрингрида значений из текущей выделенной строки датасета (как у stilet)
  end;
Прик вне форума Ответить с цитированием
Старый 28.04.2014, 00:58   #6
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

Спасибо огромное, что-то получается, благодоря вам!!! Но есть одно нооо( иероглифы.. Что-то не могу найти куда вписать и каким образом тип данных. Есть и текст и цифры, причем с плавающей запятой.. После Items,я так понимаю, вписать это невозможно,либо не знаю как, подскажешь что?
Ksenia Weide вне форума Ответить с цитированием
Старый 28.04.2014, 01:06   #7
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

ААА!!!!!!!! Всё)) я дурында) поняла! вот, всё работает:

DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.Select edRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
konstruktor2.StringGrid1.Cells[j+1,i+2]:=DBGrid1.Datasource.Dataset.Fields[j].AsString;
Ksenia Weide вне форума Ответить с цитированием
Старый 28.04.2014, 01:08   #8
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Чего тормозим? Выше у Stilet'а же показано:
Код:
  for j:=0 to FieldCount - 1 do
     konstruktor2.StringGrid1.Cells[j+1, konstruktor2.StringGrid1.RowCount-1] := DBGrid1.DataSource.DataSet.Fields[j].AsString;
Ничего не меняется. Там вариант прохода по всем записям, а здесь только по выделенным, но выборка данных из полей та же.
Прик вне форума Ответить с цитированием
Старый 28.04.2014, 01:08   #9
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

Спасибо!!!!!
Ksenia Weide вне форума Ответить с цитированием
Старый 28.04.2014, 01:10   #10
Ksenia Weide
 
Регистрация: 26.04.2014
Сообщений: 7
По умолчанию

Да,да) стормозила немного, но поняла до того, как ты написал) немного радует,что хоть так) спасибо огромное)
Ksenia Weide вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
номер выделенной строки в DBGrid Delphi tanek Помощь студентам 2 12.03.2012 17:08
Удаление выделенной строки из DBGrid Sinker БД в Delphi 9 20.05.2011 03:09
Получение данных отдельного поля из выделенной строки DBGrid Kuzya59 БД в Delphi 3 18.02.2010 13:11
Перенос данных из StringGrid-а в DBGrid artemavd БД в Delphi 16 21.03.2009 08:26
доступ к элементам выделенной строки в DBGrid yulia БД в Delphi 2 12.12.2007 12:51