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
  #1  
Antiguo 26-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
Firebird + Zeos + Delphi ¡¡ayuda!!...

Hola a todos.
mi problema es el siguiente, tengo firebird 2.0, los componetes zeos instalados en delphi 7, he creado mi base de datos (IB- Express personal) en una carpeta junto con mi proyecto (c:\prueba1) pero cuando intento conectar mi base de datos con el componente z conecction
Código Delphi [-]
database : mybase
hostname :localhost
passwor  : masterkey
protocolo :firebird 2.0
user :       sysdba

y he copiado las librerias de firebird en la carpeta de system de windows.
mas cuando intento activar mi base de datos
connected (true) me sale un error asi:

Código SQL [-]
SQL error: I/O error for ''@2'' error while triying to open file El sistema no puede hallar el archivo especifico.. error code: -902. unsefull exection causade by a system error that procedure successful of subsequent staments.

que me falta o hice mal?
gracias de antemano.
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #2  
Antiguo 26-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
Bueno solo keria decir que creo que encontre una solucion por so alguien alguna ves tiene este problema:
lo que hice fue

declarar una consatante en la unit del formulario o datamudelo
ejemplo:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB,  Grids, DBGrids, StdCtrls, ZAbstractRODataset, ZAbstractDataset, ZAbstractTable, ZDataset,
  ZConnection;
const
 namebd= 'mybase.fdb';

y luego cuando se crea el formulario esto:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin

   if zconnection1.Connected then   begin
    zconnection1.Connected:=false; end else begin
    //asignamos la base de datos
    zconnection1.Database:=
    includetrailingpathdelimiter(extractfilepath(paramstr(0)))+ namebd;
    zconnection1.Connected:=true;
    ztable1.Open;     end;

bueno kisas otros tengan otra solucion mas recomendable y estoy abierto a ellas . si creen que esto pueda ocacionar errores en el futoro de mi proyecto pudieran informarme, pues apenas estoy empesando a trabajar con bases de datos...graacias...
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #3  
Antiguo 26-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Y en tiempo de diseño debes poner la base de datos con toda su ruta completa para que el componente la pueda encontrar...


Saludos...
Responder Con Cita
  #4  
Antiguo 26-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Y en tiempo de diseño debes poner la base de datos con toda su ruta completa para que el componente la pueda encontrar...


Saludos...
disculpa mi ignorancia, pero podrias ser mas claro es que no se a que te refieres. como dije apenas estoy empezando a trabajar con firebird.

de la manera en que esta hecho el codigo puedo copiar mi carpeta en cualquier lugar (C:/, d:/, C:/carpeta/otra, etc) y aun asi abre sin problemas, podrias decirme que he hecho mal o mas bien que me falta.

saludos.
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #5  
Antiguo 26-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Lo que haces está bien, pero solo te sirve para tiempo de ejecución (Runtime), pero en tiempo de diseño (cuando estás editando el código fuente y diseñando tus formas) el componente necesita el nombre de la base de datos con su ruta completa.



Saludos...
Responder Con Cita
  #6  
Antiguo 26-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
oookkkkkk ya te entendi, jejje, te digo que al principio tenia un choke con eso jejeej, gracias por la aclaracion.. sucede que me gusta pensar en el momento del runtime, por que de esta manera si necesito llevar mi programa a otra pc evito un poco la modificacion de los componentes, no se si me entiendas.

gracias por tu comentario..
salu2
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #7  
Antiguo 26-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Está bien como piensas, pero, si en tiempo de diseño quieres ver el resultado de alguna consulta en un DBGrid, por ejemplo, necesitas tener bien configurado el componente de conexión...



Saludos...
Responder Con Cita
  #8  
Antiguo 27-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
alguien podria ayudarme a configurar mis componetes zeos para que pueda funcionar en una red.
no se si estoy aciendo lo correcto pero tengo dos pc y he creado una prueva de proyecto (la describo arriba) en mi pc principal y he puesto compartida la carpeta del proyecto mas en la segunda pc no me abre. ambas tienen winxp sp2, y le instale firebird a ambas y copie las librerias dentro de la carpeta del system de ambas pc.
pero me da un eror asi:

