Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите дилетанту составить запрос / 11 сообщений из 11, страница 1 из 1
10.01.2002, 20:21
    #32020489
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Мне нужно добавлять в SQL базу таблицы DBF. Хотел бы узнать как это сделать, нужен запрос типа этого "SELECT * INTO [Paradox 7.x;DATABASE=D:].[TestTable#DB] FROM SourceTable" (при использовании в Microsoft.Jet.OLEDB.4.0; он перекидывает таблицы из dbf в db с сохранением структуры таблицы, можно и наоборот). А как можно это сделать в Microsoft SQL? Спасибо заранее. Не думаю что это сложно.
...
Рейтинг: 0 / 0
10.01.2002, 22:40
    #32020490
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Здесь можно использовать DTS. Выбрав Data transformation service, правой кнопкой мыши выбрать new package, Откроется дизайнер DTS, нужно создать одно соединение для sql сервера и выбрав другое соединение уточнить источник даты и т.д. Далее выбрать из тасков transform data task и довершить необходимые действия...
...
Рейтинг: 0 / 0
11.01.2002, 06:13
    #32020510
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
не подойдет, ты предлагаеш использовать сервис SQL а мне нужно реализовать это програмно. Другое дело если бы я мог вызвать DTS из своей программы. Кстати с помощью DTS можно записать скрипт переноса на бейсике и там он реализует это не одной SQL командой. ? Может этого и нельзя вовсе. ? Спасибо за совет. Но может кто еще выскажет свое мнение?
...
Рейтинг: 0 / 0
11.01.2002, 06:41
    #32020513
Vladimir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Может не совсем, то что Вам надо, но... Может просто пересмотреть решение поставленой задачи? У меня похожая проблемма была, когда я собиралься програмно обрабатывать DBFники с эл.платежами от банков. А потом подумал, что данные все равно должны быть в БД и тогда создал таблицу для хранения всех пришедших эл.платежей, добавил на форму еще один QUERY(работаю на DELPHI), который обращается к нужному DBFнику(св-во имени файла можно динамически формировать) и просто стал сливать от туда в SQL Serverную таблицу данные, а потом уже эти данные разношу куда надо. За 3-а месяца работы изменение в скорости я пока не заметил (там уже 500тыс. записей). И многие проблеммы, о которых я и не подозревал на стадии разработки, решились сами собой.
Извините, если зря отвлек Вас.
...
Рейтинг: 0 / 0
11.01.2002, 06:49
    #32020515
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Vladimir дело говорит. Лучше всего сначала подумать, а надо ли так усложнять себе жизнь. Если же дело таки дойдет до DTS, то имейте в виду, что DTS package можно создать один раз (хоть программно, хоть тыкаясь мышкой), а потом выполнять его сколько влезет, делая вызов из программы. В BOL про DTS написано много.
...
Рейтинг: 0 / 0
11.01.2002, 09:15
    #32020538
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Я тоже согласен с Vladimir, но можно еще попробовать linked server. С его помощью можно делать прямые запросы. Правда есть нюансы. Например, а какого собственно формата DBF вы используете - Fox, dBase, ... поскольку SQL провайдер не работает с memo-полями таблиц Fox-а
...
Рейтинг: 0 / 0
11.01.2002, 17:15
    #32020584
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Спасибо за советы. В общем то что предлагает Vladimir это то что надо. Но опять как из DBF-а ложить в SQL попозиционно? Или можно связать QUERY работающий с DBF и второй QUERY или Table подключенный к SQL. Вопрос к Vladimirу как у тебя это реализовано? Сначала сам так хотел но SQL команда сработала бы на порядок быстрее (надеюсь с этим никто не спорит) чем построчный перебор записей. И размер очень важен потому как SQL таблица резатся не будет и 500 тыс. скорей всего не предел а только начало.
И еше если можно Glory обьясните подробнее как "попробовать linked server", таблицы у меня от разных программ могут быть и в Fox-е и dBase до IV, постоянные только названия полей местоположение (если не успеть забрать данные они просто перетираются) и типы полей только три "строка, дата и знаковое число дробь до трех цифр" никаких мемо полей не может быть.
Еще раз спасибо откликнувшимся.
...
Рейтинг: 0 / 0
11.01.2002, 17:18
    #32020585
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Спасибо за советы. В общем то что предлагает Vladimir это то что надо. Но опять как из DBF-а ложить в SQL попозиционно? Или можно связать QUERY работающий с DBF и второй QUERY или Table подключенный к SQL. Вопрос к Vladimirу как у тебя это реализовано? Сначала сам так хотел но SQL команда сработала бы на порядок быстрее (надеюсь с этим никто не спорит) чем построчный перебор записей. И размер очень важен потому как SQL таблица резатся не будет и 500 тыс. скорей всего не предел а только начало.
И еше если можно Glory обьясните подробнее как "попробовать linked server", таблицы у меня от разных программ могут быть и в Fox-е и dBase до IV, постоянные только названия полей местоположение (если не успеть забрать данные они просто перетираются) и типы полей только три "строка, дата и знаковое число дробь до трех цифр" никаких мемо полей не может быть.
Еще раз спасибо откликнувшимся.
...
Рейтинг: 0 / 0
12.01.2002, 14:28
    #32020605
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
1. Если выполнить следующий код
EXEC sp_addlinkedserver
@server = 'MYDBFs',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\',
@provstr = 'dBASE IV'

то если в C:\ имеется таблица mydbf.dbf, можно использовать запросы вида

SELECT * FROM mydbfs...mydbf

2.
>Но опять как из DBF-а ложить в SQL попозиционно? Или можно связать QUERY работающий с DBF
>и второй QUERY или Table подключенный к SQL.

Для реализации таких задач в DTS есть DataDrivenQuery Task.
Либо добавлять данные из DBF-а во временную таблицу, а потом с помощью Execute SQL Task вызывать хранимую процедуру.
...
Рейтинг: 0 / 0
12.01.2002, 16:00
    #32020611
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Спасибо Glory. Счас буду пробовать. Я проверил перенос по записям не радует он меня, 65 тысяч крутит гдето 3 мин. А учесть что таблиц несколько... И вспомнить о том что тот же DTS все (6-7 разной длинны 65 т. макс.) мои таблици переносит в < чем 30 сек! В общем твой метод должен быстрей сработать. И не обижайтесь если я попозже задам еще пару глупых вопросов по SQL ладно? А пока Пока.
...
Рейтинг: 0 / 0
12.01.2002, 19:04
    #32020612
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите дилетанту составить запрос
Ура работает!!!!! Glory еще раз спасибо, все получилось (по первому пункту. со вторым сложней я не вижу некоторых очевидных вещей но это скорей всего изза того, что я пробую дома без сети и поэтому вместо сопостовляемой таблицы у меня пустое место. ничего в понедельник на работе попробую еще раз) но это неважно первый пункт работает мне больше ничего не надо. Т.е. связку я еще не сделал но уже из SQL вызываю любую свою таблицу а остальное дело техники (надеюсь). Ну ладно засяду опять писать. До свидания.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите дилетанту составить запрос / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]