Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2004
xerkan xerkan is offline
Miembro
 
Registrado: jun 2003
Posts: 89
Poder: 22
xerkan Va por buen camino
Base de datos de solo lectura

Tengo pensado hacer una aplicacion que acceda a una base de datos firebird alojada en un cd-rom, e conseguido para esto hacer funcionar el firebird embebido para que no se tenga que instala ningun servidor, mi probrema es que cuando la base de datos esta en el cd sus permisos son de solo-lectura (para no grabar uno le he cambiado solo el permiso al archivo), con lo cual cuando el programa que estoy haciendo intenta conectar con ella me sale un mensaje diciendo que la base de datos a la que estoy intentando conectar es de solo lectura con lo cual no conecta a la base de datos y no puedo acceder a ella.

E probado a intentar conectarme con los componentes iboobject y las ibx, con el mismo resultado.
Responder Con Cita
  #2  
Antiguo 23-03-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

de la documentación (Operations Guide):

Making a database read-only To change the mode of a database between read-write and read-only, you must be either its owner or SYSDBA and you must have exclusive access to a database.

You must have exclusive to a database to change it to read-only mode.

From within InterBase, you can change a read-write database to read-only mode in any of three ways:

1 In IBConsole, select the database, display its properties, and edit the mode.
2 Use gbak to back up the database and restore it in read-only mode: gbak -create -mode read_only foo.gbk foo.gdb
3 Use gfix to change the mode to read-only: gfix -mode read_only foo.gdb


Hay algunas cosas más a tener en cuenta; te remito a la documentación (volumen Operations Guide).

Saludos.
Responder Con Cita
  #3  
Antiguo 23-03-2004
xerkan xerkan is offline
Miembro
 
Registrado: jun 2003
Posts: 89
Poder: 22
xerkan Va por buen camino
Bien, con el ib expert e conseguido q la base de datos se lea en modo de solo lectura gracias al menu data properties, ahora mi pregunta es como podria hacer esto por codigo para poder poner una opcion a mi programa de poner la base de datos como solo lectura mediante un script
Responder Con Cita
  #4  
Antiguo 23-03-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

con un script SQL, hasta lo que yo sé, es imposible. La única opción que te queda es con un script de sistema (utilizando el punto 2 ó 3 de mi primer mensaje).

Saludos.

Actualización: es "la única opción que te queda" si quieres utilizar scripts, ya que siempre puedes utilizar el API de servicios (bien directamente o desde algún componente de acceso [IBX, IBO, FIBPlus, ...]) desde tu aplicación cliente para lanzar un proceso de recuperación o reparación que fije la base de datos como de sólo lectura.

Última edición por kinobi fecha: 23-03-2004 a las 12:12:12.
Responder Con Cita
  #5  
Antiguo 23-03-2004
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Base datos solo lectura

Hola:

Yo con tengo una aplicacion que es un catalogo distribuido en cd-rom, esta con interbase, pero supongo que dara igual, lo que hago es mas o menos lo que te han comentado arriba, tengo un bat que se ejecuta cuando el usuario quiere generar dicho cd rom y es:
Responder Con Cita
  #6  
Antiguo 23-03-2004
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Base datos solo lectura

lo siento me falto el final.

Yo realice una aplicacion que es un catalogo distribuido en cd-rom, esta con interbase, pero supongo que dara igual, lo que hago es mas o menos lo que te han comentado arriba, tengo un .bat que se ejecuta cuando el usuario quiere generar dicho cd rom y es:

cd C:\Archiv~1\Borland\InterB~1\bin
gbak -B -user usuario -pas pasword ipservidor:unidad:Catalogo/catalogo.gdb c:\Catalogo\datos\catalogo.gbk

gbak -R -user SYSDBA -pas masterkey -mo read_only c:\Catalogo\catalogo.gbk c:\Catalogo\datos\catalogo.ro


y catalogo.ro es lo que copio junto con el ejecutable y el instalador de Ib en el CD.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:59:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi