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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2012, 02:52   #1
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию ЦИКЛ НА ПЕРЕНОС ДАННЫХ!

Есть dbgrid на одной форме и есть stringgrid на другой. я хочу сделать перенос данных таким вот образом:

procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
form4.Show;

begin
Form4.StringGrid1.Cells[0,0]:='ччччч';
Form4.StringGrid1.Cells[1,0]:='сссс';
Form4.StringGrid1.Cells[2,0]:='ссссс';
Form4.StringGrid1.Cells[3,0]:='вввв';
Form4.StringGrid1.Cells[4,0]:='вввв';
Form4.StringGrid1.Cells[5,0]:='уувув';
Form4.StringGrid1.Cells[6,0]:='QQQQQQ';

s:=dbgrid1.DataSource.DataSet.field s[0].asstring;
form4.StringGrid1.Cells[0,1]:=s;
dbgrid1.DataSource.DataSet.next;
end;
end;

копирует первую ячейку и передвигается на одну ниже. А как сделать цикл что бы оно копировало все данные (они могут меняться)??? Всего должно заполниться 6 столбцов, а седьмой 'QQQQQQ' будет пустой...
Заранее спасибо!
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 04:02   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

armrock
Вообще вашего вопроса не понял.
Ну чтож, осмелюсь предположить что вы не понимаете как обращаться с помощью цикла к каждому столбцу компонента ДБгрида.
Собственно так и будет выглядеть сам цикл:
Код:
for i:=1 to dbgrid1.Columns.Count do
Ну и при обращении к столбцу указываем параметр цикла:
Код:
dbgrideh1.DataSource.DataSet.Fields[i-1].AsString
Не запутайтесь в типах данных.
Базиля вне форума Ответить с цитированием
Старый 04.08.2012, 12:28   #3
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 111

Сделал вот так но всёравно ошибка: но смотрит значения по диагонали=((( и записыват их в столбец=(

Код:
For i:=1 To dbgrid1.Columns.Count Do
Begin
    s:=dbgrid1.DataSource.DataSet.fields[i-1].asstring;
    form4.StringGrid1.Cells[0,i]:=s;
    dbgrid1.DataSource.DataSet.next;
end;
end;
поправте пожалуйста...
если ставлю фиксированое поле в dbgride то работает, но только со столбцом, а мне нужно что б прошло по всей таблице!

Последний раз редактировалось armrock; 04.08.2012 в 12:45.
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 12:50   #4
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 111

ооо и ещё если второй раз нажать на эту же кнопку то он запишет в столбец последнюю строку=(((
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 13:30   #5
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 111

Всё сделал!!! ВСЕМ СПАСИБО!

Код:
begin
  j := 1;
  DBGrid1.DataSource.DataSet.First;
  while not DBGrid1.DataSource.DataSet.Eof do
  begin
    for i := 0 to DBGrid1.Columns.Count - 1 do
    begin
      Form4.StringGrid1.Cells[i, j] := DBGrid1.DataSource.DataSet.Fields[i].AsString;
    end;
    Inc(j);
    DBGrid1.DataSource.DataSet.Next;
    Form4.StringGrid1.RowCount:= Form4.StringGrid1.RowCount + 1 ;
  end;
   Form4.StringGrid1.RowCount:= Form4.StringGrid1.RowCount -1;
end;
end;
end;
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 14:49   #6
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 1111

Спасибо, но вот опять получилась ошибка:
Код тот же:
Код:
begin
  j := 1;
  DBGrid1.DataSource.DataSet.First;
  while not DBGrid1.DataSource.DataSet.Eof do
  begin
    for i := 0 to DBGrid1.Columns.Count - 1 do
    begin
      Form4.StringGrid1.Cells[i, j] := DBGrid1.DataSource.DataSet.Fields[i].AsString;
    end;
    Inc(j);
    DBGrid1.DataSource.DataSet.Next;
    Form4.StringGrid1.RowCount:= Form4.StringGrid1.RowCount + 1 ;
  end;
   Form4.StringGrid1.RowCount:= Form4.StringGrid1.RowCount -1;
end;
end;


Проблема в том, что когда я запускаю прогу, нажимая кнопку, в stringgrid скопировались все например 20 строк, а потом НЕ ЗАКРЫВАЯ ПРОГРАММУ, возвращаюсь на dbgrid и удаляю из неё некоторые строки или все полностью, сново нажимаю кнопку, а Данные всёравно остаються. Кароче говоря, данные только вносяться туда, но не убираються!!! Как сделать????
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 15:10   #7
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Так что сделать то?
Убирать данные из ДБгрида?
Так это надо удалять тогда не из дбгрида, а из самой таблицы. ДБгрид никаком образом не отвечает за данные в таблице, он попросту их отображает, не более.
Базиля вне форума Ответить с цитированием
Старый 04.08.2012, 15:20   #8
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 111

ТО что он отображает их я знаю, просто так понятнее... и я НЕПРАВИЛЬНО ОБЪЯСНИЛ ЗАГВОЗДКУ!!!!!!!

Кароче При запуске и первом нажатии на кнопку данные копируються в stringgrid, потом не закрывая программу удаляю данные из базы и снова нажимаю кнопку, данные пропадают и в stringgride, а потом снова вношу данные в базу, ну тоесть заполняю dbgrid и нажимаю кнопку, И ВОТ ТЕПЕРЬ УЖЕ ДАННЫЕ НЕ КОПИРУЮТЬСЯ В STRINGGRID... А НУЖНО ЧТО Б КОПИРОВАЛИСЬ!!!!!!!!!!!!!Вот=))
armrock вне форума Ответить с цитированием
Старый 04.08.2012, 15:26   #9
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

armrock
Покажите код где реализовывается добавление записей в БД.
Цитата:
И ВОТ ТЕПЕРЬ УЖЕ ДАННЫЕ НЕ КОПИРУЮТЬСЯ В STRINGGRID... А НУЖНО ЧТО Б КОПИРОВАЛИСЬ!!!!!!!!!!!!!
Согласитесь логично - наверное добавлять попросту нечего.
Базиля вне форума Ответить с цитированием
Старый 04.08.2012, 15:32   #10
armrock
Пользователь
 
Регистрация: 04.08.2012
Сообщений: 27
По умолчанию 111

А нету кода=)) я редактирую базу средствами DBNavigator....и непонял что значит добавлять нечего??
armrock вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MySQL перенос данных между базами данных с MyDAC Nikolay88 БД в Delphi 3 14.05.2011 00:17
Изменение данных и перенос данных из одной таб в другую Kot9ra Microsoft Office Access 13 02.07.2010 12:22
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34