Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2009, 07:53   #1
Nidom
 
Регистрация: 11.02.2009
Сообщений: 7
По умолчанию Работа с базами разных типов (Paradox & dBase)

Задача у меня следующая: есть база данных (Paradox), нужно получать из всех (или почти всех) таблиц этой базы определенные данные (т.е. в каждой таблице присутствует, скажем, поле ID - по этому-то полю и должны отбираться данные в каждой таблице). Полученные данные необходимо записать в таблицы базы данных формата dBase с той же структурой (или как запасной вариант - вообще использовать текстовый файл). Грубо говоря - сконвертировать определенный набор данных Paradox в dBase.
Кто-нибудь подскажет, можно ли это реализовать с помощью запросов SQL?
Nidom вне форума Ответить с цитированием
Старый 16.02.2009, 08:48   #2
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

подключаетесь к Paradox, потом - dBase. для выборки в Paradox делаете соответствующий запрос, а потом циклом перегоняете в dBase. собственно и все. этот вариант предложен программным способом. как перегонять циклом из одной бд в др. уже много раз обсуждалось в этом разделе. А вот может если и есть какие-либо специальные возможности я не знаю. Может кто-то еще чего посоветует...
фЁдОр вне форума Ответить с цитированием
Старый 16.02.2009, 08:56   #3
Nidom
 
Регистрация: 11.02.2009
Сообщений: 7
По умолчанию

Спасибо! Видимо придется так и делать... Просто я как то раз где-то на одном из форумов вычитал, что вроде можно обойтись в данной ситуации вообще одним запросом (ну, или по-крайней мере, одним запросом для каждой из таблиц).
Nidom вне форума Ответить с цитированием
Старый 16.02.2009, 09:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если это чисто техническая проблема то перегони с помошью утилиты datapump, из стандартного пакета делфы.
Или можно попробовать вложенными запросами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.02.2009, 11:11   #5
Nidom
 
Регистрация: 11.02.2009
Сообщений: 7
По умолчанию

Нет это не техническая проблема - это нужно для реализация обмена данными между разными программами. Обмен должен будет производиться один раз в день. Для этого и пишется данная программулина...
Nidom вне форума Ответить с цитированием
Старый 16.02.2009, 11:22   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Нет ничего проще.
Нужны 2 компонента TTable и один BatchMove.
Ну, кнопка еще, по которой будет
Код:
BatchMove1.Execute;
И все... Это если копировать все чохом.

З.Ы. Либо в качестве источника - TQuery, который и будет реализовывать запрос на отбор нужных записей.

Последний раз редактировалось mihali4; 16.02.2009 в 11:24.
mihali4 вне форума Ответить с цитированием
Старый 17.02.2009, 05:23   #7
Nidom
 
Регистрация: 11.02.2009
Сообщений: 7
По умолчанию

Mihali
Попробовал - вроде получается нормально, НО...
все русские слова "забились" знаками #, в чем ошибка, если ошибок во время выполнения нет?
Nidom вне форума Ответить с цитированием
Старый 17.02.2009, 08:44   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наверное разная кодировка.
выставь в принимающей таблице кодировку аналогичную с передающей и тогда уж передавай данные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.02.2009, 09:42   #9
Nidom
 
Регистрация: 11.02.2009
Сообщений: 7
По умолчанию

Stilet
Каким образом кодировку поставить? Нигде не нашел ни метода ни свойства для установления кодировки. К тому же передающая таблица это вовсе не таблица, а результат запроса к таблице (TQuery). Ну а принимающая - это TTable. Хотя мне все же кажется, что дело тут вовсе не в кодировке, иначе в принимающей таблице были бы просто кракозябры вместо понятных слов, а там именно #, т.е. "Значение" --> "########"
Nidom вне форума Ответить с цитированием
Старый 18.02.2009, 09:57   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я уж давно не работаю в БДЕ, посему ниче посоветовать не смогу, кроме как покапаться в BDE Admin.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как связать поля разных типов doncova1 Microsoft Office Access 5 11.03.2008 00:15
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15