Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Base de datos de solo lectura (https://www.clubdelphi.com/foros/showthread.php?t=8441)

xerkan 23-03-2004 00:02:21

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.

kinobi 23-03-2004 00:17:58

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.

xerkan 23-03-2004 01:42:46

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

kinobi 23-03-2004 11:06:05

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.

cahp 23-03-2004 18:56:57

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:

cahp 23-03-2004 19:04:57

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


La franja horaria es GMT +2. Ahora son las 09:21:10.

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