Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Запись файла

01.01.2007

Пример простейшей процедуры на Transact-SQL, создающей файл и

записывающий в неё что нибудь. Для этого используется WindowsScripting.

WindowsScripting - если грубо - это набор OLE-объектов, которые можно использовать для целей управления системой. Их удобно использовать там, где невозможно достучаться к функциям Win32 API напрямую, например, в SQL Server-е.

Ниже приводится исходник на Transact-SQL с комментариями, как это сделать

Надеюсь, что он достаточно хорошо прокомментирован.

DECLARE @FileName varchar(255), 
----текст, который необходимо записать в файл---
@sFileText varchar(8000),
----директория файла---
@sFileDir varchar(8000),
----имя файла----------
@sFileName varchar(8000),
@FS int, 
@FileID int, 
@hr int,
@OLEResult int, 
@source varchar(30), 
@desc varchar (200),
@bFolder bit
--функция sp_OACreate создаёт OLE объект 'Scripting.FileSystemObject'----
EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUTPUT
--обязательно обработать ошибочные ситуации---
IF @OLEResult <> 0 
BEGIN
GOTO Error_Handler
END
select @sFileDir = 'c:\'
select @sFileName = @sFileDir + '123.log'
/*
у Scripting.FileSystemObject есть много интересных методов для работы с файлами 
и директориями, подробнее их можно подсмотреть, например, в MSDN.
*/
--проверить - существует ли заданная директория, для этого вызовем функцию 'FolderExists'
--ранее созданого OLE объекта---
execute @OLEResult = sp_OAMethod @FS,'FolderExists',@bFolder OUT, @sFileDir
IF @OLEResult <> 0 Or @bFolder = 0
BEGIN
  --а если не существует - то создать её----
  execute @OLEResult = sp_OAMethod @FS,'CreateFolder',@bFolder OUT, @sFileDir
  IF @OLEResult <> 0 And @bFolder = 0
  BEGIN
    GOTO Error_Handler    
  END
END
--создать файл---
execute @OLEResult = sp_OAMethod @FS,'CreateTextFile',@FileID OUTPUT,@FileName
IF @OLEResult <> 0 
BEGIN
  GOTO Error_Handler
END
--создадим строку, которую будем записывать в файл---
set @sFileText = 'Hello first file!' + char(0)
-----------------записать строку в файл---
execute @OLEResult = sp_OAMethod @FileID, 'WriteLine', NULL, @sFileText
IF @OLEResult <> 0 
BEGIN
  GOTO Error_Handler
END
goto Done
Error_Handler:  --обработаем ошибку---
EXEC @hr = sp_OAGetErrorInfo null, @source OUT, @desc OUT
Done:    
--очистим за собой всяческий OLE-мусор----
EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestr 

Автор: AQL

Взято из https://forum.sources.ru