Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

MKN Reservas (Maro - Kayak Nerja)


Kayak Maro - Rutas y alquiler de kayak y tabla
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu inter�s (algunos de los avisos publicados)

01/feb./2019

Como te avisé, desde el 1 de febrero de 2019

No se podrán escribir nuevos mensajes ni editar los existentes

En breve solo se mostrarán los mensajes con respuestas.
Posiblemente para el 1 de marzo, solamente se mostrarán los que tengan respuestas y estén marcados como respuesta válida.

  Foro: ADO.NET.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 49379 - Velocidad DBF y Access
IDAsuntoFechaNick 
49379 Velocidad DBF y Access23/07/09 15:13Isangi   
Hola, vereis, he creado un programa que creo que hace lo que quiero, pero me va bastante lento.

La idea es que tengo un conjunto de archivos en DBF que todos ellos tienen 2 campos en comun.
Y necesito hacer un listado donde me diga para cada fecha cuantos archivos hay de cada tipo.

Los pasos que hago es:
*De la lista de archivos seleccionados, la recorro:
+Por cada archivo, me lo recorro:
y por cada linea de archivo hago un insert a una base de datos de acces, que posteriormente consultare.

Tiene que trabajar con cantidades que rondan el millon de registros y va bastante lento la verdad.
Os dejo el codigo que es bastante simple:


Private Sub BuscaPaginas()
Dim tempX As String
Dim Excels As String()
Dim ruta As String
Dim Paginas As Integer()
Dim i, j As Integer
Dim STR As String

Dim T As DataTable

'VACIAMOS LA TABLA TEMPORAL
STR = "DELETE * FROM Temp1"
EJECUTA_EN_BD(STR)
'------

'A) Guardamos la ruta completa de los archivos a seleccionar
ruta = LArchivos.Path
ruta &= "\"

For i = 0 To LArchivos.SelectedItems.Count - 1
'Consulto La DBF ZZFECHABAT y ZZCODDOCUM
T = ConsultaDBF(ruta, LArchivos.SelectedItems.Item(i))
'Me devuelve UNA tabla
'Por cada Fila de la tabla
For j = 0 To T.Rows.Count - 1
'Insertamos en la BD
STR = "INSERT INTO Temp1 (ZZFECHABAT,ZZCODDOCUM) VALUES ('"
STR &= T.Rows(j).Item(0) & "','"
STR &= T.Rows(j).Item(1) & "')"
EJECUTA_EN_BD(STR)
Next

Next

Me.Close()
End Sub

Private Function ConsultaDBF(ByVal ruta As String, ByVal archivo As String) As DataTable
Dim ConString As String
Dim objDataSet As New DataSet
Dim tabli As New DataTable
Dim query As String

query = "SELECT ZZFECHABAT,ZZCODDOCUM FROM " & archivo
' de www.connectionstrings.com: 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;
'ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & "\" & archivo & ";Extended Properties=dBASE IV;User ID=Admin;Password=;"
'ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Extended Properties=dBASE IV;User ID=Admin;Password=;"
'del guille: "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & System.IO.Path.GetDirectoryName(sBase) & ";"
ConString = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & ruta & ";"

Using dbConn As New System.Data.Odbc.OdbcConnection(ConString)
Try
dbConn.Open()

Dim da As New System.Data.Odbc.OdbcDataAdapter(query, dbConn)
'Dim dt As New DataTable

da.Fill(tabli)

dbConn.Close()

Catch ex As Exception
MessageBox.Show("Error al abrir la base de datos" & vbCrLf & ex.Message)
Exit Function
End Try
End Using

Return tabli

End Function

Public Function EjecutarQuery(ByVal Query As String) As DataSet
Dim ConString As String
Dim objDataSet As New DataSet

ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DATOS.dirbasededatos & ";User Id=admin;Password=;"
Try
Dim objConnection As New System.Data.OleDb.OleDbConnection(ConString)
objConne
IDAsuntoFechaNick 
50062 Re: Velocidad DBF y Access (Resp: 49379)18/09/09 22:14zlayeR   
Podrías usar OleDbDataReader en vez de OleDbDataAdapter ya que son más rápidos, y para insertar los datos podrías crear una consulta de inserción en Access y llamarla desde .NET, o en último caso para unir la cadena usa StringBuilder y no el operador &.
Aunque no es específicamente el tema en mi blog tengo ejemplos en los cuales cargo datos de tablas con esta técnica.

Saludos
Eduardo Peredo
[Editado: zlayeR, 18/09/2009 22:14:51]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2026  - foros.elGuille v1.0.6.3 (01/Jun/2021 12:45 GMT +2)  - (ASP.NET v4.0.30319.42000)
 
La hora GMT del servidor es: 17/06/2026 10:24:57 GMT