Я установил приложение Windows в сети LAN и развернул базу данных на сервере P C (например, P C имя равно 1).
Теперь, когда пользователь другого P C (P C name is 2) использует приложение из своей P C (2) и базы данных (на P C 1).
При нажатии кнопки я хочу создайте резервную копию базы данных и сохраните эту резервную копию по фиксированному пути P C 1.
. В настоящее время я использую следующий код:
System.IO.Directory.CreateDirectory("Fixed path");
DASQLBase thebase = new DASQLBase(Global.gMasterConnectionString);
List<SqlParameter> paras = new List<SqlParameter>();
paras.Add(new SqlParameter("@BackupFolderPath ", "Fixed Path"));
thebase.ExecuteSPDataTable("proc_BackupData", paras);
, и это SQL Серверная хранимая процедура :
DECLARE
@databasename AS NVARCHAR(128)
, @timecomponent AS NVARCHAR(50)
, @sqlcommand AS NVARCHAR(1000);
SET @databasename = (SELECT MIN(name) FROM sys.databases
WHERE name IN ('CP001','CP002','CP003','CP004','CP005','CP006','CP007','CP008','CP009','CP010'));
--AND name NOT IN ('master', 'model', 'msdb', 'tempdb'));
WHILE @databasename IS NOT NULL
BEGIN
SET @timecomponent = REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR,
GETDATE(), 120), ' ', '_'), ':', ''), '-', '');
/* SET @sqlcommand = 'BACKUP DATABASE ' + @databasename + ' TO DISK =
''C:\Backups\' + @databasename + '_' + @timecomponent + '.bak''';*/
SET @sqlcommand = 'BACKUP DATABASE ' + @databasename + ' TO DISK =
''' + @BackupFolderPath + @databasename + '_' + @timecomponent + '.bak'''
EXEC(@sqlcommand);
SET @databasename = (SELECT MIN(name) FROM sys.databases
WHERE name IN ('CP001','CP002','CP003','CP004','CP005','CP006','CP007','CP008','CP009','CP010')
AND name > @databasename);
END
Проблема в том, что резервное копирование базы данных работает, если код и база данных работают на одном p c (1), но не на p c (2)