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 17-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Conectar Firebird Python 3.5

Hola:
Agradecería información y código como conectar Python 3.5 con Firebird 2.x.

No estoy seguro de cual es el conector, creo es 'fdb', pero no consigo instalarlo.

En Python 2.7 si que consigo instalar el conector 'fdb', pero no consigo acerta con el código y no hay forma de cnectar el código que utilizo es este:
********************
import fdb
con = fdb.connect(dsn='localhost:d:2016.fdb',user='sysdba',password='masterkey')
**********************

Dinde: localhost:d:2016.fdb

son servidor, ruta y nombre bd, respectivamente.

Agradecido de antemano.

Saludos.
Responder Con Cita
  #2  
Antiguo 17-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Pero tienes controlador para firebird?
Responder Con Cita
  #3  
Antiguo 17-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
hola casimiro, gracias por contestar.

tengo el controlador fdb' en pytho, 2.7 va pero no acierto con el código para conectar por mas que lo intento, en Python 3.5 no va.

a ver si pudieras indicarme un controloador adecuado y el codigo de conexión en su caso.

te reitero mi agradecimiento.
Responder Con Cita
  #4  
Antiguo 18-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira esta documentación en línea, ahí lo explican.
Responder Con Cita
  #5  
Antiguo 18-02-2016
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
No conozco Python pero creo de toda la vida en Windows, Linux y/o en Mac se debe definir el path con las barras \ o / según el caso.
Y en tu código no se ve ninguna después de D:

Y el user por defecto en Firebird es con mayúsculas: SYSDBA.

Por cierto, si te arroja un error, mínimo deberías decirnos cual es el error.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 18-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
No conozco Python pero creo de toda la vida en Windows, Linux y/o en Mac se debe definir el path con las barras \ o / según el caso.
Y en tu código no se ve ninguna después de D:
Si está en el directorio raiz, no es necesario.

Cita:
Empezado por Delphius Ver Mensaje
Y el user por defecto en Firebird es con mayúsculas: SYSDBA.
También lo acepta en minúsculas.

Cita:
Empezado por Delphius Ver Mensaje
Por cierto, si te arroja un error, mínimo deberías decirnos cual es el error.
Saludos,
Eso sí
Responder Con Cita
  #7  
Antiguo 18-02-2016
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 Casimiro Notevi Ver Mensaje
Si está en el directorio raiz, no es necesario.
Pos, que cosas raras esas.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
También lo acepta en minúsculas.
Cierto. Se me había pasado ese detalle que para Firebird le da lo mismo SYSDBA que sysdba en el nombre del usuario. Estoy tan acostumbrado a escribirlo en mayúscula que olvidé esto. A mi parecer no debería de ser asi. Yo tengo la idea de que no debiera de ser lo mismo escribir pepito que PePito.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 18-02-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si está en el directorio raiz, no es necesario.


No entiendo por qué dices que no es necesario. Por otra parte, en la documentación no veo referencias a que haya distinciones entre unix y windows por lo que me parece que la línea tendría que ser así:

Código:
con = fdb.connect(dsn='localhost:d:/2016.fdb',user='sysdba',password='masterkey')
LineComment Saludos
Responder Con Cita
  #9  
Antiguo 18-02-2016
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 roman Ver Mensaje


No entiendo por qué dices que no es necesario. Por otra parte, en la documentación no veo referencias a que haya distinciones entre unix y windows por lo que me parece que la línea tendría que ser así:

Código:
con = fdb.connect(dsn='localhost:d:/2016.fdb',user='sysdba',password='masterkey')
LineComment Saludos
Precisamente como en los ejemplos como el que hay en el enlace de Casimiro vi que en el path siempre estaban las barras es que yo comenté que les hace falta las barras... y tiré por las dudas que sean dependientes del SO.
Pero como Python es un desconocido para mi, prefiero darle el benficio a las palabras de Casi. Puede que el sepa algo que a nosotros se nos escape y que efectivamente si es como dice que si está en la raiz no hace falta la barra.

Ya nos aclarará el seguro.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 18-02-2016
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,

a mi me funciona perfectamente haciendo esto.

WinXP, Python 2.7.9

Código SQL [-]
import fdb
# CONEXION FIREBIRD
cnxn = fdb.connect(dsn='localhost:C:\dir1\INFORMES.FDB',user='sysdba',password='masterkey' )
cursor = cnxn.cursor()

cursor.execute('SELECT * from TABLA')
rows = cursor.fetchall()

for row in rows :
        print row[0]

print "registros: ", len(rows)

cursor.close

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #11  
Antiguo 18-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Muchas gracias Casimiro por tu ayuda en información, si lo soluciono lo comento.
Responder Con Cita
  #12  
Antiguo 18-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
No entiendo por qué dices que no es necesario. Por otra parte, en la documentación no veo referencias a que haya distinciones entre unix y windows por lo que me parece que la línea tendría que ser así:
Código:
con = fdb.connect(dsn='localhost:d:/2016.fdb',user='sysdba',password='masterkey')
LineComment Saludos
Cita:
Empezado por Delphius Ver Mensaje
Precisamente como en los ejemplos como el que hay en el enlace de Casimiro vi que en el path siempre estaban las barras es que yo comenté que les hace falta las barras... y tiré por las dudas que sean dependientes del SO.
Pero como Python es un desconocido para mi, prefiero darle el benficio a las palabras de Casi. Puede que el sepa algo que a nosotros se nos escape y que efectivamente si es como dice que si está en la raiz no hace falta la barra.
Ya nos aclarará el seguro.Saludos,
Obviamente, es conveniente poner la barra para que no haya equívoco, pero si está directamente en el directorio raiz, no debería ser necesario, aunque yo también la pongo por asegurarme.
Y funcionar, tiene que funcionar, ¿lo habéis probado?
Responder Con Cita
  #13  
Antiguo 18-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Gracias delphius, efectivamente llevas razón con la barra, en este caso es inclinada a la derecha.

El usuario (sysdba), es indiferente mayúscula o minúscula.

El código correcto es el que comenta y publica Roman:

con = fdb.connect(dsn='localhost:d:/2016.fdb',user='sysdba',password='masterkey')

Gracias a todos y a quien pudiera ayudar, solucioné el tema con Python 2.7.11, me queda en Python 3.5 que parece ser el controlador fdb' no es compatible, si alguien tiene idea... por favor.

Gracias a:

Casimiro, Roman, Delphius y fjcg02.
Responder Con Cita
  #14  
Antiguo 18-02-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
pero si está directamente en el directorio raiz, no debería ser necesario, aunque yo también la pongo por asegurarme.
Sigo sin entender porqué dices esto. Si es por algo particular de los conectores en python entonces ciertamente lo desconozco. Pero si es por analogía a las rutas en windows, recuerdo que D: no es necesariamente equivalente a D:\ ya que la letra de unidad seguida de dos puntos se refiere siempre al directorio actual en esa unidad, que no necesariamente es la raíz.

LineComment Saludos
Responder Con Cita
  #15  
Antiguo 18-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Sigo sin entender porqué dices esto. Si es por algo particular de los conectores en python entonces ciertamente lo desconozco. Pero si es por analogía a las rutas en windows, recuerdo que D: no es necesariamente equivalente a D:\ ya que la letra de unidad seguida de dos puntos se refiere siempre al directorio actual en esa unidad, que no necesariamente es la raíz.
LineComment Saludos
Quería decir que no deber ser totalmente necesario (sintácticamente) poner la barra si la base de datos está en la raiz del disco. Imagina un disco que se usa únicamente para almacenar la base de datos, siempre que conectara a D:basedatos.fdb la encontraría sin problemas, aunque no ponga la barra.
Aunque, por supuesto, es conveniente ponerla para asegurar que siempre toma el camino correcto a la raiz, y evitar posibles problemas.
Responder Con Cita
  #16  
Antiguo 18-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Efectivamente Casimiro llevas razón en parte, pero te diré que observo que el formato y sentido de ruta windows o dos, no es lo mismo que el que exige Pytho 2.7 11 en este caso y se debe al controlador.
Lo mismo otra versión del controlador exige otro formato de ruta, me inclino a que si.

Muchas gracias por tu inestimable ayuda.
Responder Con Cita
  #17  
Antiguo 18-02-2016
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
Para saber si es cosa del controlador que no es soportado en 3.5 deberías contactar al grupo de soporte de Firebird.

A mi la última duda que me queda, ya de curioso nomás, es si el sentido de las barras en la ruta depende del SO o si es indistinto. Python que yo sepa es multiplataforma por lo que puede correrse en Windows y Linux. Y al menos en Windows lo más de esperarse es que si uno intenta abrir el directorio bla/bla/bla se dará con sorpresas.

Esto lo pregunto porque fjcg02 escribió el path con \, lo que sugiere que se está corriendo en Windows, mientras que todos los ejemplos consultado en la documentación del enlace que puso Casimiro hacen pensar en Linux (o Mac).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #18  
Antiguo 19-02-2016
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Respondiendo a Delphius,

en este pc que estoy utilizando con WXP, TAMBIEN FUNCIONA con / en vez de \, lo acabo de confirmar.

En un equipo con linux, fijo que es la barra /

Saludos

Código SQL [-]
import fdb
# CONEXION FIREBIRD
cnxn = fdb.connect(dsn='localhost:C:/dir1/INFORMES.FDB',user='sysdba',password='masterkey' )
cursor = cnxn.cursor()
# acceder a la SQL del archivo

cursor.execute('SELECT * from FESTIVOS')
rows = cursor.fetchall()

#print row
for row in rows :
        print row[0]

print "registros: ", len(rows)

cursor.close
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #19  
Antiguo 19-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Casimiro, ubiqué la bd en directorio raíz D: a conciencia y si no se pone / echa error sintaxis.

Utilizo Python 2.7.11 en windows 10
Responder Con Cita
  #20  
Antiguo 19-02-2016
agtisa agtisa is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 7
Poder: 0
agtisa Va por buen camino
Muchas gracias fjcg02.
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
firebird con Python JXJ Firebird e Interbase 2 09-05-2012 22:02:30
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 05:19:15
conectar Firebird y DBE miguel_e Firebird e Interbase 4 16-06-2008 18:38:39
python & firebird 2.0 papa_naturaleza Firebird e Interbase 0 17-11-2007 17:30:26
conectar firebird con asp berfer Firebird e Interbase 4 06-09-2006 19:14:41


La franja horaria es GMT +2. Ahora son las 08:02:54.


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