| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Перекинуть из одной таблицы в другую |
| Автор: mspuz 21.12.2005, 14:05 |
| Всем привет. Проблема в следующем. Кто-то удалил часть данных из жизненно важной таблицы, но имеется резервная копия - достаем её, select'ом выбираем нужную часть данных и.....А дальше то что делать??? Таблицы находятся в разных БД, структура таблиц совершенно одинаковая и самое главное в таблице 100!!!!! полей. Как мне, не перечисляя названия всех полей перекинуть все это из одной таблицы в другую. Я уже сделал, тупейшим способом (т.к. надо было это сделать быстро, а других методов я не знал), но мучиться когда-нить еще раз так же не охота. Добавлено @ 14:09 Копался в литературе и наткнулся на такую штуку - компонент IBSQL и методы BatchOutput и BatchInput. Но как я понял из хелпа мне все равно нужно указывать весь список полей и передавать значение всех полей в параметры. Может я не так понял??? Может это как раз то, что нужно ???? |
| Автор: offline 21.12.2005, 14:17 | ||
|
| Автор: Susel 21.12.2005, 14:25 |
| INSERT INTO Table1 SELECT * FROM Table2 |
| Автор: mspuz 21.12.2005, 15:16 |
| Susel А если они в разных БД, то как строка запроса будет выглядить??? |
| Автор: offline 21.12.2005, 15:20 |
| какая разница где они подключаешь к ADOTable1 (Table1) первую таблицу - куда, к ADOTable2 (Table12) вторую таблицу - откуда и вперед |
| Автор: mspuz 21.12.2005, 15:40 |
| kirilllius Я извиняюсь за свои неисправные тормоза, но...разве Table поддерживает SQL-запросы??? Или подключить таблицы к Table, а запросы творить через Query, указывая вместо названия таблиц названия компонентов??? |
| Автор: offline 21.12.2005, 15:59 | ||
нет, это у меня сегодня тяжелый день
где Таблица1 - это таблица из текущей базы, а Таблица2 - это таблтца из другой базы D:\Projeck\1.mdb |
| Автор: Susel 21.12.2005, 17:50 |
| Хм....я и не думал даже что в IB так сложно составить запрос к таблицам из 2-х БД....... В других СУБД это совсем не проблема....... Ну как ещё один из вариантов - воспользоваться утилиткой Copy в Database Desktop..... Хотя если вариант предложенный kirilllius работает - то он будет получше...... |
| Автор: offline 21.12.2005, 17:55 |
| в Access по крайней мере работает, а в IB не знаю |
| Автор: Susel 21.12.2005, 20:48 |
| Хех...:-) В Информиксе работает: INSERT INTO Table1 SELECT * FROM Database@Table2, но это же не факт, что для IB работает.... |
| Автор: YurikGL 21.12.2005, 21:49 | ||
| А не судьба в той базе, которая станет итоговой, создать временную таблицу, перекинуть туда все из копии и после этого выполнить запрос? Или вообще по одной записи в цикле перебрать и перекинуть?
что-то типа for i:=0 to table1.fields.count-1 do table1.fields[i].value:=table2.fields[i].value |