• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Furriel

Integrar Base de Dados no Projecto

14 mensagens neste tópico

Olá a todos,

Criei uma aplicação em VB.NET 2003 com uma ligação a Base de Dados Access e tenho-a dentro do directório Bin, junto ao ficheiro executável da aplicação.

Mas o que eu queria saber era como integrar a base de dados na aplicação de forma a poder corre-la em qualquer máquina.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu podes correr a aplicação em qualquer máquina desde que não utilizes caminhos completos. Algo como "C:\pasta1\blabla\Base de Dados\bd.mdb" não devem existir. Se tens a tua BD na mesma pasta do executavel, podes usar o Application.StartupPath ... depois só precisas de indicar o caminho com algo do tipo

caminho_bd = Application.StartupPath & "\nome_bd.mdb"

Dei o exemplo para a BD como para outro ficheiro qualquer que tenhas que usar na tua aplicação.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa mas não estou a ver nem descobri onde é que escrevo esse código ... ;)

É na definição da conexão?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É em qualquer lado que precises de indicar o caminho de algum ficheiro. Apenas te indiquei que exista o "Application.StartupPath" só para saberes que nao deves usar caminhos completos, mas sim relativos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procurei em todos os ebook's que tenho e não encontrei nada sobre StartupPath ;)

É que não estou mesmo a perceber como fazer isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tanto quanto percebi tenho que fazer uma coisa deste género, mas não funcionou ;)

Aqui é o único sitio onde uso caminho.

        Dim caminho_bd As String
        caminho_bd = Application.StartupPath & "\Notas.mbd"
        '
        Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=caminho_bd;Jet OLEDB:Engine Type=5;Provider=""Microsoft" & _
        ".Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security " & _
        "info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=" & _
        "False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Comp" & _
        "act=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB" & _
        ":Global Bulk Transactions=1"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas onde é que introduzo esse código, é que eu introduzo isso e coloco Data Source = path e não funciona ;)

Dá erro quando tenho aceder à base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui está, pelo menos é aqui que eu estou a introduzir o caminho.

        '
        'OleDbConnection1
        '
        Dim path As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
        Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=path;Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLED" & _
        "B.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=Fals" & _
        "e;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet" & _
        " OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False" & _
        ";Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global B" & _
        "ulk Transactions=1"

Mas depois quando acedo à Base de Dados dá-me o seguinte erro:

errotc3.jpg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

...

Dim path As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) & "\Notas.mdb"

Me.OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";User Id=admin;Password=;"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já funciona :P Obrigado a todos.

Acabei por usar o método que o inginheiiro.

Qual é a diferença em usar este:

        Dim caminho_bd As String
        caminho_bd = Application.StartupPath & "\Notas.mbd"

Devia estar a dar erro porque não pus o " & caminho_bd & " no Data Source, apenas ponha caminho_bd

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estava a funcionar muito bem mas não sei o que aconteceu, de repente perdi a ligação à base de dados, a OleDBConnection1.

Alguém sabe pk?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora