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
-
How to receive data in web server sending from GPRS modem
by AshokSingh (1 replies)
-
how to make smtp in vb.net
by konikula (1 replies)
-
copying access DB to SQL DB
by konikula (1 replies)
-
MS Access in 3 different language
by konikula (2 replies)
-
How to Databind PictureBox to database
by amazingpeople (0 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...
Related jobs
-
Microsoft .Net Architect
in AMSTERDAM (€50K-€90K per annum) -
Microsoft Dynamics CRM Technical Consultant
in Netherlands (€50K-€90K per annum) -
Software Architect
in n/a (€45K-€70K per annum) -
.net developer
in Rijswijk (€2K-€4K per annum)
Events coming up
-
Jun
16
Code Generation 2009
Cambridge, United Kingdom
A developer event with a practical focus on helping people get to grips with code generation tools and technologies.
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.