Sunteți pe pagina 1din 19

UNITATEA DE ÎNVĂȚARE NR.

9
ASP și bazele de date

Cuprins:

9.1 CONECTAREA LA O BAZĂ DE DATE ............................................... 147


9.2 INTRODUCEREA DATELOR ÎN BAZA DE DATE............................ 149
9.3 SELECTAREA DATELOR DINTR-O BAZĂ DE DATE ..................... 152
9.4 ŞTERGEREA DATELOR DIN BAZA DE DATE ................................. 154
9.5 ACTUALIZAREA DATELOR ................................................................ 158
9.6 AFIŞAREA DATELOR ÎN BROWSER.................................................. 162
9.7 APLICAȚII ................................................................................................ 163

Obiective
Însuşirea noţiunilor generale despre conectarea la o bază de date ASP
Înțelegerea notiunilor de actualizare a datelor în bazele de date prin
intermediul paginilor web.
Utilizarea limbajului ASP în proiectarea paginilor web care preiau
informații din baze de date.

Timp alocat: 2 ore

9.1. Conectarea la o bază de date

ODBC şi DSN. ODBC provine de la Open Database Connection


(Connectivity). ODBC permite utilizatorilor să creeze scripturi ASP prin care să
facă legătura la o bază de date. Fiecare ODBC are propriul DSN (Data Source
Name). DSN-ul este un index complet al unei serii de informaţii în legătură cu baza
de date. În esenţă, este o variabilă care este folosită între server şi script-ul ASP.
DSN-ul este un cuvânt care specifică tipul driver-ului, numele de fişier şi locaţia
bazei de date. Există câteva tipuri de conexiuni ODBC:
 System DSN. Acest DSN este creat pe serverul web de administratorul
serverului. Este cel mai folosit tip de DSN şi în general cel mai sigur.
 File DSN. O conexiune pe care script-ul ASP o face de fiecare dată
