Генерация XML-файла от SQL Server 2008

Если оптимальная скорость не будет соображением, следующий код psuedo генерирует Диаграмму Вороного твердый путь:

for yloop = 0 to height-1
  for xloop = 0 to width-1

    // Generate maximal value
    closest_distance = width * height

    for point = 0 to number_of_points-1
      // calls function to calc distance
      point_distance = distance(point, xloop, yloop)

      if point_distance < closest_distance
        closest_point = point
      end if
    next

  // place result in array of point types
  points[xloop, yloop] = point

  next
next

Принятие у Вас есть класс 'точки' или структура, если Вы присвоите им произвольные цвета, тогда Вы будете видеть знакомый voronoi шаблон при отображении вывода.

7
задан Vladimir Baranov 4 October 2017 в 06:07
поделиться

4 ответа

Вы не можете писать в файловую систему из самого SQL Server. По крайней мере, не так просто. Есть три альтернативы:

  • использовать xp_cmdshell . Я бы настоятельно не советовал этого делать. По умолчанию xp_cmdshell отключен в целях безопасности, и включение его только для этой операции открывает путь к большой дыре в безопасности в вашей системе.

  • используйте FileSystemObject ] и процедуры OLE Automation sp_OACreate / sp_OAMethod . См. Чтение и запись файлов в SQL Server с использованием T-SQL . Это, хотя и немного лучше, чем опция xp_cmdshell, но не дает намного лучшей истории безопасности. Единственная причина, по которой он лучше, чем xp_cmdshell, заключается в том, что он гораздо менее известен хакерам. Но опция процедур OLE Automation в SQL Server также отключена по умолчанию, и включение этой опции выявляет те же проблемы безопасности, что и xp_cmdshell.

  • используйте процедуру CLR. Это была бы моя рекомендация. Создайте сборку с цифровой подписью, используйте подпись сборки, чтобы разрешить посредством подписи кода Transact-SQL ВНЕШНИЙ ДОСТУП, а затем используйте процедуру CLR для записи XML в файловую систему. Хотя это значительно сложнее, чем простые параметры xp_cmdshell или OLE Automation, он является наиболее управляемым и детализированным с точки зрения безопасности, и его легче всего поддерживать и правильно настраивать (это код .Net в отличие от сценариев оболочки). К сожалению, по умолчанию параметр clr также отключен на сервере и должен быть включен.

5
ответ дан 6 December 2019 в 10:51
поделиться

If you press

ctrl + shift + f

you will have selected "Results To File." This can be found in the Query menu on the top bar of Sql Management Studio.

Or put something like this into your sql script

exec xp_cmdshell 'bcp "select * from suppliers" queryout "c:\suppliers.txt" -S server -T'

See this link, there is an issue about whether it is the app's c drive or the sql server's c drive. Have fun sorting that out.

0
ответ дан 6 December 2019 в 10:51
поделиться

You need to use xp_cmdshell, and the bcp utility in the following way

EXEC xp_cmdshell 'bcp "SELECT * FROM @Table FOR XML AUTO, ELEMENTS" queryout "C:\table.xml" -c -T'

Hit me back in the comments if you've got any questions or want to know anything more about how this works.

5
ответ дан 6 December 2019 в 10:51
поделиться

You can create CLR function that create the file, build it into the sql server, and use it from a stored procedure

Another way( I haven't tested it ) - There is a tool bcp

bcp "Select * from dbo..table FOR XML RAW" queryout c:\temp\test.xml -Soc-db -Uuser -Ppassword 

This example is from here

0
ответ дан 6 December 2019 в 10:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: