Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо