Jump to content
filipemm

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

Recommended Posts

filipemm

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

Share this post


Link to post
Share on other sites
José Lopes

    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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
filipemm

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
filipemm

Humm...

Obrigado aos dois.. Já entendi..

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

Share this post


Link to post
Share on other sites
jpaulino

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.

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.