Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Preparar BD sin dependencias (https://www.clubdelphi.com/foros/showthread.php?t=39466)

Deiv 20-01-2007 15:39:03

Preparar BD sin dependencias
 
Hola,
Me preguntaba ¿Cuál sería la mejor manera de preparar y administrar una Base de Datos de una Tabla Periódica Química sin dependencias externas?
Es una BD que contiene 120 Elementos, cada Elemento tiene como 15 Datos: Nombre, Símbolo, Número Atómico, Masa Atómica, Densidad, Radio Atómico, Punto de Fusión, Punto de Ebullición, Números de Oxidación, etc, etc, etc.
A lo que me refiero es que no quisiera llenar mi BD en ACCESS por ejemplo y luego estar susceptible que si en otro equipo no dispone de este programa, pues no trabaje. Prefiero evitarme dependencias, ya que los Datos de una Tabla Periódica son fijos y no cambian.
No sé, quizá preparalos en:
- ARRAYs unidimensional?
- Array Bidimensional?
- Archivo TXT? (Datos posicionados Verticalmente para luego trabajar con ReadLn y WriteLn)
- Archivo TXT o CVS (Delimitado)
- Otro?.....

Luego administrarlo quizá con:
- TStringList? (for i:=1 to 120)
- ADO?
- SQL?
- Otro?....

En un hilo que abrí aquí, Neftali orientaba trabajar con ADO, ahora este es otro Proyecto que preparo es más concreto ya que me gustaría PROTEGER esa BD, por ejemplo no vaya a ser que al Dato del Hidrógeno que tiene un electrón lo renombren y le hagan aparecer con 20 electrones (Utópico!!). De la forma que sugieran esta BD no debe ser tocada (debe estar protegida) solo debe ser administrada.
Entonces, que sugieren?:

¿Cual sería la mejor manera de preparar esta BD? ¿Y con que administrarlo?
¿Cúal mejor aquel del otro, y por qué? ¿Cuál la ventaja o desventaja de aquel, y por qué?

Ps.- Cuando me refiero a administarlo, me refiero que en algún momento voy a requerir mostrar solo Metales, o solo No Metales, o mostrar grupos: Alcalinos ó Halógenos ó Anfígenos, etc.

Lepe 20-01-2007 16:36:17

Definitivamente una Base de datos. Firebird embebido (firebird embedded) puede servir, lo único que tienes que distribuir es una dll en la misma carpeta de tu programa y listo.

Otros compañeros ya te comentaran otras alternativas.

En google seguro que encuentras paso a paso como debes hacerlo.

Saludos

Deiv 21-01-2007 00:51:13

Gracias por tu orientación Lepe.
Firebird embebido??
Será esta la única forma. No habrá otra forma sencilla. ¿Que opinan?

AzidRain 21-01-2007 02:44:10

Tablas planas...para que te complicas. Solo tendrias que distribuir el BDE.
Si optas por MySQL o Firebird ambos se pueden distribuir embebidos pero se me hace demasiado para una tabla de 120 registros fijos. Yo elegiría tablas planas.

rcarrillom 21-01-2007 08:09:04

Son pocos registros, puedes utilizar un componente que se llama TDbf y te gestiona bases de datos dBase III+, dBase IV, dBase visual VII y FoxPro, muy sencillo de usar.

kalisto 21-01-2007 12:45:43

Pues yo, para tampocos registros utilizaria mybase, con un clientDataset, eso si, tienes que distribuir midas.dll, o incluirlo en el ejecutable.

Deiv 22-01-2007 15:17:04

Cita:

Empezado por Lepe
Firebird embebido

investigué algo, para mi es un lenguaje nuevo, en sí trabajar con Base de Datos es todo nuevo, me preguntaba ¿Cuantas instrucciones (sentencias) siempre y/o funciones de ese lenguaje tendría que utilizar para FILTRAR y ordenar mi Base de Datos?? podrías enviarme adjunto un ejemplo pequeño?
Cita:

Empezado por AzidRain
Tablas Planas

bien, pero mis datos NO los voy a mostrar así de plano, mas bien en un TListBox o un TMemo, entonces? oculto el TDBGrid?
Cita:

Empezado por rcarrillom
puedes utilizar un componente que se llama TDbf y te gestiona bases de datos dBase III+, dBase IV, dBase visual VII y FoxPro

¿Necesariamente entonces debo primero aprender dBase X, y FoxPro para enlazar con TDbf?
Cita:

Empezado por kalisto
eso si, tienes que distribuir midas.dll

Esta nueva palabra si que es nueva en mi lenguaje de comprensión en programación: MIDAS.
Pero en lo que si estamos todos de acuerdo que la Base de Datos es muy pequeña con POCOS Registros y FIJOS, y estoy tomando en cuenta cada sugerencia para investigar la opción más conveniente. Solo que si se dieron cuenta para no complicarme Yo partí de un Array y un ARCHIVO TXT, y quizá protegerlo con alguna Encriptación, esa es otra duda para cada sugerencia: la Protección, o diseñarla solo de lectura.
Mi programa no esta siendo diseñado para trabajar en Red, mas bien tiene propósitos de uso personal, individual en una PC, pues toda la BD de la Tabla Periódica lo administraré internamente, y cuando se requiera la mostraré en otros Objetos.

Lástima que para mi sea todo nuevo los términos y el manejo de Base de Datos. Paciencia les pido.

Espero mas sugerencias por favor.
Deiv

Lepe 22-01-2007 16:04:13

Cuando hemos hablado de "tablas planas" nos referimos a Paradox, dbase, foxpro, etc. La curva de aprendizaje es mínima, un programa para crear la base de datos y después con DBedits en tu ventana se hace todo.

Cuando hablamos de Firebird, MySql y un largo etcetera, estamos hablando de verdaderos Sistemas Gestores de Bases de Datos. En estos sistemas existen muchas más funcionalidades y posibilidades de administrar la información de la base de datos. Aqui la curva de aprendizaje es mayor, incluso meses y quizás tengas que leer en inglés los manuales.

La ventaja de usar Bases de datos, vendría por ser más cómodo para tí, como programador, pedir un listado de la tabla periodica ordenados por peso atómico (por ejemplo) o por grupo.

Sería tan simple como situar un objeto Tquery con la instrucción:
Código SQL [-]
   select nombre, peso, masa from tablaPeriodica where
   grupo = 3
   order by  peso, masa, nombre
Sería así para solicitar un listado ordenado por peso, si hay 2 elementos con el mismo peso, después se ordena por masa, y si existiera 2 elementos iguales, se ordena por nombre.

Hacer esto mismo con StringList puede ser bastante engorroso para tí y dedicarle mucho tiempo escribiendo código para ordenar un listado.

Quizás deberías explicar qué hace tu programa, porque me suena muy raro tener la tabla periodica en la base de datos y después no grabar nada más. ¿solo pide listados de elementos e imprime? ¿ni siquiera imprime? ¿no tienes que guardar información de otro tipo?.

Saludos

Deiv 23-01-2007 14:33:56

Tienes razón Lepe,
Mejor explicaré que va a hacer mi programita, mas tarde enviaré unos archvios adjuntos de la BD, para que lo observen.
Saludos

Deiv 23-01-2007 22:46:23

2 Archivos Adjunto(s)
Cita:

Empezado por Lepe
Quizás deberías explicar qué hace tu programa, porque me suena muy raro tener la tabla periodica en la base de datos y después no grabar nada más. ¿solo pide listados de elementos e imprime? ¿ni siquiera imprime? ¿no tienes que guardar información de otro tipo?.

Aquí dejo algo más entendible (ver archivos adjuntos):

Debo CARGAR por Código los Items a los TDBComboBox y aquí ya se debe trabajar con un FILTRADO, como verás en la imagen en el primer TDBComboBox debe ir solo la Columna "Tipo" y en el segundo la columna "Grupo" (OjO que de repente Yo llené mal la BD podía haber sido 1A, 2A, 3A, etc, en vez de Nros Romanos) esa columna debe también cargarse por código FILTRADO.

- El Programa como verán es demasiado sencillo, lo que hace es comprobar el TRadioButton para que luego muestre en el TDBMemo los Elementos en una columna y a su lado la masa atómica en la otra columna. En este TDBMemo para el primer caso:
- Si el RadioButton "Grupo" está activado debe mostrar los Elementos químicos ORDENADOS por su "Número Atómico",
- en cambio cuando el RadioButton "Todos" esté seleccionado, deshabilito el segundo TDBComboBox (GRUPO) y muestro todos los elementos con sus Masas Atómicasa según el primer TDBComboBox esté seleccionado = "Anfótero ó Gas Noble ó Metal ó No Metal" en el TDBMemo pero ORDENADOS Alfabéticamente.
- Y solo esta parte del Memo al final debería imprimir.

Hay un Button "Procesar" que después de seleccionar procesa todo lo indicado, después de clickar en este recién muestra en el TDBMemo.
Deiv

AzidRain 24-01-2007 02:17:17

Perdon que insista, pero :

MySQL, Firebird y demas estan diseñados para manejar sin problemas millones de registros, varios usuarios al mismo tiempo y millones de transacciones. Acceso remoto y demas.

dBASE y Paradox son formatos pensados para usarse en la PC o en redes pequeñas con pocos registros (hablar de miles ya es mucho para ellos)

En tu proyecto no vas a necesitar más de 120 registros de manera que para que quieres complicarte con MysQL y demas...paradox o dbase son formatos de archivo para guardar datos muy sencillo y para los cuales Delphi ya trae controles que lo hacen. Solo un TTable y ya.

Estaria bien que nos plantearas mas que lo que llevas ya hecho, precisamente cual es el problema que va a resolver tu sistema o cual es el objetivo para que te podamos apoyar con muchas soluciones diferentes que puedas escoger

S


La franja horaria es GMT +2. Ahora son las 03:41:16.

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