când accesul la baza de date este cerut, specificând calea şi numele
bazei de date. Baza de date trebuie să se afle pe server într-un director
de unde script-ul o poate accesa.
Prezentarea pricipalelor căi de connectare la o bază de date:
Cod ASP Explicaţie
<% Aceasta este pricipala modalitate de
147
set conectare la un DSN pentru o bază de date
rs=Server.CreateObject("adodb.Rec care poate fi Access sau Excel. Secvenţa din
ordset") stânga realizează efectiv conexiunea
connect="DSN=dsnname"
rs.open connect %>
<% Aceasta este o altă cale de conectare la un
Session.timeout = 15 DSN pentru baze de date.
Set conn = Server.CreateObject
("ADODB.Connection")
conn.open "DSNName"
Set Session("MyDB_conn") = conn
%>
<% Această secvenţă apare la sfârşitul codului
conn.close ASP pentru a fi sigur că s-a închis
set conn=Nothing %> conexiunea la baza de date.
Să presupunem că am creat o bază de date Access şi vom crea un DSN.
Baza de date va conţine tabela Persoane cu următoarea structură:
Câmp ID Nume Email Telefon
Tip de date AutoNumber Text Text Text

Utilizând script-ul următor vom realiza conexiunea la baza de date:


<HEAD><TITLE>Testare ODBC / DSN</TITLE></HEAD>
<BODY>
<%
set rs=Server.CreateObject("adodb.Recordset")
'Setează DSN-ul egal cu numele DSN-ului
conn="DSN=Persoane"
'Interoghează baza de date folosind o sintaxă SQL şi pune
'informaţia într-o variabilă numită sqlstmt.
sqlstmt = "SELECT * from Persoane"
„ Deschide înregistrarea setată prin conectarea
„la baza de date folosind DSN. Apoi execută
„sintaxa SQL.
rs.open sqlstmt, conn
'Urmeaza o procedură (rutină) de erori.
If err.number>0 then
response.write "VBScript Errors Occured:" & "<P>"
response.write "Error Number=" & err.number & "<P>"
response.write "Error Descr.=" & err.description & "<P>"
response.write "Help Context=" & err.helpcontext & "<P>"
response.write "Help Path=" & err.helppath & "<P>"
response.write "Native Error=" & err.nativeerror & "<P>"
148
response.write "Source=" & err.source & "<P>"
response.write "SQLState=" & err.sqlstate & "<P>"
'Daca nu apar erori, s-a realizat conexiunea la baza de date
Else
response.write "S-a realizat conexiunea la baza de date."
End If
'Inchiderea conexiunii prin terminarea folosirii variabilei recordset.
rs.close
set rs=Nothing
%>
</BODY>
</HTML>

Odată parcură secvenţa de mai sus pagina ASP va arăta astfel:

9.2. Introducerea datelor în baza de date

Inserarea datelor în baze de date Access este destul de simplă. Această


operaţiune se face ca în tabelul de mai jos:
Cod ASP Explicaţie
insert into table (column1, Aceasta exprimare SQL este sintaxa corectă
column2, ...) Values (value1,pentru inserarea datelor în tabele. Folosind
value2, ...) ASP, această exprimare SQL poate arăta
diferit, dar inserarea valorilor se face în acest
fel.
149
variable = "1 + 2" Aceasta este o cale de stocare a informaţiei
variable = variable " = 3" într-o variabilă. În a doua linie din stânga
valoarea precedentă a cuvîntului ,,variable”
trece în următoarea atribuire a variabilei.
Pentru exemplificare, folosim strucura tabelară precedentă, Persoane:

Câmp ID Nume Email Telefon


Tip de date AutoNumber Text Text Text

Vom creea un formular cu buton de expediere pe care-l salvăm ca


insert_form.asp:
<HTML><HEAD><TITLE> Script de inserare a datelor </TITLE></HEAD>
<BODY>
<FORM ACTION="insert_data.asp" METHOD="POST">
<TABLE BORDER=1 WIDTH=500>
<TR>
<TD>Nume</TD><TD><INPUT TYPE=TEXT NAME=Nume></TD>
</TR>
<TR>
<TD>Email</TD><TD><INPUT TYPE=TEXT NAME=Email></TD>
</TR>
<TR>
<TD>Telefon</TD><TD><INPUT TYPE=TEXT NAME= Telefon ></TD>
</TR>
</TABLE>
<INPUT TYPE=SUBMIT>
</FORM></BODY></HTML>

150
După salvare şi execuţie, browserul va afişa ca mai sus:
Inserarea efectivă se face prin următoarea secvenţă de cod ASP, pe care-o
vom salva sub numele insert_data.asp.
<HTML><HEAD><TITLE> Script de inserare a datelor </TITLE>
</HEAD>
<BODY>
<%
'Setează variabilele din formularul precedent
Nume = request.form("Nume")
Email = request.form("Email")
Telefon = request.form("Telefon ")
'Trimiterea datelor către baza de date
set conn = server.createobject("adodb.connection")
'Face conectarea către DSN
conn.open "Persoane"
'Inserarea datelor în the baza de date este terminată
'prin inserarea în limbaj SQL, urmată de numele tabelei
'şi apoi de numele câmpurilor între paranteze, separate
'prin virgulă. Apoi, valorile sunt introduse în câmpuri.
SQLstmt = "INSERT INTO Persoane (Nume, Email, Telefon)"
SQLstmt = SQLstmt & " VALUES ("
SQLstmt = SQLstmt & "'" & Nume & "',"
SQLstmt = SQLstmt & "'" & Email & "',"
SQLstmt = SQLstmt & "'" & Telefon & "')"
Set RS = conn.execute(SQLstmt)

151
'Rutina pentru erori:

If err.number>0 then
response.write "VBScript Errors Occured:" & "<P>"
response.write "Error Number=" & err.number & "<P>"
response.write "Error Descr.=" & err.description & "<P>"
response.write "Help Context=" & err.helpcontext & "<P>"
response.write "Help Path=" & err.helppath & "<P>"
response.write "Native Error=" & err.nativeerror & "<P>"
response.write "Source=" & err.source & "<P>"
response.write "SQLState=" & err.sqlstate & "<P>"
End If
If conn.errors.count> 0 then
response.write "A apărut eroare!" & "<P>"
response.write SQLstmt & "<P>"
for counter= 0 to conn.errors.count
response.write "Error #" & conn.errors(counter).number & "<P>"
response.write "Error desc. -> " & conn.errors(counter).description & "<P>"
Next
Else
End If
conn.close
%>
Informaţia a fost inserată cu succes în baza de date.
</BODY> </HTML>

9.3. Selectarea datelor dintr-o bază de date

Este o operaţie aproape identică cu inserarea datelor, exceptând bineînţeles


faptul că în cazul inserării avem un formular şi un script pentru a adăuga informaţii
în baza de date, pe când la selecţie nu se foloseşte decât un script care face şi
afişarea informaţiilor din baza de date.
În cazul selecţiei se folosesc instrucţiunile de mai jos:

Cod ASP Explicaţie


select * from table Exemplu al unei declaraţii de selecţie fără a pune
vreo condiţie.
select * from table where
Exemplu al unei declaraţii de selecţie folosind o
column='condiţie'
condiţie.

152
Declaraţie de selecţie cu condiţie, care foloseşte
select * from table where
clauza LIKE. Orice cuvânt din coloana unde se face
column LIKE
căutarea ce conţine ceea ce se găseşte după LIKE
'% condiţie%'
între caracterele ,,%” va fi găsit, chiar dacă se
găseşte text înainte sau după el. Semnele procent pot
fi folosite de fiecare parte a datei care a fost
selectată.
Do while not rs.eof Această secvenţă este un exemplu de ciclu
... condiţional. Atâta timp cât setul de înregistrări nu a
... ajuns la capăt, se vor executa instrucţiunile din ciclu.
rs.MoveNext
Loop
Pe exemplul tabelei Persoane, vom crea următoarea secvenţă de cod, pe
care o vom salva cu numele select_data.asp:
<HTML>
<HEAD>
<TITLE>Script de selecţie</TITLE>
</HEAD>
<BODY>
<%
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
set rs=Server.CreateObject("adodb.Recordset")
rs.open ("SELECT * FROM Persoane"), DB
'Rutina logică. Dacă nu există date în baza de date
'(rs.eof sau recordset-ul este la sfârşit),
'afişează un mesaj că nu sunt înregistrări
'Altfel, va afişa înregistrările
If rs.eof then
response.write "Nu sunt înregistrări în baza de date!"
response.end
Else
'Acesta este un exemplu de ciclu. Instrucţiunea "Do"
'face pereche cu "Loop" de la sfarşitul acestui script. Este asociată
'execuţiei scriptului ce urmează, atata timp cât este indeplinită condiţia
'ca fişierul să nu se afle la sfârşit.
Do while not rs.eof
Nume = rs("Nume")
Email = rs("Email")
Telefon = rs("Telefon")
153
%>
Numele este: <%= Nume %><BR>
Adresa de email a persoanei este: <%= Email %><BR>
Telefonul persoanei: <%= Telefon %><BR>
<HR>
<%
rs.MoveNext
loop
End If
%>
</BODY>
</HTML>
Se va afişa:

9.4. Ştergerea datelor din baza de date

Sintaxa ştergerii înregistrărilor este simplă, dar pe cât este de simplă, pe


atât se poate face greşit. Ca în toate limbajele, ştergerea datelor nu este
recomandată. Mutarea către altă locaţie este cea mai recomandată în acest caz. O
sugestie pentru evitarea ştergerii datelor este folosirea unui câmp ,,statut” care să ia
valoarea activ sau inactiv pentru fiecare înregistrare. Astfel, toate cererile SQL vor
căuta toate înregistrările având câmpul ,,statut” având valoarea activ. Aceast mod
de lucru va asigura evitarea pierderii datelor valoroase.

154
Totuşi, dacă se alege metoda ştergerii înregistrărilor dintr-o bază de date,
aceasta se face potrivit tabelului de mai jos:

Cod ASP Explicaţie


delete * from table where
Această instrucţiune va şterge toate înregistrările unui
column='condiţie'
câmp ale căror valori sunt definite de condiţie.
delete * from table Toate înregistrările vor fi şterse, prin nefolosirea
where. În general este de preferat să se folosească o
clauză condiţională.

Pe modelul deja creat al bazei de date Persoane.DBF, care conţine tabela


Persoane, vom crea următorul script ASP de selecţie şi ştergere a unor înregistrări,
pe care-l vom salva cu numele select_delete_data.asp:
<HTML>
<HEAD>
<TITLE>Script de selectie si stergere a datelor</TITLE>
</HEAD>
<BODY>
<FORM ACTION="delete_data.asp" METHOD="POST">
<SELECT NAME="ID">
<OPTION SELECTED>Selectati inregistrarea pe care o stergeti:</OPTION>
<%
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
set rs=Server.CreateObject("adodb.Recordset")
rs.open ("SELECT * FROM Persoane"), DB
'Rutina logică. Dacă nu există date în baza de date
'(rs.eof sau recordset-ul este la sfârşit),
'afişează un mesaj că nu sunt înregistrări
'Altfel, va afişa înregistrările
If rs.eof then
response.write "Nu sunt înregistrări în baza de date!"
response.end
Else
'Acesta este un exemplu de ciclu. Instrucţiunea "Do"
'face pereche cu "Loop" de la sfârşitul acestui script. Este asociată
'execuţiei scriptului ce urmează, atata timp cât este îndeplinită condiţia
'ca fişierul să nu se afle la sfârşit.
Do while not rs.eof

155
ID=rs(“ID”)
Nume = rs("Nume")
Email = rs("Email")
Telefon = rs("Telefon")
'Se va afişa fiecare înregistrare într-o căsuţă ascunsă
„Se vor afişa toate înregistrările baze de date şi se va selecta înregistrarea
'pe care dorim să o ştergem.
%>
<OPTION VALUE="<%= ID %>"><%= Nume %></OPTION>
<%
rs.MoveNext
loop
End If
%>
</SELECT>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>

În urma execuţiei acestui cod, browserul va afişa:

156
După această parte de selecţie a datelor care vor fi şterse urmează operaţia
efectivă de ştergere, care se face prin următorul paragraf de cod asp, pe care-l vom
salva cu numele delete_data.asp.
<HTML>
<HEAD>
<TITLE>Script de ştergere a datelor</TITLE>
</HEAD>
<BODY>
<%
'Această variabilă este selectată prin formularul precednt.
ID = request.form("ID")
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
set rs=Server.CreateObject("adodb.Recordset")
' Crează cererea de stergere pe baza valorii primite
rs.open ("delete *from Persoane where ID= “& ID), DB
%>
<h2>Înregistrarea selectată a fost ştearsă.</h2>
<%
DB.close
%>
</BODY>
</HTML>
După rularea şi a acestui cod, se va şterge înregistrarea selectată din baza
de date, iar browserul afişează mesajul de confirmare a ştergerii.
Astfel, operaţia de ştergere a datelor selectate din baza de date MS Access
a fost realizată cu success. Urmează o altă operaţie importantă asupra datelor unei
baze de date, şi anume actualizarea acestora.

157
9.5. Actualizarea datelor

Se face foarte uşor utilizând doar trei pagini ASP. Sunt şi alte căi de
actualizare a datelor, dar prin ASP manipularea datelor se face fără ştergerea
datelor şi apoi readăugarea actualizată a lor. Pentru actualizarea datelor se foloseşte
instrucţiunea Update, cu sintaxa:
UPDATE table SET column='valoare' column2='valoare'… where column=
'identificator'
Folosind acelaşi exemplu al tabelei Persoane vom avea trei scripturi
principale, unul de selecţie a datelor pe care vrem să le actualizăm, cel de-al doilea
pentru afişarea formularului şi a tuturor valorilor câmpurilor din baza de date iar
cel de-al treilea va realiza efectiv actualizarea bazei de date.
Primul script, pe care-l salvăm ca select_update_data.asp, va fi un formular
asemănător cu cel de la selecţia datelor pentru ştergere:
<HTML>
<HEAD>
<TITLE>Script de selectie si actualizare a datelor</TITLE>
</HEAD>
<BODY>
<FORM ACTION="modify_data1.asp" METHOD="POST">
<SELECT NAME="ID">
<OPTION SELECTED>Alegeţi înregistrarea pe care o modificaţi</OPTION>
<%
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
set rs=Server.CreateObject("adodb.Recordset")
rs.open ("SELECT * FROM Persoane"), DB

158
'Rutina logică. Dacă nu există date în baza de date
'(rs.eof sau recordset-ul este la sfârşit),
'afişează un mesaj că nu sunt înregistrări
'Altfel, va afişa înregistrările
If rs.eof then
response.write "Nu sunt înregistrări în baza de date!"
response.end
Else
'Acesta este un exemplu de ciclu. Instrucţiunea "Do"
'face pereche cu "Loop" de la sfarşitul acestui script. Este asociată
'execuţiei scriptului ce urmează, atâta timp cât este îndeplinită condiţia
'ca fişierul să nu se afle la sfârşit.
Do while not rs.eof
ID=rs(“ID”)
Nume = rs("Nume")
Email = rs("Email")
Telefon = rs("Telefon")
'Se va afişa fiecare înregistrare într-o căsuţă ascunsă
„Se vor afişa toate înregistrările baze de date şi se va selecta înregistrarea
'pe care dorim să o modificăm.
%>
<OPTION VALUE="<%= ID %>"><%= Nume %></OPTION>
<%
rs.MoveNext
loop
End If
%>
</SELECT>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>

Cel de-al doilea script salvat modify_data1.asp va afişa valorile câmpurilor


tabelei pentru înregistrarea selectată anterior într-un formular în care se pot
introduce valorile modificate pentru aceste date:

<HTML>
<HEAD>
<TITLE>Formular de modificare a datelor</TITLE>
</HEAD>
<BODY>
<FORM ACTION="modify_data2.asp" METHOD=POST>

159
<%
'Această variabilă este selectată prin formularul precednt.
ID = request.form("ID")
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
set rs=Server.CreateObject("adodb.Recordset")
rs.open("SELECT * from Persoane WHERE „ID =‟" & ID & " "), DB
If rs.eof then
response.write "Nu sunt înregistristrări pentru acest ID."
response.end
Else
„Se declară toate variabilele câmp
Dim ID, Nume, Email, Telefon
„Extrage datele pentru fiecare câmp pentru a fi afişate şi schimbate
Nume=rs(“Nume”)
Email=rs(“Email”)
Telefon=rs(“Telefon”)
End If
%>
<INPUT TYPE=HIDDEN NAME=ID VALUE="<%= ID %>">
<TABLE WIDTH=600 BORDER=1>
<TR><TD>Nume:</TD>
<TD><INPUT NAME="Nume" TYPE=text VALUE="<%= Nume %>"></TD>
</TR>
<TR>
<TD>Email:</TD>
<TD><INPUT NAME="Email" TYPE=text VALUE="<%= Email %>"></TD>
</TR>
<TR>
<TD>Telefon:</TD>
<TD><INPUT NAME="Telefon" TYPE=text VALUE="<%= Telefon
%>"></TD>
</TR>
<TR>
<TD COLSPAN=2><INPUT TYPE="Submit"></TD>
</TR>
<%
rs.close
%>
</TABLE>

160
</FORM>
</BODY>
</HTML>

Se va afişa în browser înregistrarea care va fi modificată:

Cel de-al treilea script, care va actualiza efectiv datele modificate prin
formularul din scriptul precedent, va fi salvat ca modify_data2.asp:
<HTML><HEAD><TITLE>Formular de modificare a datelor</TITLE>
</HEAD>
<BODY>
<%
'Această variabilă este selectată prin formularul precedent.
ID = request.form("ID")
Nume= request.form(“Nume”)
Email= request.form(“Email”)
Telefon= request.form(“Telefon”)
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))

161
set rs=Server.CreateObject("adodb.Recordset")
rs.open(Persoane), DB
SQLstmt = "UPDATE [Persoane]"
SQLstmt = SQLstmt & " SET Nume='" & Nume &"',"
SQLstmt = SQLstmt & " Email='" & Email & "',"
SQLstmt = SQLstmt & " Telefon ='" & Telefon & "'"
SQLstmt = SQLstmt & " where ID=" & ID
Rs.Execute(SQLstmt)
%>
Înregistrarea pentru numele <b><%= Nume %></b>a fost modificată.
<%
DB.close
%>
</BODY>
</HTML>

În browser se va afişa:

9.6. Afişarea datelor în browser

Afişarea datelor dintr-o bază de date se face simplu pentru un număr mic
de înregistrări prin instrucţiunea select * from table, însă pentru un număr foarte
mare de înregistrări această metodă nu este adecvată, browserul nefăcând faţă

162
încărcării atâtor înregistrări. Pentru a rezolva aceste neajunsuri s-a pus la cale o
metodă de afişare pe pagini, bazată pe informaţiile din tabelul următor:

Cod ASP Explicaţie


Această linie face legătura la
<!--#include virtual="ADOVBS.inc"--> bibliotecă SSI (Server Side Include)
de funcţii şi proceduri necesare
execuţiei codului de afişare a
datelor pe pagini, numită
ADOVBS.inc .
Acest tag ASP este similar cu
request.form. Codul ASP va afişa
request.querystring("nume_câmp ")
doar o parte a adresei URL în
formtul
http://domeniu.com/script.asp?nume
_câmp =1
Cint Este o funcţie care cere ca variabila
întoarsă să fie un întreg.

