Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2014, 21:06   #1
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию Создать файл XML

Подскажите пожалуйста, как мне сохранить простой текст xml в файл, через MS SQL 2008. Заранее спасибо.
mavlon_m вне форума Ответить с цитированием
Старый 18.08.2014, 21:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то такое?: http://www.sql.ru/faq/faq_topic.aspx?fid=131
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2014, 22:03   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Там наломали дров с примером с помощью дополнительной таблицы. Завтра выложу работающие процедуры если надо, ток для 2000-го. Думаю для 2008-го тоже так
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.08.2014, 22:41   #4
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Там наломали дров с примером с помощью дополнительной таблицы. Завтра выложу работающие процедуры если надо, ток для 2000-го. Думаю для 2008-го тоже так
Спасибо буду ждать.
mavlon_m вне форума Ответить с цитированием
Старый 18.08.2014, 22:44   #5
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
спасибо за ссылка, но sql в ответ меня ругает. Не знаю что делать, говорит:
"SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online."
mavlon_m вне форума Ответить с цитированием
Старый 18.08.2014, 22:51   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Есть админ сервера? Пусть настроит полномочия. Если нет, то самому поковыряться придется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.08.2014, 08:39   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
CREATE PROCEDURE up_SchetTo1XmlAuto @Pachka int AS
BEGIN
  DECLARE @t table(rootid varchar(10))
  SELECT root.rootid,
      T.Pachka,
      CONVERT(varchar,T.DateOut,102) AS DateOut,
      CONVERT(varchar,T.DateOut,108) AS TimeOut,
      T.Oper,
      T.SchetId,
      COALESCE(T.OsnId,0) AS OsnId,
      T.Vid,
      CONVERT(varchar,T.DatOtg,102) AS DatOtg,
      T.KlientId1C,
      T.DogovorId1C,
      T.DogDopsId1C,
      T.KliBankId1C,
      T.Rassch,
      T.Mfo,
      T.Valuta,
      T.GKlientId1C,
      T.StrId1C,
      T.OblId1C,
      T.GorId1C,
      T.PIndex,
      T.Ceh,
      T.Summ AS SummWithoutNds,
      T.Nds,
      T.DovNom,
      CONVERT(varchar,T.DovDate,102) AS DovDate,
      S.NomTtn,
      S.Nomer,
      S.Number,
      S.NomTr,
      S.NomStr,
      S.KodItem1,
      S.KodItem2,
      S.OldKod,
      S.KodEdizm,
      S.Koli,
      S.Cena,
      S.Summ
    FROM @t root
      FULL OUTER JOIN To1CSchet T ON 1=1
      LEFT JOIN To1CSpecif S ON S.To1CSchet_Id=T.To1CSchet_Id
    WHERE T.Pachka=@Pachka
    FOR XML AUTO
END


CREATE PROCEDURE up_SchetTo1C @Pachka int, @ResultKod int OUTPUT AS
BEGIN
  DECLARE @OutputFileName varchar(255),
          @Cmd varchar(255)
  IF NOT EXISTS(SELECT 1 FROM To1CSchet WHERE Pachka=@Pachka) BEGIN
    SET @ResultKod=-1
    RETURN
  END
  SELECT @OutputFileName=ValueParm FROM SysConfig WHERE NaimParm='PATHTO1C'
  IF ISNULL(@OutputFileName,'')='' SET @OutputFileName='c:\'
  IF RIGHT(@OutputFileName,1)<>'\' SET @OutputFileName=@OutputFileName+'\'
  SET @OutputFileName=@OutputFileName+'Schet'+CAST(@Pachka as varchar(9))+'.xml'
  SET @Cmd='BCP "EXEC '+DB_NAME()+'..up_SchetTo1XmlAuto '+CAST(@Pachka as varchar(9))+'" queryout "'+@OutputFileName+'" -C ACP -c -r -T'
  EXEC @ResultKod=master..xp_cmdshell @Cmd
END
Обращение к up_SchetTo1C. В результате файл в таком духе
Код:
<root>
  <T Pachka="11" DateOut="2014.08.14" TimeOut="10:10:52" Oper="2" SchetId="31570" OsnId="0" Vid="1"
     DatOtg="2014.01.01" DogovorId1C="2229" Rassch="11111111111111" Mfo="111111" Valuta="980"
     StrId1C="804" OblId1C="24" GorId1C="2131" PIndex="19200" Ceh="221" SummWithoutNds="284790.00"
     Nds="56958.00">
    <S NomTtn="11111111" Nomer="11111111" NomStr="10" KodItem1="1" KodItem2="1" OldKod="451045"
       KodEdizm="43" Koli="66.000" Cena="2157.50" Summ="142395.00" />
    <S NomTtn="11111111" Nomer="11111111" NomStr="10" KodItem1="1" KodItem2="1" OldKod="451045"
       KodEdizm="43" Koli="66.000" Cena="2157.50" Summ="142395.00" />
  </T>
  <T Pachka="11" DateOut="2014.08.14" TimeOut="10:10:52" Oper="2" SchetId="31572" OsnId="0" Vid="1"
     DatOtg="2014.01.01" DogovorId1C="18903" Rassch="11111111111111" Mfo="111111" Valuta="980"
     StrId1C="804" OblId1C="21" GorId1C="11443" PIndex="62740" Ceh="221" SummWithoutNds="142395.00"
     Nds="28479.00">
    <S NomTtn="11111111" Nomer="11111111" NomStr="10" KodItem1="1" KodItem2="1" OldKod="451045"
       KodEdizm="43" Koli="66.000" Cena="2157.50" Summ="142395.00" />
  </T>
</root>
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.08.2014, 09:13   #8
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию


спасибо за код, но когда я обращаюсь к up_SchetTo1C мне скажет:
Invalid object name 'To1CSchet'.
что за объект?
mavlon_m вне форума Ответить с цитированием
Старый 19.08.2014, 09:27   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
что за объект?
Изучайте SQL. Это имя моей процедуры, вам свои по образу и подобию нужно создать.

ADD Извиняюсь, To1CSchet - имя моей таблицы, аналогично берете информацию из своих таблиц
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.08.2014 в 09:31.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать xml с хэшем santaXZ C# (си шарп) 6 12.09.2013 17:22
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
создать документ xml Алёна БД в Delphi 1 23.06.2010 19:41
Как создать xml документ? Longedok Помощь студентам 0 04.08.2008 16:48