Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как скопировать запись из одной таблицы DBGrid1 в другую таблицу   Найти похожие ветки 

 
alkin   (2006-04-28 10:00) [0]

Как скопировать запись из одной таблицы DBGrid1 в другую таблицу DBGrid2 максимально быстро.  Спасибо.


 
balepa ©   (2006-04-28 10:05) [1]

Что подразумевается под "запись" ?

DBGRID2.ЗАПИСЬ = DBGRID1.ЗАПИСЬ


 
balepa ©   (2006-04-28 10:13) [2]

З.Ы: Копировать IMHO лучше из DataSource1 в DataSource2, а не из DBGrid1 в DBGrid2


 
ЮЮ ©   (2006-04-28 10:14) [3]

DBGRID2.DataSource.DataSet.Insert;
 <перенос данных из DBGRID2.DataSource.DataSet>
DBGRID2.DataSource.DataSet.Post;


 
ЮЮ ©   (2006-04-28 10:15) [4]

<перенос данных из DBGRID1.DataSource.DataSet>, естественно


 
Sergey13 ©   (2006-04-28 10:24) [5]

2alkin   (28.04.06 10:00)
>максимально быстро
Если максимально, то не использовать гриды вообще. 8-)


 
balepa ©   (2006-04-28 10:35) [6]

Интересно какой смысл копировать всего одну запись максимально быстро, это ж надо постараться чтобы она копировалась долго (1 мс или 30 мс какая разница)


 
ЮЮ ©   (2006-04-28 10:38) [7]

>это ж надо постараться чтобы она копировалась долго

Элементарно: добавляем не в DataSet, а в БД. Переоткрываем DataSet, содержашийй 1000000 записей на клиенте.


 
balepa ©   (2006-04-28 10:44) [8]


> ЮЮ ©   (28.04.06 10:38) [7]

Вопрос вроде был про то что бы процесс копирования одно записи был максимально быстрым или нэт ?


 
alkin   (2006-04-28 11:02) [9]

Благодарю Всех, кто ответил.
Поясняю вопрос: Есть подключаемая база Access (около 5000 записей, 10 колонок). В DBGrid1 список ВСЕЙ базы. Формирую отбор записей в базе по данным из 3-х колонок (т.е. организован поиск подстрок в этих колонках)
Результат хочется вывести в пустой DBGrid2, который находится на отдельной форме.
Извиняюсь, если неверно истолкован первый вопрос


 
Sergey13 ©   (2006-04-28 11:05) [10]

2 [9] alkin   (28.04.06 11:02)
Как всегда, блин!
"Сколько времени? А то так есть хочется, что аж переночевать негде" 8-)

Не нужно тебе копирование. Тебе фильтрация нужна и умение задавать вопросы.


 
balepa ©   (2006-04-28 11:08) [11]


> alkin   (28.04.06 11:02)

Что тебе помешало сразу объяснить что тебе надо ?


> alkin   (28.04.06 11:02) [9]

Это воспринимать как "уже получилось" или "предложения все еще принимаются" ?


 
alkin   (2006-04-28 11:11) [12]

Не получается пока


 
Плохиш ©   (2006-04-28 11:11) [13]

Странно, и ни кто ещё не сказал одну важную вещь, в DBGrid записей нет.


 
alkin   (2006-04-28 11:13) [14]

Ну я имею ввиду строки


 
alkin   (2006-04-28 11:15) [15]

Фильтр уже организован и  работает. Нужен именно отбор строк с копированием их в другой DBGrid. Спасибо.


 
alkin   (2006-04-28 11:16) [16]

Причем сами строки (т.е. номера строк для копирования я могу определить. но КАК СКОПИРОВАТЬ в другой DBGrid)


 
isasa ©   (2006-04-28 11:17) [17]

Если с Access работаем через ADO, очень удобно

TCustomADODataSet.Clone(Source: TCustomADODataSet; LockType: TLockType = ltUnspecified);


 
balepa ©   (2006-04-28 11:19) [18]


> alkin   (28.04.06 11:13) [14]

Че то непойму строки в DBGrid или записи в таблице (БД) ?


 
Плохиш ©   (2006-04-28 11:23) [19]


> alkin   (28.04.06 11:16) [16]
> Причем сами строки (т.е. номера строк для копирования я
> могу определить. но КАК СКОПИРОВАТЬ в другой DBGrid)

Нельзя скопировать то чего нет туда где ничего не нужно.
А на вопрос, после обработки телепатором, ответ уже был дан в ЮЮ ©   (28.04.06 10:14) [3].


 
ЮЮ ©   (2006-04-28 11:31) [20]

Фильтр уже организован и работает.
Если фильт работает, то и первый грид показывает только отобранные строки. Или это не фильтр (в терминах DataSet-а) или он не работает

>Нужен именно отбор строк с копированием их в другой DBGrid.
Когда есть отфильтрованный DataSet, его можно одновременно показывать хоть в трех DBGrid-ах, указав у них один и тот же DataSource


 
alkin   (2006-04-28 11:39) [21]

Используется ADO. DBGrid отображает базу из Access-файла. При поиске любой подстроки в базе, осуществляется поиск, и номера строк, где найдены вхождения определены. Не знаю как правильно сформулировать еще вопрос, в общем мне строки с этими RecNo-мерами как-то нужно скопировать в другой DBGrid.
В том то и дело, что это не фильтр, потому что я нахожу например:
подстрока поиска: пер
находятся строки: Магазин №2 на переулке Большом. или Первый канал и т.д.
И вот имея RecNo всех строк мне нужно (ну может быть сформировать, а не скопировать) из этих записей (со всеми колонками как в DBGrid конечно) новый DBGrid.


 
Плохиш ©   (2006-04-28 11:47) [22]


> alkin   (28.04.06 11:39) [21]


> DBGrid отображает базу из Access-файла.

DBGrid не может отобразить базу, он отображает данные из привязанного к нему с помощью связки TDBGrid.DataSource.DataSet набора данных, полученного из таблицы дазы данных или при выполнения SQL-запроса к базе данных.

> номера строк, где найдены вхождения определены

Забыть про номера строк, ввести в набор данных уникальное поле, запоминать это поле и при копировании использовать это поле.


 
balepa ©   (2006-04-28 11:50) [23]

Ну бери из базы запись RecNo и вставляй в др. Dataset с которым связан DBGrid2

А может тут SQL поможет (запрос с нахождением записей в которых входит  подстрока в строку)  ?


 
alkin   (2006-04-28 11:51) [24]

>Забыть про номера строк, ввести в набор данных уникальное поле, запоминать это поле и при копировании использовать это поле.

А как копировать-то ?


 
Sergey13 ©   (2006-04-28 11:51) [25]

2[21] alkin   (28.04.06 11:39)
>В том то и дело, что это не фильтр,
А что же это?

>потому что я нахожу например:
подстрока поиска: пер
находятся строки: Магазин №2 на переулке Большом. или Первый канал и т.д.

Ну так и сделай свой "пер" фильтром - останутся только те что нужны.


 
alkin   (2006-04-28 11:53) [26]

>А может тут SQL поможет (запрос с нахождением записей в которых входит  подстрока в строку)  ?

Не нужен никакой SQL, поиск уже организован. Просто необходимо скопировать строки.


 
Плохиш ©   (2006-04-28 11:53) [27]


> alkin   (28.04.06 11:51) [24]
> >Забыть про номера строк, ввести в набор данных уникальное
> поле, запоминать это поле и при копировании использовать
> это поле.
>
> А как копировать-то ?

1. Переход с помощью Locate на нужную запись и выполнение [3].
2. Выполнение SQL-запроса.


 
Desdechado ©   (2006-04-28 11:54) [28]

Dataset.AppendRecord


 
alkin   (2006-04-28 12:49) [29]

К сожалению не получается у меня перенести найденные записи. Может кто подскажет, где ошибка, делаю так:

 DataModule2.OtborTable.Active:=True;       //активирую пустую таблицу
 DataModule2.DataSource1.DataSet:=DataModule2.BookTable;
 DataModule2.BookTable.IndexFieldCount;    //здесь найденная запись

 DataModule2.OtborTable.IndexFieldCount;   // не вставляет найденную
 DataModule2.DataSource3.DataSet.Insert;  // запись в таблицу
 DataModule2.OtborTable.Post;                  // OtborTable


 
Sergey13 ©   (2006-04-28 12:55) [30]

2[29] alkin   (28.04.06 12:49)
Нифига не понял. Китайская грамота какая-то. 8-)


 
Плохиш ©   (2006-04-28 12:56) [31]


> alkin   (28.04.06 12:49) [29]
>  DataModule2.OtborTable.Active:=True;       //активирую пустую таблицу
>  DataModule2.DataSource1.DataSet:=DataModule2.BookTable;
>  DataModule2.BookTable.IndexFieldCount;    //здесь найденная запись

>  DataModule2.OtborTable.IndexFieldCount;   // не вставляет найденную
>  DataModule2.DataSource3.DataSet.Insert;  // запись в таблицу  
>  DataModule2.OtborTable.Post;                  // OtborTable

Что это, Беримор? 8-O


 
alkin   (2006-04-28 13:00) [32]

Ну тогда кто-то может просто сможет дать конкретные строчки кода для копирования записи из одной связки DataSet1 - Table1(DBGrid1) в другую связку DataSet2 - Table2(DBGrid2)


 
Sergey13 ©   (2006-04-28 13:07) [33]

2 [32] alkin   (28.04.06 13:00)
Как те код давать, если ты задачу сформулировать не можешь.



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.062 c
2-1146409591
Ezorcist
2006-04-30 19:06
2006.05.21
Скриншот в консольном приложении


6-1138319190
PVVladimir
2006-01-27 02:46
2006.05.21
Indi 9. Назначение прав на файл через FTP


6-1137570162
EarlVadim
2006-01-18 10:42
2006.05.21
Как грамотно организовать копирование файлов по локалке. (+)


15-1145989461
Yeg
2006-04-25 22:24
2006.05.21
Международные конкурсы программных средств


2-1146393493
Antip
2006-04-30 14:38
2006.05.21
Как узнать, что компьютер в залоченном состоянии?