9.7. Aplicații

Pe modelul bazei de date Persoane.DBF, utilizată şi anterior, vom crea un


exemplu de cod ASP de afişare a informaţiilor în browser pe pagini, script pe care-l
vom salva ca display_data.asp:
<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<% Response.Buffer = True %>
<!--#INCLUDE virtual="adovbs.inc" -->
<%
Dim DB
'Setăm câte înregistrări pe pagină se afişează.
Const NumberPerPage = 2
'Se stabileşte pagina curentă
Dim CurrentPage
If request.querystring("CurrentPage") = "" then
'Prima pagină
CurrentPage = 1
Else
'Dacă nu se află pe prima pagină, citeşte string-ul din adresa URL
CurrentPage = request.querystring("CurrentPage")
End If
„Setează DSN-ul, crează exprimarea SQL şi
„conectează setul de înregistrări la acestea.
set DB = Server.CreateObject ("adodb.Connection")
163
DB.open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = "
+Server.MapPath("/Persoane.mdb"))
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
'Stabileşte locaţia cursorului.
„Acest lucru asigură pornirea de la începutul recordsetului
rs.CursorLocation = adUseClient
'Stabileşte câte înregistrări ţine minte pentru afişarea pe o pagină
rs.CacheSize = NumberPerPage
rs.open ("SELECT * FROM Persoane"), DB
'Se poziţionează recordsetul la început
rs.MoveFirst
rs.PageSize = NumberPerPage
'Află câte pagini vor fi afişate prin împărţirea numărului de înregistrări
„la numărul de înregistrări afişate pe o pagină (2)
Dim TotalPages
TotalPages = rs.PageCount
'Stabileşte pagina activă
rs.AbsolutePage = CurrentPage
Dim count
%>
<HTML>
<HEAD>
<TITLE> Script de afişare a datelor în browser
</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=1 WIDTH=600>
<TR>
<TH>NUME</TH>
<TH>EMAIL</TH>
<TH>TELEFON</TH>
</TR>
<%
Count = 0
Do While Not rs.eof And Count < rs.PageSize
%>
<TR>
<TD><%= rs("Nume") %></TD>
<TD><%= rs("Email") %></TD>
<TD><%= rs("Telefon") %></TD>
</TR>
<%
Count = Count + 1
164
'Trece la următoarea înregistrare şi reia ciclul pentru aceasta
rs.MoveNext
Loop
'Afişează numărul fiecărei pagini în formatul
„Pagina numărul din numărul total de pagini
response.write "</TABLE>"
response.write("Pagina " & CurrentPage & " din " & TotalPages)

'Afişează butoane pentru pagina anterioară şi pagina următoare


If CurrentPage > 1 then
'Setul de înregistrări nu se află la început
„Se poate afişa butonul pentru pagina anterioară
response.write("<INPUT TYPE=BUTTON VALUE='<<PREVIOUS'")
response.write("ONCLICK=""display_data.asp?CurrentPage=")
response.write( CurrentPage - 1 & "';"">")
End If
If CInt(CurrentPage) <> CInt(TotalPages) then
'Setul de înregistrări nu se află la sfârşit
„Se poate afişa butonul pentru pagina următoare
response.write("&nbsp;&nbsp;<INPUT TYPE=BUTTON VALUE='NEXT>>'")
response.write("ONCLICK=""display_data.asp?CurrentPage=")
response.write( CurrentPage + 1 & "';"">")
End If
%>
</BODY></HTML>

165