CONEXAO FIREBIRD
Bom dia a Todos, achei esse código na net, conexão com firebird
porem, funciona tudo em um formulário
gostaria da ajuda dos amigos, preciso fazer uma unica conexão, ou seja, em um módulo,
e abrir e fechar quando precisar nos insert, update, select... etc....
quem poder ajudar, qual seria a melhor prática nesse caso,
abrigado a todos..
porem, funciona tudo em um formulário
gostaria da ajuda dos amigos, preciso fazer uma unica conexão, ou seja, em um módulo,
e abrir e fechar quando precisar nos insert, update, select... etc....
quem poder ajudar, qual seria a melhor prática nesse caso,
abrigado a todos..
Module Module1
Dim conexao As FbConnection
Dim stringconexao As New FbConnectionStringBuilder
Private Sub PreparaConexao()
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
End Sub
Private Sub AbreConexao()
conexao.ConnectionString = stringconexao.ToString
conexao.Open()
End Sub
Private Sub FechaConexao()
conexao.Close()
End Sub
End Module
Passo 1: Crie uma classe com as funções necessárias.
Por exemplo Consulta, Incluir, Alterar, Excluir. Essas funções podem receber as instruções SQL, executá-las e devolver o resultado.
Passo 2: Nos seus formulários, chame as funções dessa classe, ao invés de criar um novo conector.
Com o tempo, você pode ir aprimorando essa mesma classe para receber parâmetros, para trabalhar com Stored Procedures, para efetuar operações de manutenção do próprio banco de dados, dentre outras.
Você começou com o pé direito, ou seja, já copiou o [Ô]pontapé inicial[Ô], que é a chave da coisa toda. Agora, com base nesse código, poderá desenvolver o que mais venha á ser necessário para a sua aplicação. Aconselho á fazer manualmente você mesmo, para que possa entender o que está acontecendo.
Por exemplo Consulta, Incluir, Alterar, Excluir. Essas funções podem receber as instruções SQL, executá-las e devolver o resultado.
Passo 2: Nos seus formulários, chame as funções dessa classe, ao invés de criar um novo conector.
Com o tempo, você pode ir aprimorando essa mesma classe para receber parâmetros, para trabalhar com Stored Procedures, para efetuar operações de manutenção do próprio banco de dados, dentre outras.
Você começou com o pé direito, ou seja, já copiou o [Ô]pontapé inicial[Ô], que é a chave da coisa toda. Agora, com base nesse código, poderá desenvolver o que mais venha á ser necessário para a sua aplicação. Aconselho á fazer manualmente você mesmo, para que possa entender o que está acontecendo.
Melhor forma, seria criar uma classe especializada para isso, ao invés de um módulo.
Deixe todos os métodos encapsulados nessa classe.
Uma classe bem simples nesses moldes, teria os seguintes métodos:
ExecutaComando(comando as string)
RetornaDataTable(select as string)
RetornaEscalar(select as string)
Toda vez que algum desses métodos fosse chamado, você faria a conexão, executaria e fecharia ele.
A variável de conexão poderia ser local mesmo, aà você usaria o Dispose toda vez depois que ela fosse usada.
Abraços!
Deixe todos os métodos encapsulados nessa classe.
Uma classe bem simples nesses moldes, teria os seguintes métodos:
ExecutaComando(comando as string)
RetornaDataTable(select as string)
RetornaEscalar(select as string)
Toda vez que algum desses métodos fosse chamado, você faria a conexão, executaria e fecharia ele.
A variável de conexão poderia ser local mesmo, aà você usaria o Dispose toda vez depois que ela fosse usada.
Abraços!
Amigos, boa noite,
conforme indicação, coloquei a conexão com o bd, via class,
agora no form, como faço para abrir e fechar a cada insert ?
conforme indicação, coloquei a conexão com o bd, via class,
Imports FirebirdSql
Imports FirebirdSql.Data
Imports FirebirdSql.Data.FirebirdClient
Public Class ClassCnn
Public conexao As FbConnection
Public stringconexao As New FbConnectionStringBuilder
Private Sub PreparaConexao()
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
End Sub
Private Sub AbreConexao()
conexao.ConnectionString = stringconexao.ToString
conexao.Open()
End Sub
Private Sub FechaConexao()
conexao.Close()
End Sub
End Class
agora no form, como faço para abrir e fechar a cada insert ?
Bom dia, pessoal, algum amigo tem alguma ajuda como posso fazer iniciar o insert no form chamando a abertura do banco de dados pela class acima ?
Por exemplo, fazendo um login e validando.
Por exemplo, fazendo um login e validando.
Não crie subs, crie functions, elas retornam algo, e, se você criar como private, só poderá ser usada na classe. então crie public functions
um exemplo
Private Function PreparaConexao() as FbConnectionStringBuilder
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
return stringconexao
End Function
um exemplo
Private Function PreparaConexao() as FbConnectionStringBuilder
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
return stringconexao
End Function
sim, verdades, eu já havia corrigido...
eu preciso entender e se como esta aqui pode ficar assim, ou tem coisas inúteis,
entender
e claro, como devo chamar lá no formulário, por exemplo, em um insert ou simplesmente uma query de login
eu preciso entender e se como esta aqui pode ficar assim, ou tem coisas inúteis,
entender
e claro, como devo chamar lá no formulário, por exemplo, em um insert ou simplesmente uma query de login
Imports FirebirdSql
Imports FirebirdSql.Data
Imports FirebirdSql.Data.FirebirdClient
Public Class ClassCnn
Public Conexao As FbConnection
Public Stringconexao As New FbConnectionStringBuilder
Public Sub PreparaConexao()
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
End Sub
Public Sub AbreConexao()
Conexao.ConnectionString = Stringconexao.ToString
Conexao.Open()
End Sub
Public Sub FechaConexao()
Conexao.Close()
End Sub
End Class
Ninguém... ?
Tenta algo assim:
Digitei no bloco de notas, então pode ter tido digitação ou sÃntaxe errada (porque tava mexendo num c# agora, aà tem a memória muscular .. rs)
Mas a ideia é essa.
private function RetornaStringConexao() AS String
dim Stringconexao As New FbConnectionStringBuilder
stringconexao.ServerType = FbServerType.Default
stringconexao.DataSource = [Ô]172.0.0.1[Ô]
stringconexao.UserID = [Ô]SYSDBA[Ô]
stringconexao.Port = 3050
stringconexao.Password = [Ô]masterkey[Ô]
stringconexao.Dialect = 3
stringconexao.Database = [Ô]LOCALBASEDADOS .FDB[Ô]
stringconexao.Pooling = False
return stringconexao.tostring()
End function
private function RetornaConexaoAberta() AS FbConnection
dim Conexao As new FbConnection
Conexao.ConnectionString = RetornaStringConexao()
Conexao.Open()
return conexao
End function
public function ExecutaComando(sql as string) as integer
dim retorno as integer
using con as fbConnection = retornaConexaoAberta()
using comando as new fbCommand(sql, con)
retorno = comando.executenonquery()
end using
con.close()
end using
end function
End Class
Digitei no bloco de notas, então pode ter tido digitação ou sÃntaxe errada (porque tava mexendo num c# agora, aà tem a memória muscular .. rs)
Mas a ideia é essa.
é sempre bom colocar dentro das funções o try...catch para uma melhor depuração do problema caso ocorrer.
Pessoal, ainda sem entender abrir e fechar a conexão no formulário.
Exemplo, ao abri e fechar uma query..
Exemplo, ao abri e fechar uma query..
Tópico encerrado , respostas não são mais permitidas