Jump to content
Fórum Script Brasil
  • 0

Varias Base de Dados


CPais

Question

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 ...

Edited by CPais
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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");
}

Edited by CPais
Link to comment
Share on other 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.

Edited by CPais
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...