Hola a todos
Tengo un problema curioso.
Estoy realizando un programa que tiene que acceder a una base de datos
Pervasive.SQL 2000i
Esta base de datos tiene unos drivers OLEDB y aunque tiene problemas para
acceder a bases de datos remotas, lo he podido solucionar creando una
unidad de red en mi máquina que apunte al directorio de la máquina donde
se encuentra la base de datos (extraño, verdad?).
Bueno, el caso es que he logrado acceder a los datos de una tabla
utilizando una combinación de objetos ADO y ADO.net pero los tiempos de
acceso que me da son increiblemente altos (hasta 3 segundos en rellenar un
DataGrid con 450 registros provinientes de una única tabla).
El código que he utilizado es el siguiente:
ADODB.Connection cn = new ADODB.Connection();
ADODB.Recordset rs =new ADODB.Recordset();
cn.Open("Provider=PervasiveOLEDB;Data
Source=p:\\;Location=p:\\","","",0);
rs.Open("tblPaciente", cn, ADODB.CursorTypeEnum.adOpenDynamic,
ADODB.LockTypeEnum.adLockOptimistic, 512);
OleDbDataAdapter oDA= new OleDbDataAdapter();
DataSet oDS=new DataSet();
oDA.Fill(oDS,rs,"tblPaciente");
cn.Close();
dataGrid1.DataSource=oDS.Tables[0];
Si utilizo el mismo código con una base de datos SQL Server (tambien
remota) el mismo resultado es instantáneo.
He probado también con una base de datos (Pervasive) local y el tiempo de
acceso sigue siendo altísimo.
Si alguien tiene alguna idea o ha trabajado con Pervasive o se le ocurre
algo, que, por favor, me lo diga.
Muchas gracias a todos.
Javier