Una función de visualización de base de datos general. Los requisitos son los siguientes:
1. Puede mostrar campos específicos. Por supuesto, los nombres de los campos y el texto mostrado pueden ser diferentes.
2. Puede consultar varios campos al mismo tiempo, admitiendo métodos de consulta tanto difusos como precisos.
3. Hay dos modos de visualización: disposición horizontal y disposición vertical de los campos.
4. Puede paginar automáticamente.
5. Puede establecer cuántos registros mostrar en cada página. Bueno, eso es todo para los grandes requisitos. De acuerdo con este requisito, Ayu escribió la siguiente función.
De hecho, Ayu escribió dos funciones aquí. Una es TABDISP(), que se utiliza para mostrar el contenido de una tabla específica y la otra es ER(), una pequeña función de manejo de errores.
Esta función tiene 5 parámetros (eso es mucho). Cada parámetro debe ingresarse con datos y no puede estar en blanco, de lo contrario se producirá un error.
1(TAB), el nombre de la tabla a llamar.
2 (DISPFILD), qué campos de la tabla deben mostrarse, si los nombres de los campos son diferentes de los caracteres que se mostrarán, sepárelos con <. Por ejemplo, un determinado nombre de campo es: IMG, pero debe mostrarse como: Imagen en la página, luego, simplemente escriba Para IMG<imágenes, si hay varios campos, use "," para separar cada campo. Lamentablemente, es una larga historia.
3 (FINDFILD), qué campos se consultarán y los nombres de los campos y caracteres que se mostrarán están separados por <.
4(PAGEN), cuántos registros se muestran en cada página.
5 (FH), la dirección de visualización. Cuando es S, se muestra verticalmente. Cuando es H, se muestra horizontalmente.
El valor de retorno de la función es verdadero cuando no hay error; de lo contrario, es falso.
Esta función no incluye la parte de conectarse a la base de datos, por lo que debe conectarse a la biblioteca usted mismo. Además, para aplicaciones repetidas, puede guardar esta función en un archivo y luego incluir este archivo cuando sea necesario.
Echa un vistazo a la siguiente función: (No dejes de leerla, te daré un ejemplo de aplicación al final)
<%
'A continuación se define una función TABDISP() para mostrar tablas, los parámetros TAB, el nombre de la tabla a mostrar, DISPFILD, los campos a mostrar, FINDFILD, el campo de consulta, PAGEN, el número mostrado por página, fh, el dirección de visualización
'Si la visualización tiene éxito, el valor de retorno es verdadero; si no tiene éxito, el valor de retorno es falso.
'Usar para separar múltiples campos
'El campo de consulta debe incluirse en el campo de visualización.
'Si el nombre del campo es diferente del nombre que se mostrará, utilice < para separar el nombre del campo y el nombre mostrado. El nombre del campo y el carácter mostrado deben estar separados por < para el campo que se buscará.
'La dirección de visualización FH es "H" para visualización horizontal, "S" para visualización vertical, distingue entre mayúsculas y minúsculas
FUNCIÓN TABDISP(TAB,DISPFILD,BUSCARFILD,PAGEN,FH)
En caso de error Continuar siguiente
IF DISPFILD="" ENTONCES DISPFILD="*"
SI PAGEN="" ENTONCES PAGEN=15
DISPFILD1=DISPFILD&","
findfild1=findfild&","
dim findl(10),findr(10)
i1=1
hacerlo mientras instr(findfild1,",")<>0
estrella=instr(findfild1,",")
buscarl(i1)=izquierda(buscarfild1,estrella-1)
buscador(i1)=buscarl(i1)
fildbak=buscar(i1)
findl(i1)=left(fildbak,instr(fildbak,"<")-1)
findr(i1)=right(fildbak,len(fildbak)-instr(fildbak,"<"))
findfild1=derecha(findfild1,len(findfild1)-estrella)
i1=i1+1
bucle
Response.Write "<borde de la tabla='0' ancho='100%' espacio entre celdas='0'><tr><método de formulario='GET'>"
Respuesta.Escribir "<TD > " 'ancho='50%'
SI SESIÓN("FLMENULBUP")<>"" ENTONCES
Response.Write "Columna actual: <A HREF='FLMEN.ASP?MENULB="&SESSION("FLMENULBUP")&"'>"&MID(SESSION("FLMENULBUP"),4,200)&"</A>"
FINALIZAR SI
SI SESIÓN("flmenulb")<> SESIÓN("FLMENULBUP") ENTONCES
Respuesta.Escribir " >> <A HREF='FLMEN.ASP?menulb="&SESSION("FLMENULBUP")&"&LB="&SESSION("flmenulb")&"'>"&MID(SESSION("flmenulb"),4,200 )&"</A>"
FINALIZAR SI
Response.Write "</TD><td align='right' >>td><td align='right'><table border='0'cellspacing='0' cellpadding='0'> "
Response.Write "<tr><td rowspan='2'><img src='img/SEARCH.GIF' width='50'> </td>"
para i3=1 a i1-1
Respuesta.Escribir "<td>"&findr(i3)&":</td>"
próximo
Respuesta.Escribir "</tr><tr>" '<td></td>
para i2=1 a i1-1
Response.Write "<td><tipo de entrada='texto' nombre='palabra clave"&i2&"' tamaño='8' valor=''></td>"
siguiente
Respuesta.Escribir "<tr></table></td><td width='20%'> <tipo de entrada='casilla de verificación' nombre='find_fr' valor='yes'>Preciso<tipo de entrada='enviar ' valor='Inicio' nombre='B_FIND'></td>"
Respuesta.Escribir "</form></tr></table>"
buscar_fr=solicitud("buscar_fr")
TJ=""
urllr="&find_fr="&find_fr
encontrarlrdisp=""
PARA I3=1 A I1-1
TJ1=solicitud("KEY_WORD"&I3)
urllr=urllr&"&palabra clave"&i3&"="&tj1
SI TJ1=FINDR(I3) O TJ1="" ENTONCES
TJ1=""
DEMÁS
si find_fr<>"sí" entonces
findlrdisp=findlrdisp&findr(i3)&"Contiene ""&TJ1&"" "
tj1=" AND "&findL(I3)&" como '%"&TRIM(TJ1)&"%' "
demás
findlrdisp=findlrdisp&findr(i3)&"是""&TJ1&""
tj1=" AND "&FINDL(I3)&" = '"&TRIM(TJ1)&"' "
terminar si
FINALIZAR SI
TJ=TJ&TJ1
SI TJ="" ENTONCES
TOPSN="TOP 300"
DEMÁS
TOPSN=""
FINALIZAR SI
SIGUIENTE
campo tenue(35),dispfil(35),dispfildlr
dispfildlr=""
yo=1
dispfild1=dispfild1
hacerlo mientras instr(dispfild1,",")<>0
estrella=instr(dispfild1,",")
campo(i)=izquierda(dispfild1,estrella-1)
dispfil(i)=campo(i)
si instr(fild(i),"<")<>0 entonces
fildbak=fild(i)
campo(i)=izquierda(fildbak,instr(fildbak,"<")-1)
dispfil(i)=right(fildbak,len(fildbak)-instr(fildbak,"<"))
terminar si
dispfildlr=dispfildlr&fild(i)&","
dispfild1=derecha(dispfild1,len(dispfild1)-estrella)
yo=yo+1
bucle
dispfildlr=izquierda(dispfildlr,len(dispfildlr)-1)
SQL="SELECT "&topsn&" id,"&DISPFILDlr&" FROM "&TAB&" DONDE ID<>-1 "&tj&" ordenar por -ID"
'Respuesta.Escribir sql
sesión("tabsql")=sql
Establecer rs=Server.CreateObject("ADODB.RecordSet")
rs.Abrir sql,conn,1,3
si no rs.eof entonces
páginasn=solicitud("páginasn")
si páginasn<=0 o páginasn="" entonces páginasn=1
rs.pagesize=página
pagezs=rs.recuento de páginas
SI cint(PAGEN)>pagezs ENTONCES paginasn=PAGEZS
zs=rs.recordcount
página=(páginasn-1)*página
rs.mover página,1
si findlrdisp<>"" entonces Response.Write "Después de la búsqueda, los registros de "&findlrdisp&" son los siguientes:"
Respuesta.Escribir "<borde de la tabla='0' ancho='90%'>"
si zs>=300 y topsn<>"" entonces
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>El número total es muy grande. Los primeros elementos "&ZS&" se muestran actualmente, divididos en las páginas "&PAGEZS&" Ahora esta es la página "&PAGESN&"</td>".
demás
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Hay elementos "&ZS&" en total, divididos en páginas "&PAGEZS&". la página es la página "&PAGESN&"</td>"
terminar si
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>Página anterior</A></td>"
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>Página siguiente</A></td>"
Response.Write "<td width='24%' ALIGN='RIGHT'>Ir a página"
Response.Write "<tipo de entrada='texto' nombre='PAGESN' tamaño='2'>Página<tipo de entrada='enviar' valor='GO' nombre='B1'></td></form> "
Respuesta.Escribir "</tr></table> "
si fh="H" ENTONCES
Response.Write "<table border='0' width='100%' cellspaceing='1' cellpadding='0'>"
Respuesta.Escribir " <tr bgcolor='#EDBAA5' align='center'> "
para ii=1 a i-1
Respuesta.Escribir "<td>"&dispFIL(ii)&"</td>"
próximo
Respuesta.Escribe "</tr>"
para iii=1 para paginar
Respuesta.Escribir "<tr bgcolor='#FFFAEE'>"
PARA II=1 A I-1
Respuesta.Escribir "<td>"&RS(fild(II))&"</td>"
PRÓXIMO
Respuesta.Escribe "</tr>"
RS.MOVENEXT
si rs.eof entonces salga por
próximo
Respuesta.Escribir "</table>"
DEMÁS
Response.Write "<table border='0' width='100%' cellspaceing='1' cellpadding='0'>"
para iii=1 para paginar
PARA II=1 A I-1
Respuesta.Escribir "<tr><td bgcolor='#EDBAA5' ALIGN='RIGHT' WIDTH='20%'>"&dispFIL(ii)&":</td><td bgcolor='#FFFAEE'>"&RS (campo(II))&"</td></tr>"
PRÓXIMO
Response.Write "<tr height='1'><td bgcolor='#CFBA9E' colspan='2' ALIGN='RIGHT' WIDTH='20%'> </td></tr>"
RS.MOVENEXT
si rs.eof entonces salga por
próximo
Respuesta.Escribir "</table>"
FINALIZAR SI
rs.cerrar
Respuesta.Escribir "<borde de la tabla='0' ancho='90%'>"
si zs>=300 y topsn<>"" entonces
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>El número total es muy grande. Los primeros elementos "&ZS&" se muestran actualmente, divididos en las páginas "&PAGEZS&" Ahora esta es la página "&PAGESN&"</td>".
demás
Response.Write "<tr> <form method='POST' action='?"&urllr&"'><td width='54%'>Hay elementos "&ZS&" en total, divididos en páginas "&PAGEZS&". la página es la página "&PAGESN&"</td>"
terminar si
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN-1&urllr&"'>Página anterior</A></td>"
Response.Write "<td width='11%' align='center'><a href='?PAGESN="&PAGESN+1&urllr&"'>Página siguiente</A></td>"
Response.Write "<td width='24%' ALIGN='RIGHT'>Ir a página"
Response.Write "<tipo de entrada='texto' nombre='PAGESN' tamaño='2'>Página<tipo de entrada='enviar' valor='GO' nombre='B1'></td></form> "
Respuesta.Escribir "</tr></table> "
demás
Respuesta.Escriba "No se encontró ningún registro adecuado"
terminar si
si es() entonces
tabdisp=Falso
demás
tabdisp=Verdadero
terminar si
FUNCIÓN FINAL
Función Er() 'Función de manejo de errores
Si Número de error = 0 Entonces
Er=falso
Demás
Err.Borrar
Er=verdadero
Terminar si
Función final
%>
Finalmente terminé de leer la función...
Estás un poco cansado, pero no importa si miras con atención o no, simplemente ajústalo. Aquí tienes un ejemplo de aplicación.
Primero, guardamos la función anterior, que es la parte entre <% y %>, en un archivo llamado TABDISP.ASP.
El código es el siguiente:
Mostrar una tabla de lista de trabajos, nombre de la tabla: ZG
Hay varios campos que incluyen ID, nombre, cargo, TEL BP, DZ (dirección)
.
. . . . . .
La conexión a la base de datos se omite aquí y no se escribirá.
%>
<!--#include file="TABDISP.asp"-->
<%
DISP="nombre,puesto,título,TEL<teléfono,BP<paginación,DZ<dirección"
FIND="Nombre<Nombre, Puesto<Título, DZ<Dirección"
PÁGINA="15"
FH="H"
TAB="ZG"
SI NO TABDISP(TAB,DISP,FIND,PAGEN,FH) ENTONCES
respuesta.escribir "Se produjo un error"
FINALIZAR SI
ESTABLECER CONEXIÓN=NADA
%>
Simplemente asigne un nombre de archivo al contenido anterior y todo estará bien.