Ir para conteúdo
Fórum Script Brasil
  • 0

Varias Base de Dados


CPais

Pergunta

Boas

Tenho um programa, que no projecto está ligado a uma base de dados com o nome de "GestaoXXI.mdb", só que, agora estive a dividir o programa com vários utilizadores, e queria que cada utilizador tivesse uma base de dados diferente.

Todas as Base de dados são iguais na sua estrutura,

Utilizador "aaaa" teria a base de dados "aaaaGestaoXXI.mdb"

Utilizador "bbbb" teria a base de dados "bbbbGestaoXXI.mdb"

Utilizador "cccc" teria a base de dados "ccccGestaoXXI.mdb"

Mas só ter uma vez o programa instalado, pois os vários utilizadores, acedem ao programa sempre no mesmo computador .

Assim Sendo, o que eu quero é que quando entrar no programa o utilizador "aaaa" seja chamada a base de dados "aaaaGestaoXXI.mdb", se for o "bbbb" seja chamada a base de dados bbbbGestaoXXI.mdb, não a que está no projecto a GestaoXXI.mdb

Todas as Base de dados são iguais na sua estrutura, serão copias da já existente no programa.

Alguém sabe como fazer isso ...

Editado por CPais
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom, tendo em vista que o que muda é o nome do banco, você pode criar uma string de conexão modelo, exemplo:

ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\MEUDATABASE;Persist Security Info=False;";
Quando o usuário 'aaaa' logar no sistema, você vai substituir a sua string de conexão com o nome do banco de dados dele:
if (user = "aaaa")
{
   ConnectionString = ConnectionString.Replace("MEUDATABASE", "aaaaGestaoXXI.mdb");
}

if (user = "bbbb")
{
   ConnectionString = ConnectionString.Replace("MEUDATABASE", "bbbbGestaoXXI.mdb");
}

Link para o comentário
Compartilhar em outros sites

  • 0

Mas parece que não funciona, eu quando fiz o programa o sistema criou um DataSet com o nome de "GestaoXXIDataSet", o qual está ligado ao ficheiro "GestaoXXI.mdb", só que eu queria era alterar o ficheiro que está ligado a este dataset, via codigo, e não alterando o ficheiro de configuração .

O Prgrama é em VB 2010

Bom, tendo em vista que o que muda é o nome do banco, você pode criar uma string de conexão modelo, exemplo:

ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\MEUDATABASE;Persist Security Info=False;";
Quando o usuário 'aaaa' logar no sistema, você vai substituir a sua string de conexão com o nome do banco de dados dele:
if (user = "aaaa")
{
   ConnectionString = ConnectionString.Replace("MEUDATABASE", "aaaaGestaoXXI.mdb");
}

if (user = "bbbb")
{
   ConnectionString = ConnectionString.Replace("MEUDATABASE", "bbbbGestaoXXI.mdb");
}

Editado por CPais
Link para o comentário
Compartilhar em outros sites

  • 0

RESOLVIDO

No Código da ConnectionString, colocar este código, o que deixa ler a variável da ligação da base de dados

project_settings.jpg

Namespace My
    
    'This class allows you to handle specific events on the settings class:
    ' The SettingChanging event is raised before a setting's value is changed.
    ' The PropertyChanged event is raised after a setting's value is changed.
    ' The SettingsLoaded event is raised after the setting values are loaded.
    ' The SettingsSaving event is raised before the setting values are saved.
    Partial Friend NotInheritable Class MySettings

        Public WriteOnly Property RunTimeConnectionString()

            Set(ByVal value)

                My.Settings("MINHAConnectionString") = value

            End Set

        End Property

    End Class


End Namespace
Depois como este código está a mexer numa variável "WriteOnly" criar a seguinte função, que parece que liberta o "WriteOnly"
Public Shared Sub SetConnectionString(ByVal cnnString As String)
        My.Settings.RunTimeConnectionString = cnnString
    End Sub
Depois é só alterar a linha de ligação / nome da Base de dados
SetConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MINHA_NOVA_BASEDADOS.mdb")

e a partir desta linha, a base de dados passa a ser a nova.

Editado por CPais
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...