Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 19-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Cita:
Empezado por mamaro
Ampliando un poco lo de Delfino, te digo que el archivo "FBCLIENT.DLL" debe estar en "C:\windows\SYSTEM" para win95/98, "C:\winnt\system32" para win2000, y "C:\windows\system32" en Win XP.

Creo que la librería también puede estar en el directorio de tu ejecutable, pero ésto realmente no lo probé.
En efecto, el archivo estaba en ese directorio. Pero sigo sin conseguir crear la base de datos. Durante la instalación, estaban las 4 casillas marcadas, y del isql, uf... mucho para mí todavía....
Responder Con Cita
  #22  
Antiguo 19-07-2007
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Talking

Hola amigo:

Ideas....
Si antes habias instalado alguna version de Interbase debes desinstalarla por completo, en el directorio windows\sysem32\ que no exita un fichero gds32.dll (o algo asi)

Luego desinstala Firebird y vuelve a instalar el motor asegurandote que la libreria fbclient.dll esta en el directorio Windows\system32

A partir de ahi arranca el servidor y ejecuta el IBEXPERT . (Lo siento no he utilizado el Flamerobin pero sera similar , creo)

Utiliza la base de datos de ejemplo de Firebird....
Ruta C:\Archivos de programa\Firebird\Firebird_2_0\examples\empbuild\Employee.fdb

registrala y conectate, deberia de funcionar.

Animo.
Responder Con Cita
  #23  
Antiguo 20-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
eeeeeeeehhhhhh ! ! ! !
vamos mejorando....
Hice todo lo recomandado por brakaman.
Pero usé el FlameRobin. Me pude conectar a la base de datos de ejemplo de Firebird, pero cuando intenté abrirla, ahora me dice que el password y la contraseña son incorrectos....

¿Cuáles serían estos datos?

UNa vez más quiero agradecer a todos por la ayuda.
Sin duda que este foro será muy útil para todos quienes estamos partiendo en esto, porque yo creo que todos los problemas que pueden ocurrir al iniciarse, me han sucedido a mí.... jajajajajaja
Responder Con Cita
  #24  
Antiguo 20-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Cita:
Empezado por malcomp
eeeeeeeehhhhhh ! ! ! !

¿Cuáles serían estos datos?
Para que vean que si estoy investigando por mí mismo y para todos aquellos que al igual que yo, algunas respuestas no son tan obvias:

username : SYSDBA
password : masterkey

jijiji
Responder Con Cita
  #25  
Antiguo 20-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Bien.
Ahora volví a Delphi, y puse algunos controles en el formulario principal:

tIBDatabase, tIBTransaction y tIBTable.

Están todos conectados entre sí. Puedo ver las tablas de la base, y los nombres de los campos.

Ahora ando buscando un control tipo DBGrid, que me permita simplemente ver los datos de la tabla en la pantalla.

Responder Con Cita
  #26  
Antiguo 20-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Son los componentes Standard DBGrid y DataSource, que se encuentran en las carpetas Data Access y Data Controls

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #27  
Antiguo 20-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Cita:
Empezado por egostar
Son los componentes Standard DBGrid y DataSource, que se encuentran en las carpetas Data Access y Data Controls
No lo puedo creer.
Amigos, he creado mi propia tabla, con el código, el nombre, dirección y teléfono de los contactos y.. ¿Lo pueden creer? Los puedo ver a través de un formulario creado con Delphi.

Muchas gracias a todos por la ayuda brindada.

Ahora trataré de seguir adelante. Algo sé de SQL, dado que ya trabajé con Access, por lo que creo poder armar una instrucción SQL.

Espero que cualquier otra duda, me ayuden a resolverla.

Saludos desde Chile, y muchas gracias.

Responder Con Cita
  #28  
Antiguo 20-07-2007
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Hola amigo:

Me alegro mucho que hayas podido "Conectar" con Firebird.

Me parece muy bien que utilices software opone source como el Flame Robin, aunque mi deber es aconsejarte, que por lo menos para mi. El IBEXPERT aun en su version personal es muy superior al flame Robin.

Sobre todo si necesitas introducir datos para pruebas, en el Flame esta opcion esta un poco dejada de la mano de Dios.....
Tambien en los Triggers es un poco mas facil en IBExpert.

En fin son gustos, pero....
Responder Con Cita
  #29  
Antiguo 20-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Brakaman: Te agradezco tus nuevos consejos.
Voy a intentar con IBExpert, aunque yo creo que dentro de algunos días más cuando maneje bien el tema de las conexiones y demás.

Saludos a todos y gracias.
Responder Con Cita
  #30  
Antiguo 21-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Bien. Ya he creado una base de datos con dos tablas de ejemplo. Una con los nombres de personas (Código, Nombre, Dirección) y la otra tabala con los nombres de los hijos de cada una de estas personas (CodigoPadre, NombreHijo).

Las poblé manualmente y en el formulario de Delphi, puedo ver la información relacionada adecuadamente.

Ahora, quiero llenar la tabla HIJOS, pero usando un cuadro de diálogos donde se pida el nombre. Para guardar los datos, necesito obtener el código del padre desde la Tabla PADRES, para copiarlo en el campo CodigoPadre de la tabla HIJOS.

Hebuscado todos las propiedades de las tablas tIBTables, pero no encuentro cuál es la propiedad que contiene el valor almacenado en CODIGO. Es decir, necesito saber cómo acceder a los valores de las tablas.

Agradezco su cooperación y sobretodo su paciencia.
Responder Con Cita
  #31  
Antiguo 21-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
El asunto que el dataset es el conjunto de campos y/o registros, o sea que debes acceder a cada elemento de ese conjunto, para los campos el conjunto "Fields" indicando el indice del campo:

Tabla1.Fields[0].AsString

o puedes hacerlo de la manera facil

Tabla1.FieldbyName('MiCampo').AsString
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #32  
Antiguo 21-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Aquí vamos de nuevo con otra pregunta.

Cuando deseo ocupar un control que muestre datos de una tabla, (Grid, ComboBox, etc.) ¿Siempre se deben crear objetos IBDataBase, IBTransaction IBTable e IBDataSource?

Saludos.
Responder Con Cita
  #33  
Antiguo 21-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por malcomp
Cuando deseo ocupar un control que muestre datos de una tabla, (Grid, ComboBox, etc.) ¿Siempre se deben crear objetos IBDataBase, IBTransaction IBTable e IBDataSource?
Hola malcomp,
La respuesta es SI.
Esos componentes son los que en verdad acceden a la base de datos. Sin ellos no podrías comunicarte con la base de datos.

Puedes "manejar" a esos componentes de tres maneras:
1. Dejarlos creados en tiempo de diseño con algunas propiedades con algún valor por default.
2. Crear los componentes bajo demanda, en tiempo de ejecución. Es decir que cuando sea necesario crearlos, usarlos y al finalizar la operación liberar la memoria.
3. Emplear un Módulo de Datos. Que es como un "formulario" en donde puedes colocar los Datasource, los transaccion, database, querys... Con esto consigues tener todo lo referido a "base de datos" en un solo lugar en vez de estar dispersando por todos lados los componentes.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #34  
Antiguo 22-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Delphius:
Estuve revisando las bases de datos de DEMOS de Delphi, y justamente la opción 3 es la que usan en una de ellas.
Me pareció la mejor, ya que con un solo formulario, tienes todo disponible para el resto de las aplicaciones.

En este momento estoy desarrollando una aplicación pero como estoy en período de aprendizaje con este tema, creo que probaré distintas opciones, y ahí veo cuál me acomoda más, pero por ahora, me gustó mucho la 3.

Gracias y saludos.
Responder Con Cita
  #35  
Antiguo 22-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola malcomp,

Cita:
Empezado por malcomp
En este momento estoy desarrollando una aplicación pero como estoy en período de aprendizaje con este tema, creo que probaré distintas opciones, y ahí veo cuál me acomoda más, pero por ahora, me gustó mucho la 3.
Tu experimenta... y usa la que más te resulte cómodo.
Aunque la opción 1 es la más fácil de emplear (y por lo general la primera que se estudia) tiene un defecto muy grande: estarás mezclando la interfaz con la capa de acceso a datos. Lo cual lleva a una mayor dependencia entre la interfaz y la base de datos.

La opción 3, en cambio, que a mi modo de ver y entender, es la más recomendable. Ya que el canal de comunicación entre la interfaz y la base de datos es más delgado, mucho más "modular" (por ponerle un nombre).

La implementación de los módulos de datos es una extensión de la segunda opción. Esto quiere decir que puedes crear/destruir (abrir/cerrar) varios módulos de datos de forma tal que consigas separar el "modelo de datos" en varios módulos más o menos independientes. Por ejemplo: supongamos que tu tienes 3 módulos: Clientes, Ventas, Compras. Cada uno tiene lo necesario para acceder a una PARTE de la base de datos. Esto te permite reducir memoria y trabajar solo con lo necesario según se necesite. Por ponerte otro ejemplo: quien tenga un permiso para cargar Compras, solo debe tener creado el módulo de compras (y el de la conexión)... ¿Para qué cargar con tantas cosas si solo a él le interesa compras?

