Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Мне нужно добавлять в SQL базу таблицы DBF. Хотел бы узнать как это сделать, нужен запрос типа этого "SELECT * INTO [Paradox 7.x;DATABASE=D:].[TestTable#DB] FROM SourceTable" (при использовании в Microsoft.Jet.OLEDB.4.0; он перекидывает таблицы из dbf в db с сохранением структуры таблицы, можно и наоборот). А как можно это сделать в Microsoft SQL? Спасибо заранее. Не думаю что это сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2002, 20:21 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Здесь можно использовать DTS. Выбрав Data transformation service, правой кнопкой мыши выбрать new package, Откроется дизайнер DTS, нужно создать одно соединение для sql сервера и выбрав другое соединение уточнить источник даты и т.д. Далее выбрать из тасков transform data task и довершить необходимые действия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2002, 22:40 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
не подойдет, ты предлагаеш использовать сервис SQL а мне нужно реализовать это програмно. Другое дело если бы я мог вызвать DTS из своей программы. Кстати с помощью DTS можно записать скрипт переноса на бейсике и там он реализует это не одной SQL командой. ? Может этого и нельзя вовсе. ? Спасибо за совет. Но может кто еще выскажет свое мнение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 06:13 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Может не совсем, то что Вам надо, но... Может просто пересмотреть решение поставленой задачи? У меня похожая проблемма была, когда я собиралься програмно обрабатывать DBFники с эл.платежами от банков. А потом подумал, что данные все равно должны быть в БД и тогда создал таблицу для хранения всех пришедших эл.платежей, добавил на форму еще один QUERY(работаю на DELPHI), который обращается к нужному DBFнику(св-во имени файла можно динамически формировать) и просто стал сливать от туда в SQL Serverную таблицу данные, а потом уже эти данные разношу куда надо. За 3-а месяца работы изменение в скорости я пока не заметил (там уже 500тыс. записей). И многие проблеммы, о которых я и не подозревал на стадии разработки, решились сами собой. Извините, если зря отвлек Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 06:41 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Vladimir дело говорит. Лучше всего сначала подумать, а надо ли так усложнять себе жизнь. Если же дело таки дойдет до DTS, то имейте в виду, что DTS package можно создать один раз (хоть программно, хоть тыкаясь мышкой), а потом выполнять его сколько влезет, делая вызов из программы. В BOL про DTS написано много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 06:49 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Я тоже согласен с Vladimir, но можно еще попробовать linked server. С его помощью можно делать прямые запросы. Правда есть нюансы. Например, а какого собственно формата DBF вы используете - Fox, dBase, ... поскольку SQL провайдер не работает с memo-полями таблиц Fox-а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 09:15 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. В общем то что предлагает Vladimir это то что надо. Но опять как из DBF-а ложить в SQL попозиционно? Или можно связать QUERY работающий с DBF и второй QUERY или Table подключенный к SQL. Вопрос к Vladimirу как у тебя это реализовано? Сначала сам так хотел но SQL команда сработала бы на порядок быстрее (надеюсь с этим никто не спорит) чем построчный перебор записей. И размер очень важен потому как SQL таблица резатся не будет и 500 тыс. скорей всего не предел а только начало. И еше если можно Glory обьясните подробнее как "попробовать linked server", таблицы у меня от разных программ могут быть и в Fox-е и dBase до IV, постоянные только названия полей местоположение (если не успеть забрать данные они просто перетираются) и типы полей только три "строка, дата и знаковое число дробь до трех цифр" никаких мемо полей не может быть. Еще раз спасибо откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 17:15 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. В общем то что предлагает Vladimir это то что надо. Но опять как из DBF-а ложить в SQL попозиционно? Или можно связать QUERY работающий с DBF и второй QUERY или Table подключенный к SQL. Вопрос к Vladimirу как у тебя это реализовано? Сначала сам так хотел но SQL команда сработала бы на порядок быстрее (надеюсь с этим никто не спорит) чем построчный перебор записей. И размер очень важен потому как SQL таблица резатся не будет и 500 тыс. скорей всего не предел а только начало. И еше если можно Glory обьясните подробнее как "попробовать linked server", таблицы у меня от разных программ могут быть и в Fox-е и dBase до IV, постоянные только названия полей местоположение (если не успеть забрать данные они просто перетираются) и типы полей только три "строка, дата и знаковое число дробь до трех цифр" никаких мемо полей не может быть. Еще раз спасибо откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2002, 17:18 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
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 вызывать хранимую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2002, 14:28 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо Glory. Счас буду пробовать. Я проверил перенос по записям не радует он меня, 65 тысяч крутит гдето 3 мин. А учесть что таблиц несколько... И вспомнить о том что тот же DTS все (6-7 разной длинны 65 т. макс.) мои таблици переносит в < чем 30 сек! В общем твой метод должен быстрей сработать. И не обижайтесь если я попозже задам еще пару глупых вопросов по SQL ладно? А пока Пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2002, 16:00 |
|
||
|
Помогите дилетанту составить запрос
|
|||
|---|---|---|---|
|
#18+
Ура работает!!!!! Glory еще раз спасибо, все получилось (по первому пункту. со вторым сложней я не вижу некоторых очевидных вещей но это скорей всего изза того, что я пробую дома без сети и поэтому вместо сопостовляемой таблицы у меня пустое место. ничего в понедельник на работе попробую еще раз) но это неважно первый пункт работает мне больше ничего не надо. Т.е. связку я еще не сделал но уже из SQL вызываю любую свою таблицу а остальное дело техники (надеюсь). Ну ладно засяду опять писать. До свидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2002, 19:04 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1824352]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 340ms |

| 0 / 0 |
