Cómo encontrar un valor o coincidencia más cercana en una tabla de Visual FoxPro desde VB .NET con el proveedor OLE DB de VFP


Origen Soporte técnico de Microsoft

PUBLICACIÓN RÁPIDA


LOS ARTÍCULOS DE PUBLICACIÓN RÁPIDA PROPORCIONAN INFORMACIÓN DIRECTAMENTE DESDE LA ORGANIZACIÓN DE SOPORTE TÉCNICO DE MICROSOFT. LA INFORMACIÓN CONTENIDA EN EL PRESENTE SE CREA EN RESPUESTA A TEMAS EMERGENTES O ÚNICOS, O ESTÁ PENSADO PARA OBTENER MÁS INFORMACIÓN SOBRE LA BASE DE CONOCIMIENTOS.

Action


Tiene una tabla de Microsoft Visual FoxPro (VFP) a la que tiene acceso desde Microsoft Visual Basic .NET a través del proveedor OLE DB de VFP. Desea buscar un valor particular en una columna, o la coincidencia más cercana.

Resolución


El comando de VFP SET NEAR controla lo que ocurre con el puntero de registro en una tabla de VFP después de una operación de búsqueda (o búsqueda) incorrecta (SEEK usa un índice en una columna VFP para localizar un valor). Cuando NEAR es on, el puntero de registro en la tabla VFP se coloca en el registro más parecido después de una búsqueda incorrecta. En el siguiente código de VB .NET se muestra cómo buscar un registro o la coincidencia más cercana a él a través del proveedor OLE DB de VFP.  Para usar este código... uno. Cree un índice y una tabla de VFP de ejemplo con el siguiente código de VFP: cerrar todos los datos eliminar archivo C:\CUSTS. RECICLAJE DE DBF ELIMINAR ARCHIVO C:\CUSTS. Recycle de CDX CREATE TABLE C:\CUSTS (NAMEs VarChar (30)) INDEX ON UPPER (NAMEs) nombres de etiquetas insertar valores de decusts (' FRED ') en valores de decusts (' Juan ') insertar en valores de decusts (' María ') cierre de datos de ALL2. Cree una nueva aplicación de Windows de Visual Studio VB .NET. Coloque un cuadro de texto, una casilla y un botón en el formulario. 3. Haga doble clic en la superficie del formulario para abrir el editor de código ("Form1. VB") y, a continuación, pegue el siguiente código en él, reemplazando el contenido actual. El código hace lo siguiente: establece el valor cerca de activado o desactivado, según el estado de la casilla en el formulario de VB (Checked = ON). : Abre la tabla VFP gratuita (C:\CUSTS) y busca el nombre del cliente. -En el proveedor OLE DB de VFP, crea un cursor que se devolverá a la sesión de .NET. -Rellena el cursor devuelto con los valores de FOUND (), RECNO ("CUSTs") y RECCOUNT ("CUSTs"). -Usa la función VFP SETRESULTSET () para devolver el cursor de VFP a .NET. -VB .NET usa un objeto OleDbDataReader para leer el cursor devuelto y mostrar los resultados de la búsqueda en un MSGBOX. * * notas * *-cuando la búsqueda de VFP encuentra una coincidencia exacta, FOUND () (la primera columna del conjunto de resultados) es verdadera. Se pueden omitir otras columnas. -Cuando la búsqueda de VFP * no * encuentra una coincidencia exacta y NEAR es ON, FOUND () (la primera columna del conjunto de resultados) es false y RECNO () (la segunda columna del conjunto de resultados) será un número válido o será RECCOUNT () (columna 3 de resultado conjunto) + 1 (que indica EOF en la tabla VFP). -Cuando la búsqueda de VFP * no * encuentra una coincidencia exacta y NEAR es OFF, se busca (). F., RECNO () será RECCOUNT () + 1. -La tercera columna del conjunto de resultados es constante: RECCOUNT ("CUSTs"). Use esta para determinar si está en el registro más cercano cuando está cerca de (es decir, la columna 2 no es * la columna 3 + 1). Imports System. Data. OleDbImports System. TextPublic Class Form1 Private Sub Form1_Load (ByVal sender As System. Object, ByVal e as System. EventArgs) controla MyBase. Load TextBox1. Focus () TextBox1. Text = "Juan" TextBox1. CharacterCasing = CharacterCasing. sub End Sub Button1_Click Private (ByVal sender As System. Object, ByVal e as System. EventArgs) administra Button1. click FindOperator (TextBox1. Text, CheckBox1. Checked) TextBox1. Focus () End Sub function FindOperator (ByVal Name2Find As String, ByVal Near as Boolean) as VariantType DIM oConn como un nuevo OleDbConnection (_ "Provider = VFPOLEDB; Source = C:\") Dim oCmd as New OleDbCommand ("", oConn) Dim oStrBldr como New StringBuilder DIM oReader as OleDbDataReader DIM lcNear As String = IIf (Near, "ON", "OFF") con oStrBldr. Append ("EXECs ("). Append ("[establecer cerca" & lcNear & "] + CHR (13) +"). Append ("[usar nombres de pedidos de dependientes compartidos nuevamente en 0] + CHR (13) +"). Append ("[SEEK '" & Name2Find & "' en CUSTs] + CHR (13) +"). Append ("[seleccionar 0] + CHR (13) +"). Append ("[CREATE CURSOR SeekResults (lFound L, nRecno I, nReccount I)] + CHR (13) +"). Append ("[insertar en valores de SeekResults (encontrados (" CUSTs "), RECNO (" CUSTs "), RECCOUNT (" CUSTs "))] + CHR (13) +"). Append ("[usar en selección (' CUSTs ')] + CHR (13) +"). Append ("[Return SETRESULTSET (' SeekResults ')]"). Append (")") oCmd. CommandText =. ToString end with oConn. Open () oReader = oCmd. ExecuteReader () mientras oReader. Read MsgBox ("Found:" & oReader. GetBoolean (0). ToString & vbCrLf & _ "RECNO ():" & oReader. GetInt32 (1). ToString & vbCrLf & _ "RECCOUNT ():" & oReader. GetInt32 (2). ToString) While End while oConn. Close () oConn. Dispose () oCmd. Dispose () oReader. Close () End FunctionEnd Class

Más información


Para más información sobre las funciones y los comandos de VFP que se usan en este artículo (buscar, establecer cerca, RECNO (), RECCOUNT (), seleccionar (), SETRESULTSET (), etc.), consulte la ayuda en línea de Visual FoxPro 9,0 SP2 aquí:http://msdn.Microsoft.com/en-us/library/724fd5h9 (vs. 80). aspxEl proveedor OLE DB de VFP está disponible como una descarga gratuita y es la mejor forma de obtener acceso a datos de VFP desde aplicaciones que no son de VFP. Está disponible aquí:http://www.microsoft.com/download/details.aspx?FamilyId=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang = en

DECLINACIÓN DE RESPONSABILIDADES


NI MICROSOFT NI SUS PROVEEDORES GARANTIZAN LA IDONEIDAD, FIABILIDAD O EXACTITUD DE LA INFORMACIÓN CONTENIDA EN LOS DOCUMENTOS Y GRÁFICOS RELACIONADOS PUBLICADOS EN ESTE SITIO WEB (LOS "MATERIALES") PARA CUALQUIER PROPÓSITO. LOS MATERIALES PUEDEN INCLUIR IMPRECISIONES TÉCNICAS O ERRORES TIPOGRÁFICOS Y SE PUEDEN MODIFICAR EN CUALQUIER MOMENTO SIN PREVIO AVISO. EN LA MEDIDA EN QUE LO PERMITAN LAS LEYES VIGENTES, MICROSOFT O SUS PROVEEDORES RENUNCIAN E EXCLUYEN TODAS LAS DECLARACIONES, GARANTÍAS Y CONDICIONES, YA SEAN EXPRESAS, IMPLÍCITAS O ESTATUTARIAS, INCLUIDAS PERO NO LIMITADAS A LAS REPRESENTACIONES, GARANTÍAS O CONDICIONES DE TÍTULO, AUSENCIA DE INFRACCIÓN, CONDICIÓN O CALIDAD SATISFACTORIA, COMERCIABILIDAD E IDONEIDAD PARA UN FIN DETERMINADO, CON RESPECTO A LOS MATERIALES.