La elección de como distribuir los módulos dependerá también de las necesidades de mantenimiento, de la complejidad del sistema y otros factores más... Por lo general, si se sabe que el sistema es grande, y complejo... crear los módulos por demanda es una muy buena opción.

A los fines de tu práctica... comienza con uno solo. Después sigue avanzando.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #36  
Antiguo 22-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Cita:
Empezado por Delphius
Tu experimenta... y usa la que más te resulte cómodo.
Según mi forma de ver, también la 3 es la mejor.

Por ahora, tengo otra pregunta.
En access, existe un atributo que se le puede agregar al campo Clave Principal, que hace que los valores se generen automáticamente de forma incremental. Se llama AUTONUMERICO.

¿Se puede hacer lo mismo con FireBird?

Responder Con Cita
  #37  
Antiguo 22-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Por ahora, tengo otra pregunta.
En access, existe un atributo que se le puede agregar al campo Clave Principal, que hace que los valores se generen automáticamente de forma incremental. Se llama AUTONUMERICO.

¿Se puede hacer lo mismo con FireBird?
Si, se puede conseguir este efecto empleando los generadores y tiggers.

A modo de ejemplo:

Este es el tigger que se encarga de generar el número antes de insertar (Before insert)

Código SQL [-]
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN

    if (new.cust_no is null) then
    new.cust_no = gen_id(cust_no_gen, 1);
END
^

SET TERM ; ^

Y Este es un generador, que se encarga de incrementar de uno en uno. Por ello es el valor 1. Puedes conseguir incrementar de ha saltos mayores cambiandolo:

Código SQL [-]
CREATE GENERATOR CUST_NO_GEN;
SET GENERATOR CUST_NO_GEN TO 1;

Para mayor info, busca en los foros que se trató el tema.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #38  
Antiguo 22-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Costó un poco, pero funcionó.

Ahora, he creado el firmulario MyFormData, donde he puesto todas las conexiones. Tengo la IBDataBase, IBTransaction, y todas las IBTables y DataSources necesarias.

Esto queda en una unidad llamada MyFormData.

Tengo unas dll que utilizan esta unidad (uses MyFormData) y en tiempo de diseño, puedo ver los datos que están dentro de una las tablas, ya que para probar tengo todas las conexiones activadas.

Sin embargo, cuando ejecuto la aplicación, las columnas están vacías e incluso se ve sólo una columna sin siquiera poder ingresar datos.


¿Alguien sabe qué puede ser esto?

Si pongo los objetos para conexión (IBDataBase, etc) en el mismo formulario, todo funciona ok, pero cuando los objetos están en el formulario de datos (DataModule), no puedo ver los datos.

Saludos y gracias.
Responder Con Cita
  #39  
Antiguo 22-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino
Solucionado:

Al crear al formulario, en el evento OnCreate, también se crea el DataModule. Yo pensaba que estaba disponible de inmediato.

Al momento de cerrar el Formulario, aplico un FreeAndNil y listo.
Responder Con Cita
  #40  
Antiguo 28-07-2007
malcomp malcomp is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
malcomp Va por buen camino

Muchas gracias a todos.
Ahora realmente puedo trabajar.
Estoy haciendo algunas pruebas y prácticas y pornto mudaré todos mis programas con archivos planos a bases de datos.

Nuevamente muchas gracias a todos quienes me orientaron en el tema. Ahora debo realizar un poco de prácticas en SQL, pero eso, por ahora, es lo de menos para mí. Con ayuda de Access y el Libro Negro de Delphi, estoy haciendo lo que necesito.

Saludos a todos.
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
Comenzar con Java Caral JAVA 31 19-08-2007 16:58:10
Como comenzar con mysql Ferml2007 SQL 2 20-01-2007 07:05:06
Comenzar con firebird 2 sitrico Conexión con bases de datos 8 16-12-2006 03:37:09
Como comenzar a trabajar con PHP? xer0-q PHP 2 26-12-2005 20:24:38
Como comenzar a trabajar con PHP? xer0-q Varios 1 24-12-2005 21:31:34


La franja horaria es GMT +2. Ahora son las 18:12:33.


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