CONECTAR COM BANCO DE DADOS PARA TESTE
Bom dia pessoal.
Tenho o arquivo executável e o banco de dados dentro da pasta Debug do projeto.
Queria abrir outra pasta dentro do Debug chamada Teste : c\........\Debug\Teste
Dentro da pasta c\.......\Debug\Teste queria copiar o banco de dados, para ir realizando testes sem afetar o banco oficial.
AÃ, é mais ou menos assim: digitaria usuário: TESTE e aà o programa entende que a conexão vai ser com o arquivo da pasta \Teste, se for outro usuário, se conecta normalmente com o banco oficial.
Hoje eu tenho um módulo (INICIALIZACAO) onde eu tenho a variável pública conexão:
Então, teria que ser algo semelhante a:
Alguém me dá uma luz, por favor?
Tenho o arquivo executável e o banco de dados dentro da pasta Debug do projeto.
Queria abrir outra pasta dentro do Debug chamada Teste : c\........\Debug\Teste
Dentro da pasta c\.......\Debug\Teste queria copiar o banco de dados, para ir realizando testes sem afetar o banco oficial.
AÃ, é mais ou menos assim: digitaria usuário: TESTE e aà o programa entende que a conexão vai ser com o arquivo da pasta \Teste, se for outro usuário, se conecta normalmente com o banco oficial.
Hoje eu tenho um módulo (INICIALIZACAO) onde eu tenho a variável pública conexão:
Public conexao As New System.Data.OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Banco_Dados.mdb[Ô])
Então, teria que ser algo semelhante a:
If _usuario = [Ô]TESTE[Ô] Then
conexao = New OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Teste\Banco_Dados.mdb[Ô])
Else
conexao = New OleDb.OleDbConnection([Ô]Provider=Microsoft.Jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Banco_Dados.mdb[Ô])
End If
Alguém me dá uma luz, por favor?
Tu tá no caminho certo. A lógica é essa mesmo.
Creio q seu módulo seja uma classe. Sendo uma classe você pode instanciar ela. Seria legal eu ver seu módulo pra te dizer o que poderia ser feito. Mas baseie-se por essa classe de conexão abaixo:
Repare que o método new é o construtor da classe. E toda vez que vc for instancia-la de oura classe, deve passar pro parametro _usuario o usuário logado. Tipo assim:
se for TESTE
Dim conexao As New Conexao([Ô]TESTE[Ô])
se não for TESTE
Dim conexao as New Conexao([Ô][Ô])
Repare que quando não for teste, vc deve colocar apenas aspas duplas, já quando for TESTE, vc deve colocar uma String, independente se for uma variável criada ou se for entre aspas como no exemplo acima
O conceito de método construtor, era mais / menos isso que queria te passar
Uma ultima dica que quero te passar é não deixar a sua variável de conexao Pública e sim Privada. A variavel que coloquei é [Ô]banco[Ô] repare que ela é private
Espero ter te ajudado
Creio q seu módulo seja uma classe. Sendo uma classe você pode instanciar ela. Seria legal eu ver seu módulo pra te dizer o que poderia ser feito. Mas baseie-se por essa classe de conexão abaixo:
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms
Public Class Conexao
Private banco As String
Public Sub New(ByVal _usuario AS String)
If _usuario = [Ô]TESTE[Ô] Then
banco = [Ô]Provider=Microsoft.Jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Teste\Banco_Dados.mdb[Ô]
Else
banco = [Ô]Provider=Microsoft.Jet.oledb.4.0;Data Source=[Ô] & Application.StartupPath & [Ô]\Banco_Dados.mdb[Ô]
End If
End Sub
Public Function Pesquisar(ByVal SQL As String) As DataTable
Dim dados As New DataTable
Try
dados.Rows.Clear()
Dim conectar As New OleDbConnection(Banco)
conectar.Open()
Dim comando As New OleDbCommand(SQL, conectar)
Dim adapter As New OleDbDataAdapter(comando)
adapter.Fill(dados)
conectar.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro de Comando SQL: [Ô] & ex.Message)
End Try
Return dados
End Function
Public Sub CRUD(ByVal SQL As String)
Try
Dim conectar As New OleDbConnection(Banco)
conectar.Open()
Dim comando As New OleDbCommand(SQL, conectar)
comando.ExecuteNonQuery()
conectar.Close()
Catch ex As Exception
MessageBox.Show([Ô]Erro de Comando SQL: [Ô] & ex.Message)
End Try
End Sub
End Class
Repare que o método new é o construtor da classe. E toda vez que vc for instancia-la de oura classe, deve passar pro parametro _usuario o usuário logado. Tipo assim:
se for TESTE
Dim conexao As New Conexao([Ô]TESTE[Ô])
se não for TESTE
Dim conexao as New Conexao([Ô][Ô])
Repare que quando não for teste, vc deve colocar apenas aspas duplas, já quando for TESTE, vc deve colocar uma String, independente se for uma variável criada ou se for entre aspas como no exemplo acima
O conceito de método construtor, era mais / menos isso que queria te passar
Uma ultima dica que quero te passar é não deixar a sua variável de conexao Pública e sim Privada. A variavel que coloquei é [Ô]banco[Ô] repare que ela é private
Espero ter te ajudado
Valeu Acciolly, consegui, obrigado pelas dicas.
Um abraço.
Um abraço.
Tópico encerrado , respostas não são mais permitidas