|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Нужно cбрасывать данные из Sql Server 7.0 в текстовый файл при чем имя файла должно каждый раз изменяться ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 12:13 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
А ты попробуй Data Transformation Services. Создай сценарий експорта в EM (All tasks >>> Export Data >>> Source (SQL Server)>>> Destination (Text file), задай периодичность (Schedule DTS package) и все вроде. Только незабудь что и откуда експортировать (можешь таблицу, а можешь по запросу). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 12:28 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Да но в этом случае как будет меняться имя файла ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 13:54 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Перепиши DTS процедуру с условием изменения имени файла, ну например дата + что-то. Для этого сохрани DTS package в Local repository, потом его оредактируй. Почитай books online, там довольно подробно все описанно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 14:05 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Слушай там слишком много в каком направлении хоть идти подскажи (заранее благодарен) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 15:51 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Хранимая процедура, написанная на Transact-SQL, не умеет писать в текстовый файл. Но зато можно написать внешнюю хранимую процедуру (extended stored procedure) на Си, которая будет это делать. И эту внешнюю процедуру можно запускать по расписанию (с помощью SQL Agent). А в Visual C++ 6.0 есть визард, который создаёт заготовку для внешней хранимой процедуры SQL Server-а. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 15:55 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
А вот ещё более простая идея. Есть такая утилита командной строки bcp, позволяющая как импортировать так и экспортировать данные в текстовый формат. А SQL Agent позволяет создавать задания, запускающиеся по расписанию, причём не только SQL-команды, но он ещё позволяет запускать команды операционной системы! Поэтому можно попробовать запускать по расписанию bcp, подсовывая ему все необходимые параметры (имя и пароль пользователя, название таблицы которую нужно выгружать, определение формата выгрузки). Утилите bcp можно подсунуть также и файл, который содержит всю эту управляющую информацию. Т.к. тебе нужно, чтобы эта информация менялась (в данном случае чтобы менялось имя текстового файла), то можно с помощью того же планировщика заданий запускать программку, которая будет этот управляющий файл изменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 16:02 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Вопрос 1: А как вообще может выглядеть код с использованием BCP (В хелпе неясно) Вопрос 2: И вообще, как запускать BCP ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 17:49 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
iodv_nak - база данных pzo - таблица внем dbsql - сервер pp - юзер ddd - пароль а вот и код: "bcp iodv_nak.pzo out d:\authors.txt /c -Sdbsql -Upp -Pddd" если есть ошибки поомоогиитеее ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 18:03 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Зачем help? Microsoft про него целый роман написала, всё очень подробно. Смотри on-line books, а точнее книгу Administering SQL Server, главу Importing and Exporting Data (а в ней Copying Data Using bcp). Ну а наизусть этих параметров я думаю никто не помнит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 18:21 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
1.BCP есть утилита командной строки, соотв-но, пускать ее из-под сервера нужно через xp_cmdshell. Пример: master..xp_cmdshell "bcp.exe Northwind..customers out d:\temp©ust.txt -c -q -T -SMachineName\InstanceName -C1251". Краткое описание ключей - bcp /?. Понятно, что здесь можно скомбинировать и подставить любое имя файла. 2.Для справки. Аналогичный оператор T-SQL называется BULK INSERT. Однако, как следует из названия, он работает только в одном направлении (файл данных -> SQL Server) в отличие от bcp. 3.Сделать DTS-преобразование из SQLной таблицы в текстовый файл, сохранить его как .bas и перед каждым выполнением вручную или автоматически подправлять строку oConnection.DataSource = "D:\Temp©ust.txt". Подробности и сравнение с 1, 2 см. SQL Server Professional 4.Способ 3 удобен, когда перенос выполняется из приложения. Если же такая задача не стоит и достаточно обойтись интерактивным кнопконажимательством в ЕМ, предлагается использовать DTS templates - болванки пакетов, в которых большинство св-в постоянны, но некоторые могут меняться от вызова к вызову (в Вашем случае - название назначения на текстовом соединении). Как это сделать описано в MSDN . ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 19:11 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Хочу уточнить свой вопрос. Моя задача стоит в том, чтобы процедура экспорта в текстовый файл делалась именно на SQL сервере в "Storage Procedures", и вызывалась программой именно оттуда (программирую я в Visual FoxPro 6.0, програмный код в Дельфи и на ФоксПро меня не устраивает). Что касается Help-ов, лучше русские источники (англиский я знаю не важно) Заранее Благодарю ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2001, 11:19 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Ну тогда самый простой и дубовый вариант решения задачи (раз уж не хочется разбираться с bcp или DTS). Пишешь свою утилиту командной строки типа bcp на своём FoxPro. Кладёшь exe-шник на сервер и запускаешь его по расписанию с помощью планировщика заданий Windows NT или SQL Server-а. А уж в своей программе чего угодно напишешь, и какую таблицу выгружать, и в какой файл. Раз уж тебе свою программу проще написать, чем уже с готовой bcp разобраться, то пиши свою. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2001, 13:52 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Да, кстати, тут коллега уже объяснил, я его процитирую: "...утилита командной строки, соотв-но, пускать ее из-под сервера нужно через xp_cmdshell..." Иными словами, любой exe-шник, который лежит на сервере, можно запустить из SQL Server-а (в т.ч. из хранимой процедуры). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2001, 13:58 |
|
Sql Server 7.0 в текстовый файл
|
|||
---|---|---|---|
#18+
Вот, кстати, какая мысль меня еще посетила. Делаем обычный пакет DTS по трансформации таблички с SQLного соединения в какой-нибудь текстовый файл. Обзываем этот файл, как Бог на душу положит. Перед преобразованием ставим еще одну task типа ActiveX Script в виде: Function Main() dim dtsPack set dtsPack = DTSGlobalVariables.Parent dim dtsTextCnn set dtsTextCnn = dtsPack.Connections("Text File (Destination)") dtsTextCnn.DataSource = "D:\Temp\Test©cc.txt" Main = DTSTaskExecResult_Success End Function Где D:\Temp\Test©cc.txt - конкретный нужный нам файл. В принципе можно держать его в глобальной переменной пакета, и читать оттуда в dtsTextCnn.DataSource. А глобальную переменную подправлять в нужное имя файла перед каждым выполнением пакета. От этого stepa к преобразованию протягиваем стрелочку "On success". Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2001, 20:30 |
|
|
start [/forum/topic.php?fid=46&tid=1827407]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 139ms |
0 / 0 |