Realizar copia de seguridad desde PowerBuilder

Estoy desarrollando una aplicación en PB8 y deseo desde mi aplicación realizar y restaurar una copia (backup) de seguridad. Lo estoy intentado me presenta un mensaje que existe un objeto transacción abierto, etc.
1

1 respuesta

Respuesta
1
Seria bueno que me digas con que manejador de base de datos trabajas, si te sale ese mensaje es porque tu conexión con la base de datos esta abierta, tendrás que desconectar de la base de datos para poder hacer la copia de seguridad, quizás te sirva la función FileCopy si tu base de datos es ded access.
Si te sale ese mensaje es que realmente no tienes un objeto conexión, tienes que crearlo en el painter PBObject, declarar una variable global de ese tipo, y usar la variable para conectarte y desconectarte con la BD, sería bueno que me des más detalles de como estas intentando hacer la copia de seguridad, porque SQL Server no reconoce una base de datos si los archivos son simples copias del original, posiblemente lo mejor es crear un procedimiento almacenado para que cree la copia de seguridad y llamar a ese procedimiento almacenado en PB.
El manejador es la base SQL2000 y ya e intentado desconectar la BD pero me aparece un mensaje que NO EXISTE UN OBJETO CONEXIÓN
Gracias
Fabio
Hola, gracias ante todo por el apoyo.
Te diré que estoy utilizando el objeto conexión por defecto del PB (SQLCA). Y tengo implementado ya mi store procedure, y desde mi aplicación la estoy invocando pero me sale los errores antes mencionados. Si pudieras seguir apoyándome te lo agradecería. Fabio
Este es el procedimiento almacenado creado en mi base de datos sql2000 personal
CREATE PROCEDURE sp_copia_seguridad
@ruta CHAR ( 30 )
AS
SET @ruta = RTRIM ( @ruta ) + '\Sistemabackup.dat'
BACKUP DATABASE Sistema TO DISK = @ruta WITH BLOCKSIZE = 2048, INIT
GO
Y ESTE ES EL CÓDIGO IMPLEMENTADO EN MI SISTEMA DE POWERBUILDER 8.0
// Declarando Store Procedure para Copia
DECLARE spl_copia PROCEDURE &
FOR sp_copia_seguridad
@ruta = :ls_ruta;
ls_ruta = 'C:\Fabio\'
// DISCONNECT USING SQLCA;
EXECUTE spl_copia;
IF SQLCA.SQLCODE = -1 THEN
MESSAGEBOX ( "Procedimiento Almacenado ", &
SQLCA.SQLERRTEXT )
RETURN
END IF
1. Al ejecutar se me presenta este mensaje primero "no se puede realizar una copia de seguridad o restauración dentro de una transacción"
2. Pero cuando desactivo el comentario de disconnect using sqlca; me presenta este mensaje "transaction not connect"
Ha y una ultima pregunta, estoy trabajando en window xp, así que puede instalar la
version del sql2000 personal, y según he leído esta version solo permite una conexión
a la vez de la base de datos. ¿Es este cierto?, si es así, osea que cuando mi sistema
trabaje con 3 terminales ¿ambas no podrán acceder simultáneamente a la base, sino una
de ellas a la vez?.
Ah y una ultima pregunta, quiero saber como puede utilizar en el data source del datawindow
la clausula "in", te explico estoy trabajando un sistema de notas y quiero que seleccionando
1, 2, 3, etc. alumnos se visualicen las notas de los "n" alumnos seleccionados, estoy
tratando de implementarlo desde el powerscript pero no me sale, ya he definido una variable
argumento que me reciba todos los alumnos seleccionados pero no se muestra nada, ah el objeto
datawindow ya lo he creado y se me visualiza las notas pero de solo un alumno. Pero cuando
coloco directamente los códigos en el datasource también se me muestran, pero cuando lo trabajo con la
variable de argumento no pasa nada. Por ejemplo: quiero visualizar las notas de los alumnos '00001','00002','00003'.
COMO DEBE SER ALUMNO.CODALU = :va_codalu. NO SE.
Espero lo analices.
Gracias Fabio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas