none
Web Services com MDB RRS feed

  • Pergunta

  • Estou iniciando em VB.NET e escrivi um webservice em vb.net para consulta a um banco de dados Access (mdb) e o mesmo é consumido através do Office 2003.

     

    A conexão é feita através do ADO.NET e funciona normalmente a manipulação do dos dados. O que ocorre é que começei a observar que o arquivo .LDB (que é criado por padrão pelo JET quando um banco de dados está sendo utilizado) não está sendo "excluido" quando a conexão é fechada.

     

    Dentro da conexão do .asmx a conexão e o recordeset são fechados normalmente através de opção .close() e Nothing, alem de liberar recursos através do  dispose(), só que o MDB continua com sua conexão aberta.

     

    Aguem já passou por isso utilizando WebServices?

     

    Dentro do Office utilizo o código abaixo:

     

    Dim ccep As clsws_ConsultaCEP
    Set ccep = New clsws_ConsultaCEP

    Dim response() As String
    response = ccep.wsm_BuscaCEP(Me.CEPRemet)
    Me.EndRemet = response(0)
    Me.BairroRemet = response(1)
    Me.CidRemet = response(2)
    Me.UFRemet = response(3)


    Set ccep = Nothing

    Se alguem puder me dar uma dica ou indicar um conteudo para leitura, ficarei agradecido.

    sábado, 3 de janeiro de 2009 03:43

Respostas

  •  

    Bem, sobre o Dispose() ele so vai liberar a conexao quando for necessario usar aquele espaço de memoria,

     

    E o Close() ... bem ele tem uma tendencia a nao fechar de imediato por motivos de performance... se vc tentar acessar o arquivo logo em seguida ele usa a mesma conexao e talz...

     

    Tem como forçar o fechamento na conection string... mas confesso q faz muito tempo q nao uso OLEDB....

    estou quase certo que era o parametro "Jet OLEDBBig Smileatabase Locking Mode"....

     

    http://msdn.microsoft.com/en-us/library/ms681754(VS.85).aspx

     

    Jet OLEDBBig Smileatabase Locking Mode (DBPROP_JETOLEDB_DATABASELOCKMODE)

    Indicates the locking mode for this database. The first user to open the database determines the mode used while the database is open.

     

    Da uma olhada nesse link... ele explica todas as opçoes do Jet OleDb

    terça-feira, 13 de janeiro de 2009 13:37
    Moderador

Todas as Respostas

  • tem como vc envia a conectionstring ? (tirando logico a parte de usuario e senha)

    segunda-feira, 12 de janeiro de 2009 16:37
    Moderador
  • Rui, segue o código conexão:

    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Inetpub\vhosts\kartoffel.com.br\httpdocs\database\registros.mdb"

    Dim sql As String = "SELECT Aplicativo,Chave,Solicitante From Reg_Aplics where Chave='" & chaves & "'"

     

    Dim conn As Connection = New Connection

    Dim connMode As Integer = ConnectModeEnum.adModeUnknown

    conn.CursorLocation = CursorLocationEnum.adUseServer

    conn.Open(ConnectionString, "", "", connMode)

     

    Dim cmdType As Integer = CommandTypeEnum.adCmdText

    Dim rs As _Recordset = conn.Execute(sql)

     

    Dim ds As DataSet = New DataSet("Recordset")

    Dim da As OleDbDataAdapter = New OleDbDataAdapter

     

    terça-feira, 13 de janeiro de 2009 00:51
  •  

    Bem, sobre o Dispose() ele so vai liberar a conexao quando for necessario usar aquele espaço de memoria,

     

    E o Close() ... bem ele tem uma tendencia a nao fechar de imediato por motivos de performance... se vc tentar acessar o arquivo logo em seguida ele usa a mesma conexao e talz...

     

    Tem como forçar o fechamento na conection string... mas confesso q faz muito tempo q nao uso OLEDB....

    estou quase certo que era o parametro "Jet OLEDBBig Smileatabase Locking Mode"....

     

    http://msdn.microsoft.com/en-us/library/ms681754(VS.85).aspx

     

    Jet OLEDBBig Smileatabase Locking Mode (DBPROP_JETOLEDB_DATABASELOCKMODE)

    Indicates the locking mode for this database. The first user to open the database determines the mode used while the database is open.

     

    Da uma olhada nesse link... ele explica todas as opçoes do Jet OleDb

    terça-feira, 13 de janeiro de 2009 13:37
    Moderador
  • Rui, valeu pela dica. Fiz a observação com referência ao fechamento, e posteriormente ocorre o informado. Vou deixar assim mesmo, pois não há uma grande necessidade de fechar a conexão de imediado.

     

    Mais uma vez valeu pela dica.

     

    Sds

     

     

    terça-feira, 13 de janeiro de 2009 14:13