Подскажите пожалуйста, как программно из 1С сделать бэкап базы SQL?
Подскажите пожалуйста, как программно из 1С сделать бэкап базы SQL?
ADO + t-sql script
Пока пишу на VB, потом перепишу в 1С
Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") ConnectionString = "driver={SQL Server}; server=192.168.168.62; uid=sa; Pwd=********" objConnection.Open(ConnectionString); objCommand.ActiveConnection = objConnection objCommand.CommandType = 4 objCommand.CommandText = "BACKUP DATABASE My_Base TO DISK = 'D:\My_Base.Bak'" objCommand.Execute
не работает,
Предполагается наличие окончания инструкции
(4) сама команда у меня уже есть, мне теперь её запустить извне SQL надо
(3)+ точка с запятой затесалась...
теперь пишет, что не удается загрузить драйвер SQL
Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") 'ConnectionString = "driver={SQL Server}; server=192.168.1.1; uid=sa; Pwd=********" ConnectionString = "Provider=SQLOLEDB.1;Connect Timeout=10000;Data Source=192.168.1.1;User Id=sa;Password=********" objConnection.Open(ConnectionString) objCommand.ActiveConnection = objConnection objCommand.CommandType = 1 objCommand.CommandText = "BACKUP DATABASE My_Container TO DISK = 'D:\My_Container.Bak'" objCommand.Execute msgbox "finish"
Вроде, начинает делать бэкап, но вылетает по таймауту :(
(9) тоже робит, спс
Правильней сделать таск бэкапа на стороне sql. А из 1с просто таск толкнуть на выполнение
(18) создаёшь новый топик, указываешь там галку "включить в БЗ (базу знаний)", ну, и офомляешь мини-статейку, т.е. примерно как на мисте или ИС
(7) вызывай асинхронно, благо ADODB позволяет
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
'ConnectionString = "driver={SQL Server}; server=192.168.1.1; uid=sa; Pwd=********"
ConnectionString = "Provider=SQLOLEDB.1;Connect Timeout=10000;Data Source=192.168.1.1;User Id=sa;Password=********"
objConnection.Open(ConnectionString,,,16) ' 16 - adAsyncConnect. Opens the connection asynchronously. The ConnectComplete event may 'be used to determine when the connection is available.
objCommand.ActiveConnection = objConnection
objCommand.CommandType = 1
objCommand.CommandText = "BACKUP DATABASE My_Container TO DISK = 'D:\My_Container.Bak'"
objCommand.Execute
Когда мне нужно сделать бэкап, я всегда смотрю на http://forum330.com/forum/ . И очень быстро разбираюсь. Там все доходчиво и ясно.