Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dbexpress & MySQL и временная таблица-файл, помогите разобраться 
V
    Опции темы
wofs
Дата 26.4.2009, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

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



День добрый.
работаю (пытаюсь) в связке dbexpress+MySQL через libmySQL.dll
теперь вопрос.
допустим есть тривиальный запрос типа
Код

select * from table1

теперь вопрос
как мне сохранить результат запроса в файл бд paradox, т.е. сохранить его локально.

PM MAIL   Вверх
Kbl4AH
Дата 28.4.2009, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 15



тривиальным запросом:
Код

insert into table2_paradox select * from table1_mysql; commit;

PM MAIL ICQ   Вверх
insoft
Дата 28.4.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

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



Kbl4AH, запрос правильный, но лучше всё таки поля перечислять.. иначе может быть запарка smile
PM MAIL WWW   Вверх
Kbl4AH
Дата 28.4.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 15



Цитата(insoft @  28.4.2009,  08:55 Найти цитируемый пост)
Kbl4AH, запрос правильный, но лучше всё таки поля перечислять.. иначе может быть запарка

абсолютно согласен, поэтому я, с определенного времени, никогда не пишу select * from ..., а перечисляю нужные поля, пусть даже нужны все поля таблицы и их много... но в данном случае я подстроился под топиккастера, т.к. он выбирает все поля, а значит и вставлять собирается все... ну, а соответствие полей таблицы-источника и таблицы-назначения на совести вопрошающего smile 
PM MAIL ICQ   Вверх
wofs
Дата 29.4.2009, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

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



делаю 
Код

dm1.Q1.Close;
dm1.Q1.SQL.Clear;
dm1.Q1.SQL.Add('insert into test.db select * from tovar');
dm1.Q1.Open;

получаю
user posted image
притом файл test.db существует в каталоге с программой.

Это сообщение отредактировал(а) wofs - 29.4.2009, 09:48
PM MAIL   Вверх
insoft
Дата 29.4.2009, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

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



Цитата(wofs @  29.4.2009,  09:47 Найти цитируемый пост)
dm1.Q1.SQL.Add('insert into test.db select * from tovar');

мдя, без ужаса на это смотреть нельзя :(
ты указываешь в запросе имя таблицы а не самой БД!!!!
PM MAIL WWW   Вверх
wofs
Дата 30.4.2009, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

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



Цитата(insoft @ 29.4.2009,  09:53)
Цитата(wofs @  29.4.2009,  09:47 Найти цитируемый пост)
dm1.Q1.SQL.Add('insert into test.db select * from tovar');

мдя, без ужаса на это смотреть нельзя :(
ты указываешь в запросе имя таблицы а не самой БД!!!!

согласен, я собвственно и просил помощи..
а запрос составлен на основе предложенного
Код


        insert into table2_paradox select * from table1_mysql; commit;

как указать из какой бд идет таблица? через _ после имени таблицы?

Это сообщение отредактировал(а) wofs - 30.4.2009, 11:51
PM MAIL   Вверх
Kbl4AH
Дата 30.4.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 15



Цитата(wofs @  29.4.2009,  10:47 Найти цитируемый пост)
получаю

1) так ведь базы разные... соединения/запросы к ним тоже разные должны быть...
логично, что в MySQL базе нет test.db, т.к. она в другой БД...
2) точно не уверен, но вроде так (test.db) имя таблицы в запросе не указывают, но это надо у знатоков парадокса уточнять...

делай тогда так (в общем):
Код

QueryMySQl.SQL.Text := 'select * from tovar';
QueryMySQl.ExecSQL;
QueryParadox.SQL.Text := 'insert into test values (:значение1, :значение2, ..., :значениеN)';
while not QueryMySQl.Eof do
begin
  QueryParadox.ParamByName('значение1').Value := Query1.FieldByName('поле1').Value;
  QueryParadox.ParamByName('значение2').Value := Query1.FieldByName('поле2').Value;
  ...
  QueryParadox.ParamByName('значениеN').Value := Query1.FieldByName('полеN').Value;
  QueryParadox.ExecSQL;
  QueryMySQl.Next;
end;
QueryParadox.SQL.Text := 'commit'; 
QueryParadox.ExecSQL; 

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


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

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



я тоже хотел сделать циклом добавление... но есть неск-ко но...
1. импорт происходит ужасно медленно
2. перебор квери, связанного с мускулом провоцирует большой сетевой траффик, хотя не ясно почему :(
PM MAIL   Вверх
Kbl4AH
Дата 1.5.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 15



Цитата(wofs @  30.4.2009,  15:13 Найти цитируемый пост)
1. импорт происходит ужасно медленно

что за импорт?
Цитата(wofs @  30.4.2009,  15:13 Найти цитируемый пост)
2. перебор квери, связанного с мускулом провоцирует большой сетевой траффик, хотя не ясно почему :(

что значит перебор? сеть должна быть загружена только при передаче полного результата квери... перебор не должен вообще ни какой нагрузки на сеть делать, т.к. он происходит уже с полученным набором в самом приложении...
PM MAIL ICQ   Вверх
wofs
Дата 2.5.2009, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

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



Все разобрался, спасибо - делал лишнее телодвижение, отсюда и тормоза были smile
Тема закрыта. Спасибо за помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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