Library tutorials & articles
Using SQL-DMO To Backup and Verify a Database
- Overview
- Getting Started
- Backing Up
- Verifying the backup
Getting Started
SQLDMO.SQLServer
The code for the SQLDMO.SQLServer object should look very familiar. It allows you to connect to a given SQL server using either SQL Server on Windows NT authentication. Take a look at the snippet below.
<%
Dim
srv
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
%>
This code creates a connection to SQL Server using SQL Server authentication. To login using NT authentication set the LoginSecure property to TRUE. This will cause the username and password parameters to be ignored and your NT login information will be used.
SQLDMO.Database
We will use the SQLDMO.Database object to get a list of databases from the server. This information is used to complete a backup request form in the sample application. The snippet below demonstrates using this object to populate a combo box.
<%
Dim
srv
Dim objDB
Set srv = Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = 15
srv.Connect "servername", "username", "password"
Set objDB = Server.CreateObject("SQLDMO.Database")
%><SELECTname="fdatabase"><%For Each objDB In srv.Databases
If objDB.SystemObject = FalseThen%><OPTION><%=objDB.Name%></OPTION><%End IfNext%></SELECT>
Related articles
Related discussion
-
High-Performance .NET Application Development & Architecture
by Manjot Bawa (0 replies)
-
Research topic in software
by reachsangeethamathew (0 replies)
-
Error Msg Description ?
by morizan (0 replies)
-
How to Change Default exe Icon in C#.net Windows Application
by sonali.terse (2 replies)
-
Job Opening - New Braunfels, Tx for C# Programmer
by kirkkelly (3 replies)
Related podcasts
-
Stack Overflow: Podcast #28
This is the twenty-eighth episode of the StackOverflow podcast, where Joel and Jeff discuss Windows Azure, SQL Server 2008 full text search, Bayesian filtering, porn detection, and project management — among other things. Jeff met the inestimable Joey DeVilla aka Accordion Guy...
Events coming up
-
Nov
19
SQLBits V
Newport, United Kingdom
SQLBits is Europe's largest SQL Server conference, and SQLBits V will be the biggest and best yet. On November 19th we are holding a day of pre-conference seminars; on November 20th we have a pay-to-attend day of SQL Server 2008 and R2 content; and on Saturday November 21st we have our usual free community conference.
here the solution for Backup the database in VC++:
int backup::OnButton1()
{
HRESULT hr;
if FAILED(hr = CoInitialize (NULL))
{
//_tprintf(TEXT("CoInitialize Failed\n"));
return (0);
}
LPSQLDMOSERVER pSQLServer = NULL;
if FAILED(hr = CoCreateInstance(
CLSIDSQLDMOServer,
NULL,
CLSCTXINPROCSERVER,
IIDISQLDMOServer,
(LPVOID*)&pSQLServer))
{
//_tprintf(TEXT("CoCreateInstance Failed\n"));
return (0);
}
pSQLServer->SetLoginTimeout(10);
pSQLServer->SetLoginSecure(TRUE);
if FAILED(hr = pSQLServer->Connect((L"ws-45"),(L"sa"),(L"")))
{
AfxMessageBox("Backup connection Failed");
return DisplayError();
}
else
{
LPSQLDMODATABASES pDatabases = NULL;
LPSQLDMODATABASE pDatabase = NULL;
LPSQLDMOFILEGROUPS pFileGroups = NULL;
LPSQLDMOFILEGROUP pFileGroup = NULL;
LONG lCount = 0;
LPSQLDMODBFILE ppDBFile = NULL;
LPLONG pRetVal = NULL;
long mdatasize;
CString temp;
float mdatasizeMB;
CString datasize;
SQLDMOBSTR strDB;
// long *strDB;
// char* mstr = new char[100];
//pSQLServer->GetDatabaseCount(&lCount);
hr = pSQLServer->GetDatabases(&pDatabases);
for (LONG i = 0; i < 1; i++)
{
pDatabases->GetItemByOrd(i, &pDatabase);
pDatabase->GetName(&strDB);
pDatabase->Release();
pDatabase->GetSpaceAvailableInMB(&m_datasizeMB);
pDatabase->GetFileGroups(&pFileGroups);
pDatabase->GetSize(&m_datasize);
// pDatabase->GetFileGroupByName(_T("DOTS"),&pFileGroup);
// pFileGroup->GetDBFileByOrd(0,&ppDBFile);
// temp = mdatasize;
datasize.Format("%d",mdatasize);
temp.Format("%d",mdatasizeMB);
SetDlgItemText(IDCEDIT1,datasize);
//AfxMessageBox(datasize);
//AfxMessageBox(temp);
// sprintf(mstr,"%lf",msize);
// wprintf(T("database %s"), strDB);
// wprintf(T(" Total size %i \n"), msize);
// wprintf(T("Free space %lf \n"), m_sizeMB);
}
}
LPSQLDMOBACKUP pSQLBackup = NULL;
if FAILED(hr = CoCreateInstance(
CLSIDSQLDMOBackup,
NULL,
CLSCTXINPROCSERVER,
IIDISQLDMOBackup,
(LPVOID*)&pSQLBackup))
{
// _tprintf(TEXT("CoCreateInstance Failed\n"));
return (0);
}
LPCONNECTIONPOINTCONTAINER pMyConnectionPointContainer;
LPCONNECTIONPOINT pMyConnectionPoint;
CMyBackupSink* pMyBackupSink = new CMyBackupSink();
pMyBackupSink->AddRef();
if (!pMyBackupSink)
{
return(0);
}
DWORD dwCookie;
// ask the connectable object (pSQLBackup) about its outgoing interface,
// by using QI on IIDIConnectionPointContainer. If fails, this object
// does not support outgoing interface
//
if FAILED(pSQLBackup->QueryInterface(
IIDIConnectionPointContainer,
(LPVOID FAR*) &pMyConnectionPointContainer))
{
return DisplayError();
}
// find the specific outgoing interface IID_ISQLDMOBackupSink and retrieve
// a pointer to the connectionpoint object. If fails, the object does not
// support this outgoing interface
if FAILED(pMyConnectionPointContainer->FindConnectionPoint(
IID_ISQLDMOBackupSink,
(LPCONNECTIONPOINT FAR*)&pMyConnectionPoint))
{
return DisplayError();
}
// establish the connection between the Sink and the ConnectionPoint object.
// Retrieve a key (cookie) value for terminating the connection later. If
// this fails, the Sink and ConnectionPoint object do not support the same interface
if (S_OK != (hr = pMyConnectionPoint->Advise((LPUNKNOWN)pMyBackupSink, &dwCookie)))
{
return DisplayError();
}
if FAILED(hr = pSQLBackup->SetFiles((L"e:\test123.dmp") ))
{
return DisplayError();
}
if FAILED(hr = pSQLBackup->SetDatabase((L"dots")))
{
return DisplayError();
}
// hr = pSQLBackup->EXEC sp_spaceused ;
if FAILED(hr = pSQLBackup->SetTruncateLog(SQLDMOBackupLogTruncateOnly))
{
return DisplayError();
}
Hi
I tried your code, seems it is not working for remote database backup.
do u have any update version for taking backups.
thanks
This thread is for discussions of Using SQL-DMO To Backup and Verify a Database.