Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как из AdoQuery вставить в таблицу? 
:(
    Опции темы
Данкинг
Дата 21.12.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Я выбрал данные из таблицы:

Код

AdoQuery1.SQL.Text:='select * from main';


Теперь я хочу вставить данные, находящиеся в запросе, в таблицу Access, к которой подключён через ADO. Структура таблицы такая же, как и той, из которой сделана выборка (main). Надо написать нечто вроде:

Код

AdoQuery2.SQL.Text:='insert into main_new select * from AdoQuery1';


Но какое именно имя указывать для первого запроса, т.е., откуда брать данные?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Anark1
Дата 21.12.2007, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Если мне не изменяет, то оператор SELECT имеет необязательный параметр - БД. 
А так оператор :
Код

INSERT INTO table1 SELECT * FROM table2

Структуры table1 и table2 должны быть одинаковы.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Данкинг
Дата 21.12.2007, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Вот вместо table2 у меня данные, выбранные в предыдущем запросе, т.е., adoquery. В чём и вся загвоздка.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Anark1
Дата 21.12.2007, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Данкинг, не понимаю в чем загвоздка.
Твой запрос будет выглядеть так :
Код

INSERT INTO main_new SELECT * FROM main



--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Данкинг
Дата 21.12.2007, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Придётся подробней объяснить. smile Вообще-то мне требуется в MDB-таблице отсортировать данные по трём столбцам.
Соответственно, эта таблица у меня одна - main. Единственное, что я придумал - я из неё выбираю данные в запрос, сортируя их при помощи order by... Затем таблицу очищаю, и вот тут-то мне и надо вставить в неё прежние бывшие в ней данные, но в отсортированном виде.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
ТоляМБА
Дата 21.12.2007, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Данкинг, а потом добавятся новые записи и ты опять будешь этот ход конём делать? Не проще (и правильнее) при выводе данных для юзера на запросе всегда делать сортировку?
Ну если нет, може использовать временную таблицу:

Код
SELECT * 
INTO mainTemp
FROM main

delete from main

Insert into main
select *
from mainTemp
ORDER BY 1,2,3

Drop table mainTemp


PM   Вверх
Vas
Дата 21.12.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(Данкинг @  21.12.2007,  02:13 Найти цитируемый пост)
Придётся подробней объяснить. smile Вообще-то мне требуется в MDB-таблице отсортировать данные по трём столбцам.
Соответственно, эта таблица у меня одна - main. Единственное, что я придумал - я из неё выбираю данные в запрос, сортируя их при помощи order by... Затем таблицу очищаю, и вот тут-то мне и надо вставить в неё прежние бывшие в ней данные, но в отсортированном виде.

У тебя же есть уже выбранные данные в нужной сортировке, зачем куда то их вставлять, просто покажи их пользователю. 
А вообще сто раз повторялось, что в реляционных БД нет понятия порядка хранения записей в таблице, порядок формируется при выборе (order by) и показывается пользователю в нужном (отсортированном) виде.

Я бы на вашем месте покурил бы мануал по реляционным БД. 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Данкинг
Дата 21.12.2007, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(ТоляМБА @ 21.12.2007,  06:47)
Данкинг, а потом добавятся новые записи и ты опять будешь этот ход конём делать? 

Нет, не добавятся, потом mdb я отсылаю менеджеру. smile Кроме как с временной таблицей, значит, никак, жалко...

Добавлено через 3 минуты и 45 секунд
Цитата(Vas @ 21.12.2007,  10:14)
У тебя же есть уже выбранные данные в нужной сортировке, зачем куда то их вставлять, просто покажи их пользователю. 
<...>
Я бы на вашем месте покурил бы мануал по реляционным БД.

Вот зачем - я ответил, на выходе нужна именно готовая база. А мануал - да ну его, я больше за практику, чем за теорию. smile 




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Anark1
Дата 21.12.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Данкинг, как я понял, эта операция будет выполняться довольно редко. А значит в использовании временной таблицы нет ничего страшного.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.