Текущий архив: 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