Como establecer conexión desde firebird

Excúsame por preguntarte otra vez con respecto a la conexión estable a la base de datos intente con este código pero me da un valor falso

public nResultado

oSQL = CreateObject("SQL_DATABASE")
with oSQL
.HallarNombreDriver("Firebird")
.cServidor = "localhost"
.cBaseDatos = "C:\DATA_BASE.FDB"
.lTerminarConexion = .F.
.cUsuario = "sysdba" 
.cContrasena = "masterkey"
.EstablecerEntorno()
.Conectar_sin_DSN()
if .nResultado < 0 && Error, no pudo conectarse a la Base de Datos SQL
do MENSAJE_ERROR with "¡¡¡NO ME PUDE CONECTAR A LA BASE DE DATOS!!!" + Chr(ENTER_KEY) + Chr(ENTER_KEY) ;
+ "Ocurrió un error cuando intenté conectarme a:" + CHR(ENTER_KEY) + oSQL.cBaseDatos + CHR(ENTER_KEY) ;
+ "Este Sistema finalizará ahora."
On shutdown
Cancel
Endif
Endwith

MessageBox(nresultado)

La conexión estable no la pude conseguir

Disculpa pero no había trabajado con base de datos externa

Respuesta
1

El firebird es algo medio nuevo para los de foxpro... no te preocupes.. que paso a paso podemos ir sacando consultas por acá.. que también serán útiles a otros con tus dudas! :) Así que pregunta lo que quieras! No hay problema! Al contrario.. muy agradecido con vos!

Bien.. ahora veamos.. una conexión debe ser sencilla para no complicarnos la vida... mira como lo establezco yo y jamas me ha dado errores:

PUBLIC PHandle_Ident

**--
LOCAL lcCadenaConexion, nHandle
**--

**--Establecemos la cadena de conexion
lcCadenaConexion = "DRIVER=Firebird/InterBase(r) driver; uid=SYSDBA; pwd=masterkey;" ;
+ "DBNAME=C:\OlausFDB\Olaus.FDB;"
**--Establecemos la conexion con el origen de datos
nHandle = SQLStringConnect(lcCadenaConexion)

**--Si retorna nHandle > 0, es exitósa.
**--Si retorna nHandle < 0, no es exitósa.
IF nHandle > 0

MESSAGEBOX("Conexion exitosa", 64, "Olaus")
ELSE
MESSAGEBOX("Fallo en la conexion con la Base de Datos. Verifique", 48, "Olaus")
PHandle_Ident = -1
*MESSAGEBOX(Handle_Ident)
* ON SHUTDOWN
* CANCEL
**--||
RETURN TO MASTER
**--||

ENDIF

**--Si la conexion se realiza exitosamente, cargamos el identificador
**-- de conexion para toda la aplicacion.
PHandle_Ident = nHandle
*MESSAGEBOX(PHandle_Ident)

**---------------------------------------

Bien.. ahora mira esta linea: 

lcCadenaConexion = "DRIVER=Firebird/InterBase(r) driver; uid=SYSDBA; pwd=masterkey;" ;
+ "DBNAME=C:\OlausFDB\Olaus.FDB;"

Uid=SYSDBA es el usuario host de la base de datos. En este caso.. te ejemplifico con SYSDBA que es como un usuario maestro por defecto del firebird... y en pwd =masterkey que es la contraseña maestra del firebird también por defecto. Con este usuario y pass... tienes acceso libre a toda la BD.. absolutamente a todo.. ! No es recomendable dejar a los clientes de tu sistema este pass y usuario.. debes crear roles (más adelante lo veremos) y otros usuarios con los debidos accesos limitados. Luego sustitui DBNAME=C:\OlausFDB\Olaus.FDB; con la ruta de la BD.

Te aclaro algunas cosas importantes: acá te ejemplifico como se conecta de una forma totalmente simple. CUando se trata ya de una aplicación.. hay que tener en cuenta ciertas normas de seguridad. Por ejemplo... este código.. ves que la ruta de la BD es el disco duro...! Esto es porque yo tengo instalado el proyecto de VFP + BD en la misma pc.. que hace de server. Por tanto no hay pedo. Pero para las maquinas que serán clientes... es decir que solo se conectan a la BD pero no la tienen instalada.. es decir, solo tienen el .exe de VFP pero se conectan por red (local) al server... ahí la cosa es más delicada. Debes establecer la ruta con un string o cadena de conexión que te permita ocultar la dirección y hasta el nombre de la BD.. esto dado que nadie (cliente) debe saber la ubicación de la BD para evitar problemas. Solo el administrador. Más adelante podemos ver eso... para que no te compliques por ahora! Anota esa consulta para hacérmela posterior.

Ahora... cuando vos entras al firebird... debes registrar el usuario host y la base de datos a la cual t vas a conectar. Ohhh alto! ¿Qué administrador gráfico usas? ¿Para firebird? Bajaste el SQL manager lite interbase/firebird??? Ese es gratis en la version LITE! ¿Ya lo tienes? Bajalo y lo instalas! ¿Ya hiciste esa parte? Avisame! Seguramente te dará un error con un archivo que debe ubicarse (dll) del firebird... avisame si ya hiciste este paso! Mientras no lo hagas no te podrás conectar. En firebird das click en DATEBASE y escoge REGISTER HOST y ahí veras que debes darle un nombre al host y la ruta de la BD que pretendes conectar (como administrador). Una vez registrado ya podes hacer la conexión.

Ahora... recordá que debes instalar el driver del ODBC del firebird el cual es el

Firebird_ODBC_2_0_0_148_win32

E instalarlo. Ahí hay algunas opciones. También el servicio de firebird debe estar configurado para que arranque cada vez que inicia el server... esto para que el firebird funcione con tu administrador gráfico. Para esto: busca en tu pc (¿imagino qué tienes windows 7 vdd?) En inicio escribí SERVICES o SERVICIOS (según si tienes W en ingles o español) y le das click...! Ahí buscas el servicio en la lista que diga firebird y firebird guardian! Y asegurate que el estado este activo y que se inicie al arrancar el sistema.

Bien... tienes bastante trabajo! Con esto marcamos el inicio. Anda configura esto que te he dicho y me avisas! No te preocupes si lo ves complicado al principio... solo avisame y armate de paciencia para que vayas haciendo paso a paso y comprendiendo. Lo que sea... por muy mínimo que te genere duda... escribila! Ninguna pregunta esta de más ni es tonta! :) Preguntando se aprende! Hubiese deseado tener a quien preguntarle cuando empecé hahaha pero me tuve que fiar solo de manuales y ahí si fue re complicado hahaha!

Bien... prueba y estoy a la orden...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas