Usuário com melhor resposta
Web Services com MDB

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_ConsultaCEPDim 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 = NothingSe alguem puder me dar uma dica ou indicar um conteudo para leitura, ficarei agradecido.
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 OLEDB
atabase Locking Mode"....
http://msdn.microsoft.com/en-us/library/ms681754(VS.85).aspx
Jet OLEDB
atabase 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
Todas as Respostas
-
-
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.adModeUnknownconn.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 -
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 OLEDB
atabase Locking Mode"....
http://msdn.microsoft.com/en-us/library/ms681754(VS.85).aspx
Jet OLEDB
atabase 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
-