|
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:
|
|
|
|
|