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 02-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
como se monta la BD en la memoria?

Hola a todos!

Podiran ser tan amables de explicarme como se carga una base de datos en memoria?

La idea es que en un set de varios cd de imagenes en el primero este la base de datos que enlaza datos con sus respectivas imagenes, y que al introducir el 1 cd la BD se carge y asi al hacer una consulta pueda enviarle un mensaje al usuario pidiendole que inserte el cd numero X (donde esta la imagen que haria falta para mostrar los datos).

Por supuesto el FB es embebido y la BD es de solo lectura.
Uso FB 1.5 y delphi 7.

Agradecido como siempre por el tiempo que puedan dedicar a responderme...
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #2  
Antiguo 03-05-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que vas a tener que hacer una copia de la Base de Datos a disco, e ir cambiando los CD's de las imágenes, sino no vas a parar de introducir/sacar CD's.
De todas formas, no me hagas mucho caso, porque no se si he entendido bien la cuestión...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 03-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Gracias Neftali por tu atención,

Quiza deba explicarme un poco, aunque tienes una idea de lo que necesito..

El catalogo de imagenes esta distribuido a lo largo de 10 cds... pero solo el primero contiene la BD en la cual estan los datos correspondientes a las imagenes. al hacer una consulta, esta arroja la informacion solicitada mas una o varias imagenes de archivo, las cuales pueden estar en cualquiera de los 10 cds.

Lo unico que se me ha ocurrido es adaptar mi programa (que actualmete esta en uso, leyendo las imagenes que estan en directorios del disco duro), para que carge la base de datos (de FB) en Memoria, se conecte, y mantenerla alli mientras se esten haciendo consultas.

Es algo asi como la encarta de Microsoft, cuando te pide que insertes el disco 3 porque es alli donde esta el video de lo que consultas.

Espero haberme explicado mejor, por favor cualquier ayuda... bien recibida; De todos modos estoy buscando informacion al respecto

y si alguien tiene una mejor idea ¡Super!
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #4  
Antiguo 03-05-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 21
kalimero Va por buen camino
Hola
Se me ocurre que podrias guardar en la BD un campo que haga referencia al nº de CD donde se encuentra la imagen. Ese numero de CD podria ser una etiqueta, con lo que solo hay que buscar una manera de leer la etiqueta por código.
Saludos
Responder Con Cita
  #5  
Antiguo 03-05-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Perdoname, pero es que no acabo de entenderte; Por un lado dices:
Cita:
Empezado por Alfredo
...El catalogo de imagenes esta distribuido a lo largo de 10 cds... pero solo el primero contiene la BD en la cual estan los datos correspondientes a las imagenes....
y luego:
Cita:
Empezado por Alfredo
...mi programa (que actualmete esta en uso, leyendo las imagenes que estan en directorios del disco duro),...
¿Las tienes en CD o las tienes en disco? No se si te refieres a cómo lo tienes ahora y cómo lo quieres,...

Otra cosa que no comentas y que aclararía las cosas es decir cómo tienes almacenasods los "apuntadores" a las imágenes. Supongo (por suponer) que almaceneas el path de la imagen; Si es así, se me ocurren dos altenativas; ¿Cual estás utilizando?

(a) c:\Imagenes\001\imagen1 (path completo)
(b) \001\imagen1 (path relativo)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 03-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Ok.. gracias por la duda

Cita:
¿Las tienes en CD o las tienes en disco? No se si te refieres a cómo lo tienes ahora y cómo lo quieres,...
Correcto, El programa actualmente corre con la base de datos y las imagenes en disco duro. De hecho las imagenes estan organizadas en carpetas segun cierto criterio.

La idea es pasar toda esa informacion a CDs (ya lo hice y me quedo en 10 dcs, en el primero la base de datos y algunas carpetas de imagenes pequeñas y en los otros 9 el resto de carpetas con imagenes, organizadas) para poderla distribuir y se consulte como solo lectura.

Cita:
Supongo (por suponer) que almaceneas el path de la imagen
Realmente no. Como el path hacia las imagenes es tan estructurado, me parecio mas facil (asi funciona actualmente) cargar el archivo con un loadfromfile al que solo le paso el nombre del archivo y directorio. Lo pienso hacer de igual forma para el uso de los cds, osea, algo como si la caregoria es "varios" entonces busca en el cd 5.

Cita:
kalimero:
Ese numero de CD podria ser una etiqueta, con lo que solo hay que buscar una manera de leer la etiqueta por código.
Voy cerca, ya concegui como leer el numero de serie y otras cosas de un cd.

claro estoy abierto a sugencias y les comentare los progresos..
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #7  
Antiguo 05-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Lightbulb

Re planteo el asunto... no vayan a figurarse que deseo que me hagan el trabajo


¿Existe alguna forma de hacer que se cargue la base de datos en memoria se haga la conexion a la misma sin necesidad de que este montado en cd que la contiene?
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #8  
Antiguo 05-05-2006
orodriguezc orodriguezc is offline
Miembro
 
Registrado: nov 2003
Ubicación: Cartagena - Colombia
Posts: 33
Poder: 0
orodriguezc Va por buen camino
Usa un TkbmMemTable

Que tan grande es la base de datos?.

