Если оптимальная скорость не будет соображением, следующий код 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 шаблон при отображении вывода.
Вы не можете писать в файловую систему из самого 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 также отключен на сервере и должен быть включен.
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.
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.
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