![]() |
Respaldo y recuperacion
hola necesito hacer el respaldo y la recuperacion desde una aplicacion en delphi la base de datos esta en sql server 2005 , si alguien pudiera ayudarme se los agradeceria mucho. :confused:
|
Backup y Restore en SQL Server
Para hacer Backup usa un componente TQuery (BDE) o TADOQuery (ADO) con el siguiente comando SQL:
Y para hacer el Restore usa lo siguiente:
Donde Nombre_Base_de_Datos= Nombre de tu base de datos Archivo_de_Backup= Nombre del archivo en el que generaras el backup Funcionara para SQL 7 o superior Espero que te sirva. Saludos |
error aplicando backup
hola gracias por la informacion investigue sobre esas sentencias y trate de aplicarlas pero me marca este error (ADOQuery2:CommandText does not return a result set) me podrias ayudar a identificar que estoy haciendo mal, muchas gracias.:confused:
|
Command Text does not.....
El error que te marca es porque tu estas ejecutando el Metodo Open ,para que te funcione debes usar el ExecSql:
Saludos |
:eek::eek:a jcarteagaf yo trabajo con delphi 6 enterprise, wxp sp2 y ms sql server 2000 prodias ayudarme aclarandome un poco mas detallado la forma de como hacer el backup y restore a la bd,:):) me conecto a la bd atraves de un TADOConnection:):)
|
Aclarando la Figura
Hola, KELVIN RC si quieres usar el anterior ejemplo tienes que colocar un TADOQuery en tu aplicacion y colocarle el query que detallo a continuacion:
Luego cambiar las lineas 1, 4 y 9 por los valores que tu desees. Puedes hacerlo en tiempo de diseño (los valores serian fijos) o en tiempo de ejecucion con instrucciones parecidos a los siguientes:
La unica condicion es que la ruta del archivo donde generas el backup este en el mismo servidor que el SQL Server. Lo mismo haces con el restore, pero para este ultimo la condición es la base de datos no este siendo utilizada. Espero que haber clarificado tus dudas. Saludos |
mas PREGUNTAS
ESTE CODIGO LO COLOCO EN LA PROPIEDAD SQL DEL ADOQUERY
BACKUP DATABASE PRESTAMOS TO DISK = E:\KELVIN WITH NOFORMAT, NOINIT, NAME = PRESTAMO, NOREWIND, NOUNLOAD, NOSKIP CUANDO INTENTO ACTIVARLO ME DA EL SIGUIENTE ERROR OBJETO PÀRAMETER MAL DEFINIDO SE PROPORCIONO INFORMACION INCORRECTA O INCUERENTE LO EJECUTO DE LA SIGUIENTE MANERA EN EL SQL QUERY ANALYZER BACKUP DATABASE PRESTAMOS/*ES EL NOMBRE DE LA BASE DE DATOS*/ TO DISK = 'E:\KELVIN'/*ES LA RUTA DONDE QUIERO GUARDAR EL ARCHIVO*/ WITH NOFORMAT, NOINIT, NAME = 'PRESTAMO_Backup',/*AQUI NO SE K PONER Y LO DEJE = */ NOREWIND, NOUNLOAD, NOSKIP Y AKI ME FUNCIONA GRACIAS POR TU ATENCION |
Backup y restore
El error que te muestra es debido a que estas usando el archivo destino sin comillas en tu ejemplo dice:
E:\KELVIN y deberia decir 'E:\KELVIN' En el ejemplo que te di no tome en cuenta eso, para enviarlo con comillas usa lo siguiente:
Saludos. |
mas PREGUNTAS
Con Eso Se Resolvio El Problema Solo Hacian Falta Las Comillas Pero Ahora,
El Archivo Generado En E:\kelvin Se Aumenta Sin Cambiar Nada En El Sistema, Ose Sin Hacer Ninguna Entrada O Transaccion Si Se Realiza 2 Veces El Backup Se Aumenta, Sabes A Que Se Deve Esto Y Como Resoberlo Gracias Por Tu Tiempo |
Backup y Restore
Si, SQL crea "versiones" del backup sobre el mismo archivo.
Lo puedes hacer es controlar en tu aplicación si el archivo existe y eliminarlo antes de hacer el backup: Saludos. |
Preguntas
GRACIAS CON ESO SE RESOLBIO
PERO HAY QUE ARRECLAR ALGO QUE ES if FileExists(NombredelArchivo)/* AQUI EL NOMBRE DEL ARCHIVO VA DENTRO DE COMILLAS*/ then DeleteFile(NombreDelArchivo)/* IGUAL AQUI CON SU RUTA CLARO*/.....Ejecutar Backup GRACIAS DE NUEVO |
mas preguntas
:confused::confused: ya se realiza a las mil maneras, pero prodrias ayudarme a ponerle una barra de progreso para que se vea un poco mas profecional
gracias de nuevo |
Barra de progreso
Lastimosamente no hay forma de colocar una barra de progreso para indicar al
usuario como va la cosa. Pero puedes usar el componente JVWaitingGradient de los componentes Jedi que indica que se esta haciendo un proceso. Tambien vi un componente parecido al control que usa el Management Studio del SQL 2005 (una rueda que va cambiando de color) en los componentes TMS. Saludos |
Yo para la salva cree un Procedimineto almacenado y lo llamo desde Delphi y me funciona bien, yo uso MSSQL Server 2000:
para restaurar nunca lo pude hacer de Delphi, siempre me dice que la BD esta en uso y no le encontré solución por lo que cuando lo necesito lo hago desde el Interprise Maneger del MSSQL |
gracias
gracias santi33a pero soy nuevoen esto y no entiendo mucho lo que me esplicas, y los componentes jedy los buscare y tratare de hacerlo funcional, si saben donde encontrarlos se los agradeceria:):)
|
sigo con el error
hola ya puse el Adoquery2.ExecSQL; y aun me sale el mismo error cuando intento ejecutar la sentencia de sql del adoquery. el codigo que puse es el siguente:
procedure TForm2.Button2Click(Sender: TObject); begin ADOQuery2.Active:=true; Adoquery2.ExecSQL; end; En la propiedad SQL del adoquery2 puse: BACKUP DATABASE [JOY] TO DISK = C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\JOY.BAK' WITH NOFORMAT, NOINIT, NAME = JOY-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 y el error es: ADOQuery2: CommandText does not return a result set necesito ayuda...:confused: |
SQL Server
El problema esta en llamar a Active
Solo deberias llamara Execsql
Utilizas Active := true u Open para abrir datasets que devuelvan un conjunto de datos, en cambio execsql ejecuta las instrucciones sql, que no necesariamente devolveran datos a la aplicación. Saludos. |
Dicho de otra forma:
Cuando el SQL es de seleccion (un SELECT *) se usa Active:= true (o bien adoquery1.Open que es lo mismo) Cuando el SQL es de acción ( UPDATE, DELETE, ALTER TABLE, BACKUP) se usa ExecSql. bye |
Open vs Execsql
Cita:
Eso, eso, eso, eso......:) |
La franja horaria es GMT +2. Ahora son las 06:24:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi