Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите написать конвертер базы из sql в dbf (число прочтений - 14584 )
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Помогите написать конвертер базы из sql в dbf
12. Октября 2007 :: 05:47
Печать  
Нужно написать обработку, которая переводит базу из скл формата в дбф и обратно за максимально короткое время (для перепроведения).
Штатный механизм медленен.
Необходимо "просто" перенести значения в соответсвующие таблицы.
Готовое решение есть у софтпойнта: http://softpoint.ru/article_id110.htm, но оно стоит денег.

Подскажите, пожалуйста, по следующим вопросам:

1) Как самым быстрым способом перезаписать значения в таблицах (например скульных, т.к. только чистка таблиц для последующей записи будет идти лишних полчаса)?
2) Есть пример как в одном запросе получать данные из дбф базы и записывать в скл и наоборот?
3) Может кто-то уже делал подобное? Поиск не помог.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #1 - 12. Октября 2007 :: 06:16
Печать  
-KONST- писал(а) 12. Октября 2007 :: 05:47:
Нужно написать обработку, которая переводит базу из скл формата в дбф и обратно за максимально короткое время (для перепроведения).

В смысле? Нужно перепроводить именно в формате dbf ? Ужас
  
Наверх
ICQ  
IP записан
 
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #2 - 12. Октября 2007 :: 06:28
Печать  
Nick писал(а) 12. Октября 2007 :: 06:16:
В смысле? Нужно перепроводить именно в формате dbf ?


Да, нужно перепроводить в дбф.

Сама база сейчас на скл, для перепроведения она выгружается в дбф, перепроводится и загружается обратно в скл.
Штатная 1совская выгрузка-загрузка занимает много времени, поэтому хочется этот процесс ускорить.

Конфигурация "Комплексная", расчет не используется.
Размер базы около 4 Гб.
Время выгрузки из скл и загрузки в дбф сейчас около 2.5 часа.
Время выгрузки из дбф и загрузки в скл сейчас около 1.5 часа.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #3 - 12. Октября 2007 :: 06:51
Печать  
У вас с идеологией что то не то!
Зачем перепроводить? Какую-нибудь последовательность востанавливать?
Время на загрузить выгрузить + проведение не будет болше чем просто перепровести в SQL?
Как перепроводити?
За какой период?
  
Наверх
ICQ  
IP записан
 
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #4 - 12. Октября 2007 :: 06:59
Печать  
Nick писал(а) 12. Октября 2007 :: 06:51:
У вас с идеологией что то не то!
Зачем перепроводить? Какую-нибудь последовательность востанавливать?
Время на загрузить выгрузить + проведение не будет болше чем просто перепровести в SQL?
Как перепроводити?
За какой период?


>>У вас с идеологией что то не то! Зачем перепроводить?

Много правок задним числом, организация большая, тоже люди работают, ошибаются.
Именно последовательность восстанавливаем.

>>Время на загрузить выгрузить + проведение не будет болше чем просто перепровести в SQL?

в SQL за ночь проводятся документы приблизительно за месяц, в DBF - около трех,  с учетом выгрузок-загрузок

>>За какой период?

За какой главбух решит править задним числом. 9 месяцев тоже бывает
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #5 - 12. Октября 2007 :: 07:06
Печать  
А в SQL в монопольном режиме проводите?
Перепроводить базу за 9 месяцев это бред! У нас размер SQL базы
30 гб как по твоему реально что нибудь перепроводить за 9 месяцев, а тем более выгружать в DBF?

Сделай умную перепроводилку, которая перепроводит только зависищие документы + Фиксируй какие документы были изменены
  
Наверх
ICQ  
IP записан
 
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #6 - 12. Октября 2007 :: 07:13
Печать  
Nick писал(а) 12. Октября 2007 :: 07:06:
А в SQL в монопольном режиме проводите?
Перепроводить базу за 9 месяцев это бред! У нас размер SQL базы
30 гб как по твоему реально что нибудь перепроводить за 9 месяцев, а тем более выгружать в DBF?

Сделай умную перепроводилку, которая перепроводит только зависищие документы + Фиксируй какие документы были изменены


В монопольном со сдвигом ТА, используя транзакции.

>>Перепроводить базу за 9 месяцев это бред!

Согласен полностью! Но решения сколько месяцев перепроводить не от меня зависят.

>>У нас размер SQL базы 30 гб
Это у вас. У нас реально выгружать в дбф и перепроводить.

>>Сделай умную перепроводилку..
Хорошая идея, ей тоже можно воспользоваться.
Не можешь подсказать примеры ее реализации, кроме софтпойнта.
Вы сами как делаете?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #7 - 12. Октября 2007 :: 07:21
Печать  
-KONST- писал(а) 12. Октября 2007 :: 07:13:
>>Сделай умную перепроводилку..
Хорошая идея, ей тоже можно воспользоваться.
Не можешь подсказать примеры ее реализации, кроме софтпойнта.
Вы сами как делаете?


Мы сами решаем организационно Улыбка. Пример не подскажу Печаль
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Помогите написать конвертер базы из sql в dbf
Ответ #8 - 12. Октября 2007 :: 07:26
Печать  
По идеологии - неправильно.

По сабжу - в цикле обходишь все таблицы SQL и через OLEDB создаешь таблицы ДБФ (CREATE TABLE).
Есть небольшие отличия в структуре таблиц - на сайте http://metaprog.co.ua/secrprog/
и в статье Прямые запросы.
Ну добавляешь все необходимые файлы типа md , DD.
Переиндексируешь - все.

Небольшие трудности будут с типизацией колонок в ДБФ.

Вообщем несложно но муторно и неинтересно.
  
Наверх
 
IP записан
 
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #9 - 12. Октября 2007 :: 07:33
Печать  
kiruha писал(а) 12. Октября 2007 :: 07:26:
По сабжу - в цикле обходишь все таблицы SQL и через OLEDB создаешь таблицы ДБФ (CREATE TABLE).


Можно ли одним запросом получить данные таблицы SQL и записать значения в таблицу DBF?
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Помогите написать конвертер базы из sql в dbf
Ответ #10 - 12. Октября 2007 :: 07:38
Печать  
-KONST- писал(а) 12. Октября 2007 :: 07:33:
kiruha писал(а) 12. Октября 2007 :: 07:26:
По сабжу - в цикле обходишь все таблицы SQL и через OLEDB создаешь таблицы ДБФ (CREATE TABLE).


Можно ли одним запросом получить данные таблицы SQL и записать значения в таблицу DBF?

Одним нельзя - разные провайдеры.

Запросом получаешь данные в ТЗ, из ТЗ заливаешь в Таблицу ДБФ - текущие скорости
около 30 000 записей в сек - т.е. скорость заливки сравнима со скоростью выборки.
http://www.1cpp.ru/forum/YaBB.pl?num=1191570663
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #11 - 12. Октября 2007 :: 07:38
Печать  
kiruha писал(а) 12. Октября 2007 :: 07:26:
По идеологии - неправильно.
Небольшие трудности будут с типизацией колонок в ДБФ.

Трудности  будут со строками неогранич длины.
  
Наверх
 
IP записан
 
-KONST-
YaBB Newbies
*
Отсутствует



Сообщений: 11
Зарегистрирован: 12. Октября 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #12 - 12. Октября 2007 :: 07:43
Печать  
kiruha писал(а) 12. Октября 2007 :: 07:38:
Одним нельзя - разные провайдеры.


Мне показалось что можно. Из вышеприведенной статьи софтпойнта:

"Рассмотрим краткое описание концепции реализации этого продукта.

Существуют различные средства доступа к данным в формате DBF и SQL.  Например, для того что бы из MSSQL сервера обращаться к данным в формате DBF достаточно подключить linked server выбрав в нем провайдером доступа Driver={Microsoft Visual FoxPro Driver}.
...
После этого будет возможно обращение к данным DBF с использованием некоторых конструкций SQL.
...
Для того, что бы быстро преобразовать данные из DBF в SQL, необходимо произвести импорт объектов посредством провайдера."
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Помогите написать конвертер базы из sql в dbf
Ответ #13 - 12. Октября 2007 :: 07:46
Печать  
-KONST- писал(а) 12. Октября 2007 :: 07:43:
kiruha писал(а) 12. Октября 2007 :: 07:38:
Одним нельзя - разные провайдеры.


Мне показалось что можно. Из вышеприведенной статьи софтпойнта:

"Рассмотрим краткое описание концепции реализации этого продукта.

Существуют различные средства доступа к данным в формате DBF и SQL.  Например, для того что бы из MSSQL сервера обращаться к данным в формате DBF достаточно подключить linked server выбрав в нем провайдером доступа Driver={Microsoft Visual FoxPro Driver}.
...
После этого будет возможно обращение к данным DBF с использованием некоторых конструкций SQL.
...
Для того, что бы быстро преобразовать данные из DBF в SQL, необходимо произвести импорт объектов посредством провайдера."


Да это возможно, делаешь в SQL  linked server и  вперёд!
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Помогите написать конвертер базы из sql в dbf
Ответ #14 - 12. Октября 2007 :: 07:52
Печать  
-KONST- писал(а) 12. Октября 2007 :: 07:43:
kiruha писал(а) 12. Октября 2007 :: 07:38:
Одним нельзя - разные провайдеры.


Мне показалось что можно. Из вышеприведенной статьи софтпойнта:

"Рассмотрим краткое описание концепции реализации этого продукта.

...


Ну и они выбирают данные через драйвер. Только из под SQL.
Как масло не намазывай Улыбка
Если так больше нравится - можно и так Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать