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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2008, 17:26   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию Перенос данных из StringGrid-а в DBGrid

Как сделать чтобы по нажатию кнопки данные заносились из StringGrid-а в DBGrid?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 24.08.2008, 10:29   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

DBGrid не может хранить данные, он только отображает содержимое DataSet'a. Из StringGrid данные нужно перенести в базу данных, в крайнем случае, в какой-нибудь виртуальный набор данных, не связанный с физической таблицей базы данных...
Rik вне форума Ответить с цитированием
Старый 19.03.2009, 17:36   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от Rik Посмотреть сообщение
DBGrid не может хранить данные, он только отображает содержимое DataSet'a. Из StringGrid данные нужно перенести в базу данных, в крайнем случае, в какой-нибудь виртуальный набор данных, не связанный с физической таблицей базы данных...
не могли бы вы помочь с кодом как это сделать? очень нужно.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.03.2009, 17:51   #4
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Код:
  table1.Append;
  table1.Edit;
  table1.FieldByName('<name1>').AsString:=stringgrid1.cells[1,1];
  table1.post;
  table1.Refresh;
остальное я думаю сами придумаете
Тяжело быть бестолковым.....

Последний раз редактировалось Dark_Spirit; 19.03.2009 в 17:57. Причина: :)
Dark_Spirit вне форума Ответить с цитированием
Старый 20.03.2009, 11:07   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Попробовал такой код:
Код:
 Table1.Append;
 Table1.Edit;
 Table1.FieldByName('№').AsString:=Form1.SG9.Cells[0,1];
 Table1.Post;
 Table1.Refresh;
но при нажатии на кнопку появляется ошибка: "Tabel1: Field '№' not found". В чем моя ошибка?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.03.2009, 11:21   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в том что у тебя поле явно по другому называется.
И еще - не называй поля русскими словами, Делфи это не любит
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.03.2009, 11:29   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А в том что у тебя поле явно по другому называется.
Ээ...в StringGride?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.03.2009, 11:30   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В FieldByName и в Базе
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.03.2009, 11:46   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Хорошо Спасибо ребята, с этим я разобрался) А как сделать, чтобы в dbgrid заносилась не одна строчка, а столько строчек, сколько заполненных у меня их в stringgrid-e? А то если заполненны скажем две, то в dbgrid ниче не заносится, а если одна, то все отлично заносится. Как это сделать? Нужен какой то цикл?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.03.2009, 12:08   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вот, сделал так:
Код:
var
 i:integer;
begin
 for i:=1 to 25 do
 begin
 Table1.Append;
 Table1.Edit;
 Table1.FieldByName('№').AsString:=Form1.SG9.Cells[0,i];
 Table1.FieldByName('Фамилия Имя Отчество').AsString:=Form1.SG9.Cells    
 [1,i];
 Table1.FieldByName('2-ки').AsString:=Form1.SG9.Cells[2,i];
 Table1.FieldByName('3-ки').AsString:=Form1.SG9.Cells[3,i];
 Table1.FieldByName('4-ки').AsString:=Form1.SG9.Cells[4,i];
 Table1.FieldByName('5-ки').AsString:=Form1.SG9.Cells[5,i];
 Table1.FieldByName('КО').AsString:=Form1.SG9.Cells[6,i];
 Table1.FieldByName('СБ').AsString:=Form1.SG9.Cells[7,i];
 Table1.FieldByName('КУ').AsString:=Form1.SG9.Cells[8,i];
 Table1.FieldByName('У').AsString:=Form1.SG9.Cells[9,i];
 Table1.FieldByName('О').AsString:=Form1.SG9.Cells[10,i];
 Table1.FieldByName('ЧО').AsString:=Form1.SG9.Cells[11,i];
 Table1.Post;
 Table1.Refresh;
 end;
Все отлично добавляет . Но есть одна неполадка. Вообщем как сделать, чтобы пустые строки не добавлялись? Сделать цикл на проверку пустоты?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос слов в StringGrid artemavd Общие вопросы Delphi 1 17.03.2009 15:58
перенос данных Romuald Microsoft Office Excel 8 23.02.2009 12:40
StringGrid -> DBGrid artemavd Общие вопросы Delphi 1 24.09.2008 20:34
Scroll в DBGrid и StringGrid Roof Компоненты Delphi 2 27.07.2008 17:46