![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Backup базы MSSQL Server 2000 в Делфях [D7, MSSQL]
mefisto © (2005-05-31 22:44:00)Как зделать Backup базы MSSQL Server 2000 с помощю средств Delphi ADOQuery?
Заранее спасибо !!!
sniknik (2005-06-01 14:29:00) [1]> С помощью ADOQuery нельзя
да ну?
BACKUP
Backs up an entire database, transaction log, or one or more files or filegroups. For more information about database backup and restore operations, see Backing Up and Restoring Databases.
Syntax
Backing up an entire database:
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
...
и тд. не будем сюда BOL переписывать. а в конце параграфа есть и примеры... не буду говорить что пробовал это на "рабочесть", не приходилось както (нет надобности), но доверять мелкософту/хелпу както привык. уверяете что это не работает?
just_me (2005-06-01 13:46:00) [2]С помощью ADOQuery нельзя, но можно заюзать SQLDMO и сделать backup, примерно так:
const
SQLNSRootType_DefaultRoot = $00000000;
SQLNSRootType_ServerGroup = $00000001;
SQLNSRootType_Server = $00000002;
SQLNSRootType_Database = $00000003;
SQLNSOBJECTTYPE_DATABASES = $00000004;
SQLNSOBJECTTYPE_DATABASE = $00000005;
SQLNS_CmdID_DATABASE_BACKUP = $00000050;
SQLNS_CmdID_DATABASE_RESTORE = $00000051;
procedure TMyForm.btnBackupClick(Sender: TObject);
var
objSQLNS,
objSQLNSBackup : Variant;
strConnectString : string;
hRootItem : integer;
begin
try
try
Screen.Cursor := crSQLWait;
objSQLNS := CreateOleObject('SQLNS.SQLNamespace');
strConnectString := Format('Server=%s;uid=%s;pwd=%s;Database=MyDB', [ServerName, LoginID, Password]);
objSQLNS.Initialize("App name", SQLNSRootType_Database, OleVariant(strConnectString), Handle);
hRootItem := objSQLNS.GetRootItem;
objSQLNSBackup := objSQLNS.GetSQLNamespaceObject(hRootItem);
// закрыть базу MyDB
objSQLNSBackup.ExecuteCommandByID(SQLNS_CmdID_DATABASE_BACKUP);
// открыть базу MyDB
except
end;
finally
objSQLNS := Unassigned;
objSQLNSBackup := Unassigned;
Screen.Cursor := crDefault;
end;
end;
Anatoly Podgoretsky (2005-05-31 23:02:00) [3]Настольная книга администратора BOL
Архивировать модно как программно, так и автоматически средствами самого сервера, данный вариант предпочтительнее.
Если почему то не доверяешь серверу, то смотри в BOL синтаксис команды BACKUP