Backup desde VB.

21/10/2003 - 22:03 por AvlOrbilink | Informe spam
Buenas tardes compañeros del foro, mi consulta es la siguiente, habra
alguna forma con la cual yo pueda incorporar una rutina de respaldo de una
base de datos de Sql 7.0 desde una aplicación hecha en Visual Basic 6.0.
Muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Adrian
21/10/2003 - 22:10 | Informe spam
Quizas esto te sirva...

sp_add_jobserver (T-SQL)
Destina el trabajo indicado al servidor que se indica.

Sintaxis
sp_add_jobserver [@job_id =] IdTrabajo, | [@job_name =] 'nombreTrabajo'
[, [@server_name =] 'servidor' ]

Argumentos
[@job_id =] IdTrabajo
Se trata del número de identificación del trabajo. IdTrabajo es de tipo
uniqueidentifier y el valor predeterminado es NULL.
[@job_name =] 'nombreTrabajo'
Se trata del nombre del trabajo. nombreTrabajo es de tipo sysname y su
valor predeterminado es NULL.

-
-

Nota Se debe especificar IdTrabajo o nombreTrabajo, pero no ambos.


-
-

[@server_name =] 'servidor'
Es el nombre del servidor al que se va a destinar el trabajo. servidor es
de tipo nvarchar(30) y el valor predeterminado es N'(LOCAL)'. servidor puede
ser (LOCAL) para un servidor local o el nombre de un servidor de destino
existente.
Valores del código de retorno
0 (correcto) o 1 (error)

Conjuntos de resultados
Ninguno

Observaciones
@automatic_post existe en sp_add_jobserver aunque no se enumera bajo
Argumentos. @automatic_post está reservado para uso interno.

El Administrador corporativo de SQL Server ofrece un método gráfico sencillo
para administrar trabajos y es la forma recomendada para crear y administrar
la infraestructura de los trabajos.

Permisos
El valor predeterminado de los permisos de ejecución es el de la función
public de los trabajos locales. Sólo los miembros de la función fija de
servidor sysadmin pueden ejecutar sp_add_jobserver para los trabajos
multiservidor.

Ejemplos
Este ejemplo asigna el servidor SEATTLE2 al trabajo multiservidor, Copia
Seguridad Datos Ventas Semana.


-
-

Nota Este ejemplo asume que el trabajo Copia Seguridad Datos Ventas Semana
ya existe.


-
-

USE msdb

EXEC sp_add_jobserver @job_name = 'Weekly Sales Data Backup',
@server_name = 'SEATTLE2'



Seria cuestion de tener armado el trabajo, y luego desde VB invocar el SP
"sp_add_jobserver". La verdad es que no lo he probado :)

Adrian
(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro


"AvlOrbilink" wrote in message
news:
Buenas tardes compañeros del foro, mi consulta es la siguiente, habra
alguna forma con la cual yo pueda incorporar una rutina de respaldo de una
base de datos de Sql 7.0 desde una aplicación hecha en Visual Basic 6.0.
Muchas gracias de antemano.


Respuesta Responder a este mensaje
#2 Diego Uribe
21/10/2003 - 22:11 | Informe spam
Dim conn as new adodb.connection
Dim sql as string

conn.connecstring= "zzzzzzzzzzzz todo lo que va aqui ... zzzzzzzzzzzz"
conn.open

sql = "Declare @bd varchar(50); "
sql = sql & "Declare @pth varchar(50); "
sql = sql & "Declare @tmp varchar(50); "
sql = sql & "Set @bd='LABASEDEDATOS';"
sql = sql & "Set @pth='c:\backupbd\ArchName';"
sql = sql & "Set @tmp='La descripcion del backup';"
sql = sql & "BACKUP DATABASE @bd TO DISK = @pth WITH INIT, NOUNLOAD, NAME @tmp, KIP, STATS = 10, NOFORMAT;"

conn.execute(sql)
conn.close

No lo he probado pero debe funcionar sin problemas, te recomiendo primero
prueba la sentencia sql utilizando sólo sql server


Diego
Si tengo algun error agradezco la corrección



/********************************************************************
La sentencia la saque de SQL 2000 por ello puede que funcione si utilizas :
********************************************************************/

BACKUP DATABASE @bd TO DISK = @pth WITH INIT, NOUNLOAD, NAME = @tmp, SKIP,
STATS = 10, NOFORMAT;

/********************************************************************
Esta es una de las formas de hacerlo: Claro que aqui esta muy complicado,
puedes eliminar la
variable sql y reemplazarla con la sentencia anterior
********************************************************************/
CREATE PROCEDURE DGU_Backup
@Path varchar(255)
AS
BEGIN
DECLARE @sql varchar(2000);
DECLARE @pth varchar(50);
DECLARE @bd varchar(50);
DECLARE @cont int;
DECLARE @max int;

SET CONCAT_NULL_YIELDS_NULL OFF;
Set @sql='';
Set @cont=1
Select @max=count(*) From sysdatabases Where dbid >= 7;
DECLARE bd_cur CURSOR FOR
Select sysdatabases.name From sysdatabases Where dbid >= 7;
OPEN bd_cur;
FETCH NEXT FROM bd_cur INTO @bd;
WHILE ( @cont <= @max )
BEGIN
Set @pth = @path + @bd;
Set @sql='BACKUP DATABASE [' + @bd + '] ';
Set @sql=@sql + 'TO DISK = N''' + @pth + ''' WITH INIT , NOUNLOAD , ';
Set @sql=@sql + 'NAME = N''Copia de seguridad ' + @bd + ''', SKIP ,
STATS = 10, NOFORMAT ';
Set @sql=@sql + 'DECLARE @i INT select @i = position from msdb..backupset
';
Set @sql=@sql + 'where database_name=''' + @bd + '''and ';
Set @sql=@sql + 'type!=''F'' and backup_set_id=(select max(backup_set_id)
';
Set @sql=@sql + 'from msdb..backupset ';
Set @sql=@sql + 'where database_name=''' + @bd + ''') ';
Set @sql=@sql + 'RESTORE VERIFYONLY FROM DISK = N''' + @pth + ''' WITH
FILE = @i';
insert into test values (@sql);
Exec @sql;
Set @cont = ( @cont + 1 );
FETCH NEXT FROM bd_cur INTO @bd;
End;
CLOSE bd_cur;
DEALLOCATE bd_cur;
END;




"AvlOrbilink" escribió en el mensaje
news:
Buenas tardes compañeros del foro, mi consulta es la siguiente, habra
alguna forma con la cual yo pueda incorporar una rutina de respaldo de una
base de datos de Sql 7.0 desde una aplicación hecha en Visual Basic 6.0.
Muchas gracias de antemano.


Respuesta Responder a este mensaje
#3 AvlOrbilink
21/10/2003 - 22:58 | Informe spam
Muchas gracias por la respuestas, aunque no entiendos tantos @s, voy a
probar con una base de pruebas que tengo por aqui para estos casos.
"AvlOrbilink" escribió en el mensaje
news:
Buenas tardes compañeros del foro, mi consulta es la siguiente, habra
alguna forma con la cual yo pueda incorporar una rutina de respaldo de una
base de datos de Sql 7.0 desde una aplicación hecha en Visual Basic 6.0.
Muchas gracias de antemano.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida