Cómo crear un campo identificador automática en una tabla de FoxPro mediante ADO y ASP

Seleccione idioma Seleccione idioma
Id. de artículo: 316910 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

En este artículo se describe cómo crear un campo de incremento automático en una tabla de Visual FoxPro (VFP) mediante Active Server (ASP) y ActiveX Data Objects (ADO). Este artículo se supone que tiene un buen conocimiento de trabajo de Visual FoxPro y cómodo de crear y modificar bases de datos. También se supone que se puede utilizar el Administrador de Internet Information Server (IIS) para crear directorios virtuales y que puede asignar derechos de usuario en archivos y carpetas en Microsoft Windows NT, Microsoft Windows 2000 y Microsoft Windows XP.

Para utilizar este ejemplo, necesitará Visual FoxPro 7.0 y un equipo que ejecuta IIS y ADO. El equipo IIS también debe tener el proveedor OLEDB de VFP 7.0 instalado y registrado correctamente.

Más información

Esta demostración tiene tres partes:
  • Crear archivos de datos VFP
  • Crear la página ASP
  • Probar el ejemplo

Crear los archivos de datos VFP

  1. Mediante el Explorador de Windows, crear un nuevo directorio en el disco duro local de un equipo que ejecuta Visual FoxPro 7.0.
  2. Abra VFP 7.0 y cambie el directorio (comando CD) al nuevo directorio que acaba de crear.
  3. Ejecutar el código siguiente en VFP 7.0 para crear un archivo .dbc y dos tablas:
    CLOSE DATABASES ALL
    CREATE DATABASE 'SAMPLEDBC.DBC'
    
    CREATE TABLE 'TABLE1.DBF' NAME 'TABLE1' (UID I NOT NULL DEFAULT newid("TABLE1"), ;
                         FNAME C(10) NOT NULL, ;
                         LNAME C(10) NOT NULL)
    
    CREATE TABLE 'IDS_TABLE.DBF' NAME 'IDS_TABLE' (TABLENAME C(25) NOT NULL, ;
                            CURRENTKEY I NOT NULL)
    
    SET COLLATE TO 'MACHINE'
    INDEX ON UPPER(TABLENAME) TAG TNAME
    INSERT INTO IDS_TABLE VALUES("TABLE1",0)
    
    CLOSE DATABASES ALL
    					
  4. Modificar la base de datos y abra la ventana de procedimientos almacenados. Pegue el código siguiente en la ventana de procedimientos almacenados:
    FUNCTION NewID(tcAlias)
      
      LOCAL lcAlias, ;
            lnID
    
      lcAlias = UPPER(ALLTRIM(tcAlias))
      lnID = 0
      SET REPROCESS TO AUTOMATIC
    
      IF !USED("IDS_TABLE")
        USE SAMPLEDBC!IDS_TABLE IN 0
      ENDIF
      SELECT IDS_TABLE
          
      IF SEEK(lcAlias, "IDS_TABLE", "Tname")
        IF RLOCK()
          lnID = IDS_TABLE.CurrentKey
          REPLACE IDS_TABLE.CurrentKey WITH IDS_TABLE.CurrentKey + 1
          UNLOCK
        ENDIF
      ENDIF
        
      RETURN lnID
    ENDFUNC
    					
Ahora dispone de una base de datos denominado SAMPLEDBC que contiene dos tablas denominadas Table1 y IDS_TABLE. Table1 es la tabla que se inserta registros mediante ASP y ADO. La tabla IDS_TABLE se utiliza para realizar un seguimiento del último identificador único de la tabla Table1.

Table1 tiene tres campos: UID, FNAME y LNAME. UID es el único campo de identificador y se incrementará automáticamente mediante el procedimiento almacenado y un valor predeterminado. Cuando se inserta un nuevo registro en esta tabla por medio de ASP y ADO, el campo UID no se incluye en la lista de campos. Este valor se genera mediante un valor predeterminado para el campo. El valor predeterminado es realmente una llamada al procedimiento almacenado especificado anteriormente. Este procedimiento almacenado, newid("TABLE1"), devuelve un número único que posteriormente se agrega al campo de UID cuando se guarda el nuevo registro.

Crear la página ASP

Ahora vamos a crear una página ASP para agregar registros a la tabla Table1.
  1. Abra el editor de texto de su elección (Bloc de notas es correcto) y pegue el código siguiente en un archivo nuevo:
    <%
    
    DataPath = "YOUR DIRECTORY PATH\SAMPLEDBC.DBC"
    
    SET oConn = CREATEOBJECT("ADODB.Connection")
    SET oRS = CREATEOBJECT("ADODB.RECORDSET")
    
    oConn.OPEN("PROVIDER=VFPOLEDB.1;Data Source=" & DataPath)
    oConn.Execute("Insert into Table1 (FName, Lname)  VALUES ('Test','Guy')")
    
    oRS.OPEN "SELECT * FROM TABLE1", oConn
    %>
    
    <HTML>
    <BODY>
    <P>
       <TABLE BORDER=1>
       <TR>
       <% For i = 0 to oRS.Fields.Count - 1 %>
            <TD><B><% = UCASE(oRS(i).Name) %></B></TD>
       <% Next %>
       </TR>
       <% Do While Not oRS.EOF %>
            <TR>
            <% For i = 0 to oRS.Fields.Count - 1 %>
                 <TD VALIGN=TOP><% = oRS(i) %></TD>
            <% Next %>
            </TR>
            <%
            oRS.MoveNext
       Loop
       
       oRS.Close
       oConn.Close   
       SET oRS = nothing
       SET oConn = NOTHING
       %>
       </TABLE>
    </BODY>
    </HTML>
    					
  2. Ajustar la segunda línea de código (que lee DataPath = "El directorio PATH\SAMPLEDBC.DBC"), cambiar parte de Su directorio PATH al nombre del directorio que creó anteriormente. Por ejemplo, si la base de datos VFP está en C:\INETPUB\WWWROOT\VFPTEST, esa línea se leerá como sigue:
    DataPath = "C:\INETPUB\WWWROOT\VFPTEST\SAMPLEDBC.DBC"
  3. Guarde el archivo como UID_TEST.ASP, en el mismo directorio que creó anteriormente para el archivo .DBC VFP.
Ahora dispone de una página ASP que se primero insertar un nuevo registro en la tabla Table1, se consulta dicha tabla para todos los registros y mostrarlos en una tabla HTML.

Probar el ejemplo

Ahora pongamos todos juntos. Si el equipo que ejecuta VFP 7.0 no se está ejecutando IIS, debe copiar el directorio creado en el paso 1 de la sección "Crear los archivos de datos de VFP" a su equipo IIS. Asegúrese de ajustar la segunda línea en el código ASP en consecuencia. Cambiar la prueba de Su directorio PATH para reflejar el directorio que se encuentran las tablas y el archivo .ASP en.
  1. Abra el Administrador de IIS y cree un nuevo directorio virtual. Señale al directorio que contiene el archivo .ASP y datos de FoxPro. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    308135Cómo crear un directorio virtual en Windows 2000
  2. Utilice el Explorador de Windows para desplazarse al directorio que contiene el archivo .ASP y datos de FoxPro.
  3. Establecer los permisos de NTFS apropiados en los archivos específicos de la carpeta conceder derechos de lectura y MODIFY al archivo .ASP y los datos de FoxPro de la cuenta IUSER_ [NombreEquipo].
Ahora podrá ver la página ASP desde un explorador y vea que identificadores únicos que se introducen en la tabla de FoxPro.

Propiedades

Id. de artículo: 316910 - Última revisión: jueves, 23 de enero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Visual FoxPro 7.0 Professional Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbcodesnippet kbhowto KB316910 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 316910

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com