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

filipemm

VB6 para VB.NET 2008 - Ligação ao Access

9 mensagens neste tópico

Boas..

Eu usava o VB6 para criar uns programitas com base de dados Access e fazia a ligação através deste código, num módulo à parte..

Public con As ADODB.Connection

Public Sub openCon()
    Set con = New ADODB.Connection
    con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False; Jet OLEDB:Database Password=xxxxx; Data Source=" & App.Path & "\InforGest.mdb"
End Sub

Public Function closeCon(con As ADODB.Connection)
    On Error GoTo errCloseCon
    con.Close
endCloseCon:
    Exit Function
errCloseCon:
    MsgBox "Erro: " & Err.Number & "-" & Err.Description
    Resume endCloseCon
End Function

Public Function openRec(rec As Recordset, txt As String) As ADODB.Recordset
    Dim str As String
    On Error GoTo errOpenRec
    Set rec = New ADODB.Recordset
    str = txt
    rec.CursorLocation = adUseClient
    rec.Open str, con, adOpenDynamic
endOpenRec:
    Exit Function
errOpenRec:
    MsgBox "Erro: " & Err.Number & "-" & Err.Description
    Resume endOpenRec
End Function

Public Function closeRec(rec As Recordset)
    On Error GoTo errCloseRec
    rec.Close
    rec.ActiveConnection = Nothing
endCloseRec:
    Exit Function
errCloseRec:
    MsgBox "Erro: " & Err.Number & "-" & Err.Description
    Resume endCloseRec
End Function

Depois disto, para executar as instruções SQL bastava-me chamar a função openCon e openRec ou con.Execute para alteração de dados...

A minha dúvida é como fazer isto no VB 2008...

Any help??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    Public Function OleDBExecute(ByVal strSql As String) As Integer
        Dim cmd As New OleDbCommand(strSql, con)
        cmd.CommandType = CommandType.Text
        openConnection()
        Try
            Dim i As Integer = cmd.ExecuteNonQuery()
            Return i
        Catch ex As OleDb.OleDbException
            ShowError(ex.InnerException, ex.Message, "cteModule", "")
        End Try
    End Function

Eu por exemplo tenho esta que serve pra executar instruções (SQL à base de dados..) inserts, update, delete...

Para consulta, em vez dos recordset's uso os Datareader's (uma especie de recordset's...mas sem a hipostese de update).

Claro que depois existem objectos mais automatizados para interagir com a bd (e que tem wizards....) mas... qualquer uma das soluções que apresentei...interagem com a base de dados

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu por exemplo tenho esta que serve pra executar instruções (SQL à base de dados..) inserts, update, delete...

Para consulta, em vez dos recordset's uso os Datareader's (uma especie de recordset's...mas sem a hipostese de update).

Claro que depois existem objectos mais automatizados para interagir com a bd (e que tem wizards....) mas... qualquer uma das soluções que apresentei...interagem com a base de dados

E qual é a 'reference' que adiciono para o VB reconhecer o OleDb??

E o que são os Datareader's??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao e preciso adicionar dada...a unica coisa que se tem que fazer é:

no topo da class... antes de qq definição:

Imports System.Data.OleDb

Depois:

O objeto DataReader é usado somente para leitura de dados de forma conectada e percorre os dados até o fim em um único sentido (forward-only) e no modo somente leitura (read-only). O DataReader consome menos recursos do que o dataset e oferece uma acesso mais rápido que o objeto dataset mas não pode efetuar alterações na fonte de dados original, sendo usado para acessar os dados de forma rápida e para apresentá-los sempre atualizados.

mas podes ler um pouco mais aqui...

http://www.artigonal.com/programacao-artigos/ado-net-recomendacoes-para-estrategia-de-acesso-a-dados-335356.html

ou nos tutoriais do jpaulino ;.)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Humm...

Obrigado aos dois.. Já entendi..

Já agora, acham que devia mudar do Access para o SQL Server??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora, acham que devia mudar do Access para o SQL Server??

Depende do que queres fazer ... se for uma coisa simples o Access serve muito bem, agora se pensas que vai crescer muito deves usar o SQL Server.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e exactamente a mesma coisa...todos os objectos continuam a ser semelhantes ( so mudam os nomes....) e no import... em vezes de importares o OLEDB importas  System.Data.SqlClient

Tudo o resto e semelhante...e  se não me engano os artigos do jpaulino estão bem claros sobre isso...e vocacionados pra sql server

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