Конференция "Базы" » Копирование таблицы с SQL-сервера в .dbf [D4, D5, D6, D7, MSSQL, dBase, FoxPro]
 
  • Morpheus (25.11.08 21:26) [0]
    Находил похожие темы, но желательно услышать более практичный ответ.
    Как перенести данные с таблицы на SQL-сервере в локальную дбф-ку с наибольшей скоростью?
    Пока размер позволял, сначала создавал табличку с такими же полями и перекидывал циклом аппенды. Сейчас база разрослась, в некоторых табличках по полмиллиона записей. Видел в фоксе как-то делали сразу, результат запроса сохраняется как таблица.
    Есть ли такие отимальные решения на делфе или на худой конец, может исходники ADODB кто ковырял?
  • MsGuns © (25.11.08 21:40) [1]
    DataPump
  • Morpheus (25.11.08 21:53) [2]
    Это видимо какой-то инструмент по переносу данных? Тогда мне следует немного уточнить вопрос: "Как переносить данные?", а не "перенести" Это должно делается в определенные моменты работы программы.
  • sniknik © (25.11.08 22:09) [3]
    > может исходники ADODB кто ковырял?
    нафига тебе исходники? тем более если их кто нибудь ковырял...
    все делается простым гетерогеным запросом, MSSQL позволяет, можно прямо из всеми любимого Query Analyzer-а. или другого инструмента выполняющего запросы... например ADOConnrction + ADOCommand положенные на форму, ну и подключенные к MSSQL естественно.
  • sniknik © (25.11.08 22:15) [4]
    а ну да, локально... и с сервера наверняка доступа нет к локальным папкам, тогда с "другой стороны" берем access (jet) из него два ISAM-а (интерфейс для тех же самых гетерогенных запросов) один на MSSQL другой на dbf, и опять один запрос.
  • Morpheus (25.11.08 22:33) [5]

    > все делается простым гетерогеным запросом, MSSQL позволяет,
    >  можно прямо из всеми любимого Query Analyzer-а. или другого
    > инструмента выполняющего запросы... например ADOConnrction
    > + ADOCommand положенные на форму, ну и подключенные к MSSQL
    > естественно.

    Каким же образом сформировать локальную таблицу? 500к записей в оперативной памяти "подтормаживать" начинают.


    > тогда с "другой стороны" берем access (jet) из него два
    > ISAM-а (интерфейс для тех же самых гетерогенных запросов)
    > один на MSSQL другой на dbf, и опять один запрос.

    Покажи запрос-то хоть примерно
  • sniknik © (25.11.08 23:39) [6]
    > примерно
    ???
    как хочеш. из парадокса в дбейс, очень старый запрос, как можно видеть
    INSERT INTO  [dBase IV;DATABASE=D:\].[3#DBF] ([SIZE],ARTIKL) SELECT MESURIMENT, 'RUB'  FROM [Paradox 3.x;DATABASE=D:\].[3#DB]
  • sniknik © (25.11.08 23:42) [7]
    ну и, ладно, примерно как запрос из акцесса к мсскл
    SELECT * FROM [ODBC;DSN=MyODBCLink;UID=DB_USER;PWD=my_password;DATABASE=my_db_name;].DB_USER.T ABLE_NAME

    сложить 2 примерных запроса, может быть и получится один примерно точный.
  • Sergey13 © (26.11.08 09:13) [8]
    > [2] Morpheus   (25.11.08 21:53)

    Может имеет смысл задуматься о переводе "принимающей" программы на работу с сервером напрямую? Сегодня полмиллиона записей, через год несколько миллионов - в конце концов сервер только и будет заниматься передачей данных в гиговые дбф-ки.
  • Плохиш © (26.11.08 10:20) [9]
    С MSSQL поставляется целый DTS для таких целей.
    Импортируешь его библиотеку типов в делфи и переносишь, что-угодно, куда-угодно и как-угодно.
  • Ega23 © (26.11.08 10:23) [10]

    > Импортируешь его библиотеку типов в делфи и переносишь,
    > что-угодно, куда-угодно и как-угодно.


    Зачем? Прямо на стороне сервера пакет формируешь, вешаешь на job и вуаля.
  • sniknik © (26.11.08 12:26) [11]
    все это хорошо, и джоб и дтс (хотя одну табличку я бы предпочёл просто гетерогенным запросом), но тогда не выполняется условие "в локальную дбф-ку", тогда ее придется класть куда нибудь на сервере.
  • Плохиш © (26.11.08 13:53) [12]

    > sniknik ©   (26.11.08 12:26) [11]

    > дтс (хотя одну табличку я бы предпочёл просто гетерогенным
    > запросом), но тогда не выполняется условие "в локальную
    > дбф-ку"

    С чего бы это не выполняется?
  • sniknik © (26.11.08 13:57) [13]
    > С чего бы это не выполняется?
    > Импортируешь его библиотеку типов
    ну либо придется ставить ее везде на клиентах.
  • Плохиш © (26.11.08 14:28) [14]

    > ну либо придется ставить ее везде на клиентах.

    Разве DTS по-умолчанию не ставиться с клиентом? Не помню, просто.
  • sniknik © (26.11.08 14:33) [15]
    с чего бы это? хотя не знаю, както не приходилось пользоваться иначе чем на сервере, вот DMO приходилось, и его точно нужно ставить, т.что другие части вероятнее всего тоже.
 
Конференция "Базы" » Копирование таблицы с SQL-сервера в .dbf [D4, D5, D6, D7, MSSQL, dBase, FoxPro]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]