Ado y access

Hola,
He hecho un programa en VB que ataca una BD en Access. El volumen de datos que manejo es de unos 20.000 registros. Con bastante frecuencia, la base de datos queda bloqueada e imposible de reparar. Me conecto con ADO, ¿cuáles serian los parámetros idóneos para esta base de datos en la cadena de conexión (maxbuffer, threads,...)? Cuando hago un Close en los recordsets, luego no pongo sus punteros a Nothing (adors. Close pero no hago set adors=nothinh) ¿Crees qué solucionaría algo hacerlo? Y por ultimo, yo al iniciar el programa conecto y luego no cierro la conexión hasta finalizar el programa. ¿No seria más adecuado abrir y cerrar la conexión a cada petición (consulta, escribir registro,...)?
GRACIAS de antemano.
2

2 respuestas

Respuesta
1
Bueno amigo con lo de tu pregunta acerca de la cadena de conexión yo te recomendaría la siguiente que es con la que yo trabajo y que no me da ningún problema y puede soportar bases de datos en access 2000 sin necesidad de que combiertas a version 97
Set Con1 = New ADODB.Connection
Con1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\NombredeTuBase.mdb;Persist Security Info=False"
Con1.Open
Y también puedes usar la siguiente aunque esta da un poquitín de problemas en ocasiones con el driver...
Set con1 = New ADODB.Connection
con1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;" & _
"Extended Properties=" & Chr(34) & "DSN=banco1;DriverId=25;FIL=MS Access;" & _
"MaxBufferSize=2048;PageTimeout=5;UID=admin;" & Chr(34)
Con1. Open
Ahora algo que te podría estar pasando es que tu base se corrompa debido a que la mantienes abierta y si te recomendaría que la abras solo contra solicitud de información...
Respuesta
1
Primero yo haría lo siguiente.
Toda transacción la trabajaría a nivel de código y no de objeto.
Toda transacción la realizaría mediante código SQL Estándar y trata de utilizar instrucciones como Insert Into, que son más livianas que un Add. Ok.
Por otra parte si es un programa Cliente/Servidor tal vez te convenga realizar una componente que realices las transacciones.
Si tienes más dudas me avisas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas