Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.04.2008, 14:24
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию копия записи

Как скопировать запись из DBgrid1 в DBgrid2 если струтура гридов одинаковая, но DBgrid2 находится на другой форме?
Ответить с цитированием
  #2  
Старый 16.04.2008, 14:40
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

копировать надо из DataSet1 в DataSet 2, гриды это только удобное средство для просмотра данных, а не данные...
Ответить с цитированием
  #3  
Старый 16.04.2008, 16:20
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

если у меня в гриде 1000 записей и мне нада скопировать 739-ую в другой грид (или любую другую на которой стоит указатель) как это сделать?
Ответить с цитированием
  #4  
Старый 16.04.2008, 16:33
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

к примеру так тут копируется запись из набора 2 в набор 1:
вместо TField-ов как у меня можно напрямую t2.FieldByName('ID').Value например
Код:
  
t2 перед этим устанавливаешь на нужную запись
t1.AppendRecord([t2id.Value,t2data.Value,t2sum.Value]);

Последний раз редактировалось xchrom, 16.04.2008 в 16:47.
Ответить с цитированием
  #5  
Старый 16.04.2008, 18:38
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

мне нада сделать так:
на главной форме распологается грид в который вбито 1000 наименований продукции. Так же существует форма Заказ на которой распологается второй грид. Мне нужно чтобы, установив курсор на любой записи в главном гриде и нажав на кнопку Добавить в заказ эта запись скопировалась во второй грид, который находится на форме Заказ.
Само собой первый и второй грид абсолютно одинаковы, т.е. в таблицах все типы и размер полей равны.
Ответить с цитированием
  #6  
Старый 17.04.2008, 15:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,106
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Horror
мне нада сделать так:
на главной форме распологается грид в который вбито 1000 наименований продукции. Так же существует форма Заказ на которой распологается второй грид. Мне нужно чтобы, установив курсор на любой записи в главном гриде и нажав на кнопку Добавить в заказ эта запись скопировалась во второй грид, который находится на форме Заказ.
Само собой первый и второй грид абсолютно одинаковы, т.е. в таблицах все типы и размер полей равны.

Какие компоненты для доступа к данным (т.е. DataSet'ы)?

Если TTable или обновляемый TQuery, то путем простой вставки записи е копирования ее содержимого. При этом путь к источника данных надо указывать полностью (с указанием формы).
Примерно так:
Код:
OrderForm.tOrder.Insert;
For I := 0 To OrderForm.tOrder.Fields.Count-1 Do
  OrderForm.tOrder.Fields[i].Value := SkladForm.tSklad.FieldByName(OrderForm.tOrder.Fields[i].FieldName).Value;
OrderForm.tOrder.Post;
Здесь предполагается, что обе формы созданы (исп. соотв. переменные OrderForm и SkladForm) и в источнике tSklad запись уже спозиционированна.

Если просто TQuery, то можно просто выполнить запрос типа
Код:
INSERT INTO Order (SELECT * FROM Storage)
Order - таблица заказа
Storage - таблица склада (т.е. товаров).
Данный запрос подразумевает точную идентичность этих таблиц. Если таблицы не идентичны (просто достаточно что бы был разный порядок полей), то в части SELECT вместо * укажи список полей в том порядке, который соответсвует таблице Order.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025