Cuestión : aumentar el funcionamiento del acceso de base de datos - ms-access

Hago un código [atar] que tome dos tablas a la vez de bases de datos de un acceso, comparo los valores para cada fila y columna y si encuentra cualesquiera diferencias que divulgue al user.

Unfortunately llega a ser más lento y más lento mientras que la base de datos grow.

I lo quiere realmente rápidamente y no sé qué hacer. si utilizaron roscar. He atado el code

Anthony

que los showDifferences públicos de la función (ByVal ds como secuencia, ByVal co como System.Data.OleDb.OleDbConnection) como Boolean
amortiguan z como Integer
v dévil, p, el vname como String

los showDifferences de z = de 0

= False
'allí es varias tablas y escoge uno en un time- ellos está en el tblRecords
de la tabla 'e.g. compara valores en la tabla [amo] contra ésos en el

de la tabla [vmaster] para t como de largo = 0 a tblRecords.Rows.Count - el
de 1
Application.DoEvents () “excluye este el tables
si sectionsToEculude (tblRecords. Columns (“recnameel " ) .ColumnName) = verdad entonces continúa For
si ajuste (mainver). La longitud = 0 tstr de Then
= “SELECCIONA * DE [” y tblRecords.Rows (t) (“recname”) y”] “y el tstr del ds
Else
= “SELECCIONA * DE [” y mainver y tblRecords.Rows (t) (“recname”) y”] “y extremo If

del ds
cm = nuevo OleDb.OleDbCommand
cm.CommandText = el tstr
cm. El Dr. de la conexión = del co
= cm.ExecuteReader
si dr.HasRows Then
mientras que el Dr. Criterios = "" construcción del
de Read
“los criterios del sql para cada los criterios = el ajuste del table
(mediados de (ds, 1, ds. Longitud - 1)) y” y “
para i como Int16 = 1 a tblRecords.Rows (t) (“nid”)
si no IsDBNull (el Dr. (tblRecords.Rows (t) (“identificación” y (i - 1).ToString))) Then
si no IsNumeric (el Dr. (tblRecords.Rows (t) ( de la “identificación " y (i - 1).ToString))) Criterios de Then
= criterios y tblRecords.Rows (t) (“identificación” y i - 1) y “=”” y el Dr. (tblRecords.Rows (t) (“ de la identificación " y (i - 1).ToString)) y”” y “criterios del
Else
= criterios y tblRecords.Rows (t) (“identificación” y i - 1) y “=” y el Dr. (tblRecords.Rows (t) (“identificación " y (i - 1).ToString)) y” y “criterios de If
Else
del final del
= criterios y tblRecords.Rows (t) (“identificación” y i - 1) y” es criterios nulos y “del
del final de If
Next
= mediados de (los criterios, 1, criterios. Longitud - 5)

si ajuste (mainver). La longitud = 0 tstr de Then
= “SELECCIONA * DE [v” y tblRecords.Rows (t) (“recname”) y”] “y los criterios y”; el “tstr del
Else
= “SELECCIONA * DE [” y tblRecords.Rows (t) (“recname”) y”] “y los criterios y”; “extremo If

del
'ahora tengo la declaración de SQL entera y los criterios añadidos al cmd de it.

= nuevo OleDb.OleDbCommand
cmd.CommandText = cmd del tstr
. La conexión = el co

RDA = cmd.ExecuteReader
si tblRecords.Rows (t) (el “recname”) = los recordExists del “amo” entonces = 'no en lector falso del verification
'[el Dr.] son valores de la tenencia para el
del
dup2.Clear del duplicates
dup1.Clear del cheque del
el 'lector [RDA] es valores de la tenencia para el

de la tabla [vmaster] por ejemplo si los recordExists = True
de la tabla de ddr.HasRows Then
'() ()                        Mientras que RDA. Read
'compara valor del campo por el
del valor del campo 'eventualmente es que diferente [los showDifferences] es
del informe del true
el 'para f como Int16 = idNames.Count a dr.FieldCount - vname de 1
= dr.GetName (f)
si IsDBNull (el Dr. (f)) entonces: v = nada: : v = ajuste (el Dr. (f)): Extremo If
si IsDBNull (RDA (vname)) Entonces: p = nada: : p = ajuste (RDA (vname)) : variablesToExclude de If
del final si no (vname) Then
si showDifferences del <> p Then
de v = True
RDA. Cerrar () el
RDA = cmd de Nothing
. Disponer () el extremo While

Else
de If
Next
del final de If
del final de Function
de la salida del
'dicen a usuario si el expediente no se encuentra en el
[del vmaster] si tblRecords.Rows (t) (“recname”) = los recordExists del “amo” entonces = extremo If
RDA de False
. Cerrar () el
RDA = cmd de Nothing
. Disponer () el extremo de While

del final del
del
Application.DoEvents () El Dr. de If
. Cerrar () el Dr. = Nothing
cm del
. Disponer () el cmd del
Next
. Disponer () el extremo Function
del
class= del

Respuesta : aumentar el funcionamiento del acceso de base de datos - ms-access

Aaaaahh… aceptable el problema es que usted no tiene que proporcionar el elemento de datos… todo lo que usted lo hace es al procide el nombre de la función.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:


	
		
	
	
		
	
	
	
	
	
	
		
			
		
	


Otras soluciones  
 
programming4us programming4us