Visual Basic.NET - Problema al conectarse a base de datos de Firebrid

 
Vista:
Imágen de perfil de Plutarco
Val: 27
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema al conectarse a base de datos de Firebrid

Publicado por Plutarco (14 intervenciones) el 13/11/2018 20:13:09
Buenas tardes comunidad, hoy me toca pedir ayuda en vez de darla, mi problema es el siguiente:

Quiero conectarme a una base de datos de firebird a través del NET Provider, he tratado de hacerlo con las versiones 3.0, 2.5 y 2.1 de firebird y con el FirebirdClient 6.4, todos ellos descargados de la página de fierbird https://www.firebirdsql.org

El problema es que al tratar de conectarme me manda el error que no encuentra el archivo fbConnection.cs, a alguien más le ha pasado esto esto y lo ha podido resolver?

Al final logré conectarme por ODBC y con la versión 2.1 fe firebird, la cuestión es que quiero hacerlo por NET Provider, aquí el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Imports FirebirdSql.Data.FirebirdClient
Imports System.Data.Odbc
 
Public Class dbconexion
 
    Dim conexion As New FbConnection
    Dim fb_string As New FbConnectionStringBuilder
    Dim fb_conexion As New Odbc.OdbcConnection
 
Public Sub conectar()
        'Aqui mi conexión con ODBC todo bien
        Try
            conexion.ConnectionString = "dsn=FireBirdODBC;uid=sysdba;pwd=masterkey"
            conexion.Open()
            'MsgBox("Conexion exitosa!")
        Catch ex As Exception
            MsgBox("Error de Conexion ODBC " & ex.Message, MsgBoxStyle.Critical)
            End
        End Try
 
        'Aqui pasando los parametros de la conexión para firebird
        fb_string.ServerType = FbServerType.Default
        fb_string.UserID = "SYSDBA"
        fb_string.Password = "masterkey"
        fb_string.Database = "C:\EDS.fdb"
        fb_string.Dialect = 3
        fb_string.Pooling = False
        fb_string.DataSource = "localhost"
 
        Try
            'traté incluso poniendo la cadena de conexión directa
            fb_conexion.ConnectionString = "User=SYSDBA;Password=masterkey;Database=C:\EDS.fdb;     DataSource=localhost;" _
            & "Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;" _
            & "MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0"
 
            'Esta línea es la que me provoca el error
            fb_conexion.Open()
 
            If fb_conexion.State = ConnectionState.Open Then
                MsgBox("conexión establecida")
            End If
 
        Catch err As FbException
            MsgBox("no se pudo conectar")
        End Try
 
    End Sub
End Class

Muchas por tomarse el tiempo de leer y espero puedan ayudarme

Salud2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema al conectarse a base de datos de Firebrid

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 14/11/2018 19:09:57
Has probado con poner solo el nombre de la BD, sin la unidad C:?.

Cual es el mensaje de error que te tira?, eso ayudaría muchísimo.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de milton
Val: 14
Ha aumentado su posición en 11 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema al conectarse a base de datos de Firebrid

Publicado por milton (6 intervenciones) el 16/11/2018 15:13:56
Saludos plutarco,

prueba con está:

public static String pruFireb = "User=Sysdba;Password=contraseña;database=C:\\NordWindBD\\Basedato.FDB;DataSource=localhost;Port=3050;Dialect=3;Charset =ISO8859_1";

recuerda que csharp tiene secuencia de escape
\t tabulador
\\ solo la \

para que tome la cadena literalmente antepones @
public static String pruFireb = @"User=Sysdba;Password=contraseña;database=C:\NordWindBD\\Basedato.FDB;DataSource=localhost;Port=3050;Dialect=3;Charset =ISO8859_1";

puedes seguirme en mi canal ahí estoy creando un tutorial de c#2015 pero puedes trabajar con 2012 en adelante, es un sitema de facturación e inventario desde cero, con bases de datos de firebird y mysql, voy por la lección 11.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 27
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema al conectarse a base de datos de Firebrid

Publicado por Plutarco (14 intervenciones) el 29/11/2018 18:43:01
Buenos días, perdón que no haber respondido en tiempo y forma

Wilfredo, graxcias por la respuesta, si quito la ruta me dice: "An invalid connection string argument has been supplied or a required connection string argument has not been supplied."

Milton, gracias por tu comentario, el desarrollo lo estoy haciendo en Visual Basic .NET, de cualquier manera usé tu cadena de conexión y de igual manera me da el mismo error: "No se encontró FbConnection.cs"

Les comento mi problema porque tal vez y le estoy dando el enfoque equivocado

Hay un programa que siempre debe estar abierto ya que está realizando transacciones todo el tiempo, la base de datos que usa es de Firebird, lo que quiero es conectarme a esa base datos mientras está corriendo dicha aplicación.

En la programación agregué una referencia para Firebird y modifiqué el código anterior y uso el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Imports FirebirdSql.Data.FirebirdClient
 
Dim fb_string As FbConnectionStringBuilder = New FbConnectionStringBuilder
 
fb_string.ServerType = FbServerType.Default
fb_string.UserID = "sysdba"
fb_string.Password = "masterkey"
fb_string.Dialect = 3
fb_string.Database = "\Users\Public\Documents\Facturando\Electronic Document Server\EDS.fdb"
fb_string.Pooling = False
 
Try
    fbconexion.ConnectionString = fb_string.ToString
    fbconexion.Open()
 
    'MsgBox("Conexion exitosa!")
Catch ex As Exception
    MsgBox("Error de Conexion ODBC " & ex.Message, MsgBoxStyle.Critical)
    End
End Try

Con este código me aparece el siguiente mensaje:
No se encontró FbConnection.cs

Debe buscar FbConnection.cs para ver el código fuente del marco de pila de llamadas actual.



Para conectarme por ODBC, generé primero el DSN de sistema y el código me queda de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Imports System.Data.Odbc
 
 
Dim conexion As New OdbcConnection
Dim odbcreader As OdbcDataReader
Dim comando As OdbcCommand
 
Try
    conexion.ConnectionString = "dsn=" & strOdbc & ";uid=sysdba;pwd=masterkey"
    conexion.Open()
 
    'MsgBox("Conexion exitosa!")
Catch ex As Exception
    MsgBox("Error de Conexion ODBC " & ex.Message, MsgBoxStyle.Critical)
    End
End Try


Aquí se conecta excelentemente bien, mi problema es que cuando la aplicación que les comento que siempre debería estar abierta se encuentra corriendo, entonces al tratar de conectarme me manda el error:
"ERROR [08004] [ODBC Firebird Driver]File Database is not found"

Cómo puedo abrir varias instancias de esa base de datos sin que me genere error??

Saludos y espero haberme explicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 27
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema al conectarse a base de datos de Firebrid

Publicado por Plutarco (14 intervenciones) el 05/12/2018 16:18:58
Buenos días a todos, investigando más me di cuenta que el problema no era en si la base de datos, sino la aplicación que siempre debe estar abierta, quienes hicieron la aplicación no lo hicieron con una estructura cliente servidor y cuando se abre la aplicación toma la base de datos y la bloque para usop exclusivo de ellos.

Pregunta, hay manera de configurar ña base de tal manera que siempre sea compartida??

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar