Как получить результат вывода команды SQL BACKUP в программу Delphi?
Выходные данные команд sql, которые видны пользователям, которые в интерактивном режиме запускают команды SQL из SQL Server Management studio, отличаются от выходных данных, которые вы получаете от выполнения команды ADO или объекта запроса ADO.
USE [DBNAME]
BACKUP DATABASE [DBNAME] TO
DISK = 'C:\SqlBackup\Backup.mdf'
Результат успешного завершения выглядит так:
Processed 465200 pages for database 'DBNAME', file 'filename' on file 2.
Processed 2 pages for database 'DBNAME', file 'filename_log' on file 2.
BACKUP DATABASE successfully processed 465202 pages in 90.595 seconds (40.116 MB/sec).
Когда я выполняю либо TADOCommand, либо TADOQuery с CommandText или SQL, установленным, как указано выше, я не получаю никакого такого вывода. Как мне прочитать этот «вторичный вывод»? от выполнения команды SQL? Я надеюсь, что, возможно, с помощью некоторых необработанных операций ADO я смогу выполнить команду и получить указанную выше информацию для успеха, а также для любых ошибок при выполнении резервного копирования Sql.
Update: Ответ ниже работает для меня лучше, чем моя наивная попытка, которая не сработала, используя простые классы Delphi TADOCommand и TADOConnection:
create TADOCommand and TADOConnection. execute command. get info-messages back.Проблема, с которой я столкнулся в своих попытках написания кода, заключается в том, что моей первой командой является «использовать dbname». и единственный набор записей, который я просматривал в своем коде, был результатом & quot; использования dbname & quot; команда, а не вторая команда, которую я выполнял. Принятый ответ ниже пересекает все наборы записей, которые возвращаются после выполнения команды ADO, и, таким образом, он работает намного лучше. Так как я делаю все это в фоновом потоке, я на самом деле считаю, что в любом случае лучше создавать необработанные объекты Com и избегать запутывания VCL в моем потоке. Приведенный ниже код может быть хорошим компонентом, если кому-то интересно, дайте мне знать, и я мог бы сделать с открытым исходным кодом «SQL Backup for Delphi» составная часть.