Código SQL [-]
sql error : unavailable database. error code : -904. Unsuccessful execution causade by an unavailable resource.

la base de dato creada entan registradas como
Código Delphi [-]
serve: remote
serve name: localhost
protocolo  : tcp/ip
serve version :firebird 2.0

que tengo que hacer para que funcione, espero puedan ayudarme gracias..
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #9  
Antiguo 27-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, ¿las dos tienen IP?, si es así:

ZConnection1:

Database: C:\base.fdb
HostName: Aquí va el IP de la primera PC en vez de Localhost
User: SYSDBA
Password: masterkey
protocol: firebird-2.0

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 27-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
hola.
cambie el localhost por la ip de mi pc donde esta el proyecto, y direccione mi base de datos con todo y el nombre en la propiedad database, pero me sigue aciendo lo mismo, alguna otra observacion que creas que me pueda ayudar..gracias
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #11  
Antiguo 27-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
¿y cual es la ruta de la base que pones?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #12  
Antiguo 27-06-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
Código Delphi [-]
connected  : true
database : C:\Documents and Settings\user\Escritorio\proyectos\prueva\MYBASE.FDB
hostname: 10.0.0.4
passwor :masterkey
protocolo : firebird 2.0
user    : sysdba

esa es la configuracion de mi zconnection, si necesitas mas detalle me dices.
¿que puede estar mal?
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #13  
Antiguo 10-07-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
saludo otra ves, como este post ya lo habia habierto no kise habrir uno nuevo, ya que aun tengo el mismo problema y buscado por miles de hilo en el foro y no he dado con mi problema todavia .

al tratar de conectar mi apliccion en red me da el siguiente error

Código SQL [-]
sql error : unavailable database. error code : -904. Unsuccessful execution causade by an unavailable resource.

como dije anterior mente tengo firebird 2.0 (en las dos pc)+ zeos..
cree mi base de datos con ib expert personal

server : remote
servername : localhost
passwor :masterkey
server version : firebird 2.0
user : sysdba
dialect 3


y configure mi z conecion de esta manera:
Código Delphi [-]
connected  : true
database : C:\Documents and Settings\user\Escritorio\administrador de inventario\base_de_datos.FDB
hostname: 10.0.0.4 --- //este valor lo cambie varias veces para probar a localhost y no tubo efecto
passwor :masterkey
protocolo : firebird 2.0
user    : sysdba

y en el datamodulo hice este codigo para el runtime
uses
Código Delphi [-]
  SysUtils, Classes, ZConnection, DB, ZAbstractRODataset, ZAbstractDataset,
  ZAbstractTable, ZDataset;
 const  mybase='base_de_datos.FDB';
.......
begin
 //asignamos la base de datos
    BASEDATOS.Database:=
    includetrailingpathdelimiter(extractfilepath(paramstr(0)))+ mybase;
    basedatos.Connected:=true;

NOTA: la aplicacion corre si problema alguno en la pc pricipal, pero en las demas no conecta la base de datos sino que da el error mencionado al principio y despues abre el programa sin base de datos.
el programa esta en una carpeta llamada
administrador de inventario, la cual esta compartida en red y esta puede ser modificada por los demas usuarios para no tener errores de almacenamiento.

espero que puedan ayudarme por favor si necesitan algun otro dato me lo puden hacer sabe.
gracias de antemano..
__________________
El fin Justifica los medios. Lo Importate es llegar

Última edición por Jheysson13 fecha: 10-07-2008 a las 18:45:45.
Responder Con Cita
  #14  
Antiguo 10-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
A ver, amigo JHeysson, ¿seguro que ambas maquinas estan interconectadas ya cada una tiene un ip distinta?, si es asi intenta hacer un ping entre ambas maquinas. En la pc Cliente la coneccion debe ser en vez de localhost el ip de la Maquina principal.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #15  
Antiguo 10-07-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Si vas a conectarte en forma local a la base de datos, el tipo de server debe estar en Local no en Remote.

En la PC principal obvio que va a correr bien el programa, ya que el servidor se está ejecuntando en esta. Pero para las otras PC's, locahost (la PC donde ejecutas) no está ejecutando un servidor de Firebird y es ahí donde viene el error.


Saludos...
Responder Con Cita
  #16  
Antiguo 11-07-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Si vas a conectarte en forma local a la base de datos, el tipo de server debe estar en Local no en Remote.

En la PC principal obvio que va a correr bien el programa, ya que el servidor se está ejecuntando en esta. Pero para las otras PC's, locahost (la PC donde ejecutas) no está ejecutando un servidor de Firebird y es ahí donde viene el error.


Saludos...
a ver si te entendi, en ves de Remote en la base de datos firebird tengo que poner local, si es asi acabo de cambiar eso y aun asi me da el mismo error...

podrias decirme como tengo que crear exactamente mi base de datos y configurar el zconection para trabajar en red si no es mucha moletia, simplemente ya he puesto mas arriba como cree mi base de datos con ib expert y como configure mi zconection. puedes hacer un ejemplo semejante al mio, solo que si funcione en red.
gracias de antemano
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #17  
Antiguo 11-07-2008
Avatar de Jheysson13
Jheysson13 Jheysson13 is offline
Miembro
 
Registrado: abr 2006
Posts: 133
Poder: 19
Jheysson13 Va por buen camino
hola de nuevo.

quieria cerrar el tema agradeciendo por su ayuda y confirmando que por fin pude hacer que funcionara en mi red..

gracias a todos y sigan asi por favor
salu2
__________________
El fin Justifica los medios. Lo Importate es llegar
Responder Con Cita
  #18  
Antiguo 13-12-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 18
lKinGl Va por buen camino
Cita:
Empezado por Jheysson13 Ver Mensaje
hola de nuevo.

quieria cerrar el tema agradeciendo por su ayuda y confirmando que por fin pude hacer que funcionara en mi red..

gracias a todos y sigan asi por favor
salu2
creo que seria bueno que publicaras como hiciste funcionar el comprotamiento de tu bd en red
__________________
Las cosas o son, o no son...
Responder Con Cita
  #19  
Antiguo 13-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 26
Delphius Va camino a la fama
No uso Zeos, pero Firebird si. Sólo hay que tener presente esto:

1. En los clientes, la conexión debe ser del tipo "Remote", y no local.
2. En HostName debe ir ya sea la IP del server, o el nombre asignado. Localhost siempre se auto apuntará.
3. El puerto 3050 debe estar disponible.
4. No se necesita compartir el directorio donde estará la DB. ¿Para que compartir y hacer visible a los clientes donde está la base?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #20  
Antiguo 17-12-2008
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 22
Sick boy Va por buen camino
Unos pequeños detalles.
Cita:
En HostName debe ir ya sea la IP del server, o el nombre asignado. Localhost siempre se auto apuntará.
Tal y como el crea el nombre de la conexion, no se auto apuntará localhost, de hecho, sin el localhost no le va a funcionar en Vista.
El host, la ip, nombre asignado o localhost hay que indicarselos explicitamente.

Cita:
4. No se necesita compartir el directorio donde estará la DB. ¿Para que compartir y hacer visible a los clientes donde está la base?
Totalmente de acuerdo.
No es que no lo necesite, es que no debe hacerlo, en ninguna circunstancia.
Posibles problemas, por ejemplo, que un usuario copie o mueva la carpeta para hacer un backup. Muy probablemente corromperian la BBDD.
Sin hablar de que cualquier usuario de la red puede copiarse la base de datos y llevarsela a su casa (si sabes hacerlo, puedes evitar la corrupcion de datos), con la consiguiente brecha de seguridad.
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
Ayuda: No he podido instalar Zeos 6.6.2-rc en Delphi 2007 hmrvivas Conexión con bases de datos 1 30-06-2008 06:45:48
Transacciones FireBird con Zeos vichovi Conexión con bases de datos 3 13-07-2005 09:49:29
Ayuda con delphi y zeos Antost Conexión con bases de datos 9 25-04-2005 18:25:47
¡¡ ayuda a un novato en mysql+zeos+delphi !! miguelogm Conexión con bases de datos 1 14-03-2005 19:04:12
Firebird + Zeos LordSigma Firebird e Interbase 1 23-11-2004 16:46:34


La franja horaria es GMT +2. Ahora son las 01:51:20.


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