Supongo que la información que necesitas para catalogar las imagenes la puedes almacenar en una sola tabla. De ser así puedes "subir" la tabla a memoria usando algún DataSet de este tipo. Yo suelo utilizar para estos menesteres la clase TkbmMemtable. Funciona de maravilla, además es free.
Responder Con Cita
  #9  
Antiguo 08-05-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Primero a que te refieres con imagenes.

1. A imagenes graficas(fotos etc).
2. O A imagenes de del archivo principal d el abase de datos(osea la base de datos esta seaprada en varios archivos. Ya se apor que es muy grande o por que tu gusto).

Cual es tu caso.

Si es el primero. Deberias comensar por meter las imagenes en la base de datos.

si tu caso es el segundo no deberias tenr ningun problema.

Por lo cual intuyo que que tu caso es le primero.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #10  
Antiguo 08-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
La verdad es que 10 cds de imágenes.... es una pasada. He hecho algunos cálculos y comprimiendo en zip podrías ahorrar 1 Cd nada más (los cálculos los hice con 85 megas en fotos de cámara digital, 400 kb cada una y quedó en 77 Megas.)

Supongo que hacerlo con DVD's es inviable ¿no? con uno de 7 Gigas, casi cabe todo. Las grabadoras de este tipo andan por 89 €.

En cuanto a tu pregunta, sin hacer pruebas yo diría que no. Quizás fuese mejor copiar la BD al directorio temporal de windows (demora de XX Segundos) y despues configurar dinámicamente la conexión (no creo que sea complicado).

A partir de aquí, ya puedes pedir el CD que sea. Si no recuerdo mal había un componente por aquí llamado TCDChange que detectaba cuando se introduce un CD nuevo en Windows.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 09-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Exclamation

Les agradezco un millon por el interes!! han revivido mis esperanzas.

Voy a hacer unas pruebas y luego comento
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #12  
Antiguo 12-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Thumbs up

Pues descubrí (interesante ) que no tenia que preocuparme por nada de lo que pregunte en realidad.....

La razón: Al conectar (de forma embebida) puedo hacer consultas tranquilamente, cambiar de disco y poner el que solicita las imagenes, sin problemas, la base de datos esta en memoria y la conexion es permante!!!.

Lo unico es que si no coloco el disco Nº 1 antes de cerrar la aplicacion me presenta un error, creo que de windows: "volumen incorrecto, inserte volumen ...." porque al cerrar la aplicación ejecuto: 'database.close'.

En cualquier caso agradezco a todos lo que me tiraron una soga y si se les ocurre algo respecto al error, bienvenido...
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
Responder Con Cita
  #13  
Antiguo 17-05-2006
[pepon386] pepon386 is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Valencia
Posts: 68
Poder: 20
pepon386 Va por buen camino
Desconozco el tamaño total de tu base de datos, pero si no es demasiado grande (y como dices, ya te la está cargando entera), podrías almacenar la información de tus tablas en ClientDataSets (a cada tabla le conectas un DataSetProvider y a este un ClientDataSet) y así cargar toda la información de la base de datos al principio, para a continuación cerrar la base de datos y así evitar que te dé ese error.

Espero que esto te sirva.
Responder Con Cita
  #14  
Antiguo 18-05-2006
Alfredo Alfredo is offline
Miembro
 
Registrado: nov 2003
Ubicación: Valencia, Venezuela
Posts: 234
Poder: 21
Alfredo Va por buen camino
Lightbulb

Gracias Pepon386,

De hecho intente algo con esos componentes, pero la urgencia a veces se lleva en los cachos a lo importante... seguire pronto con ese experimento del Tclientdataset, por el momento decidí, para entregar mas que todo (hoy estoy en eso ) optar por copiar la base de datos, que es pequeña - 5 megas- junto con el gsd32.dll (embebido) y el ejecutable (por si acaso) a la carpeta tempora, y hacer la conexion desde alli. Resuelta la primera parte. Y con respecto a las lecturas de las imagenes, solo me quedó conocer la letra de la unidad de cdrom, y direcionar las busquedas con esa letra de unidad, previa solicitud de insertar el disco correspondiente.

Lo que no he podido hacer, bajo este esquema, es evitar que el windows me muestre la pantalla que se muestra cuando metes un cd, algo como "¿que accion tomar con el cd que inserto?" (no se si me entienden). La verdad es fastidioso que aparesca cuando estas en cambio de disco. se me esta ocurriendo asignarle una cadena vacia a la clave open de autorun.ini a ver que pasa..

En todo caso un millon por la sugerencia, seguro lo intentare cuando entregue eso y baje la presión.
__________________
if Vivir = Vivir + Aprender then Aprender = ?
Alfredo Borges
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consume memoria, se porque, pero no se como evitarlo... sostro SQL 11 20-03-2007 16:01:43
Como ordeno la informacion que tengo en tabla de memoria? Luis Alberto Tablas planas 7 23-11-2005 22:07:57
Como cambiar la direccion de memoria a un Puerto omar_e_rc Windows 1 23-06-2005 05:38:13
Cómo administrar la memoria disponible? ciscu Varios 0 29-10-2004 12:15:30
Como crear una tabla temporal en memoria para reporte wereka SQL 5 01-03-2004 21:01:32


La franja horaria es GMT +2. Ahora son las 05:15:14.


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