Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica
Dezvoltarea unei aplicatii web in asp

Dezvoltarea unei aplicatii web in asp


DEZVOLTAREA UNEI APLICATII WEB IN ASP

Ce inseamna ASP si la ce se poate folosi

ASP este prescurtarea de la Active Server Pages care este un mediu de dezvoltare de scripturi care sa ruleze pe partea de server (server-side scripting). Prin intermediul ASP se pot crea continut dinamic si se poate dezvolta adevarate aplicatii web care sa rivalizeze chiar cu aplicatiile desktop.

ASP (Active Server Pages) este un limbaj de programare a paginilor WWW dezvoltat de Microsoft in sintaxa VBScript. Cu ajutorul acestuia se pot realiza pagini dinamice conectate la o baza de date. Script-urile ASP sunt rulate pe server, iar rezultatele sunt trimise browser-ului. Fisierele ASP contin etichete HTML si script-uri ASP care sunt introduse prin marcajele:m <%..%>.



In mod predefinit, ASP lucreaza cu VBScript, insa se pot utiliza si alte limbaje, de exemplu JavaScript. In cel de-al doilea caz insa, prima linie a codului ASP va arata in felul urmator:

<% @language = JavaScript

O pagina ASP reprezinta un fisier care este stocat pe un server Web si care are extensia .asp. Inainte ca fisierul sa fie trimis catre browser-ul utilizatorului, acesta este prelucrat de catre serverul Web. Paginile ASP sunt asemanatoare cu codurile CGI, dar permite programatorilor Visual Basic sa utilizeze instrumente cunoscute. ASP este un limbaj simplu, a carui cunoastere este esentiala pentru realizatorii de pagini web care vor sa contruiasca site-uri interactive.

Active Server Pages poate fi folosit cu urmatoarele servere Web:

Microsoft Internet Information Server

Microsoft Peer Web Services

Microsoft Personal Web Server

Microsoft Personal Web Server functioneaza sub sistemele de operare Windows 95, Windows 98 sau Windows NT Workstation. Se poate descarca server-ul web de la adresa www.microsoft.com/windows/ie/pqs/default.htm. Acesta poate fi folosit pentru gazduirea unui site cu un trafic foarte redus sau pur si simplu pentru a testa site-ul inainte de publicare.

Spre deosebire de Personal Web Server, Internet Information Server accepta simultan sute sau chiar mii de utilizatori. Insa server-ul IIS nu este compatibil cu sistemele de operare Windows 95 si Windows 98. Se poate folosi cu Windows NT Server sau Windows 2000 Server.

Pentru a invata ASP sunt necesare cunostinte de HTML, VBScript, insa si de SQL pentru a accesa baze de date. Se poate folosi ca baza de date Microsoft Access, dar pentru realizarea unor adevarate site-uri comerciale in ASP, este recomandata folosirea Microsoft SQL Server, intrucat acesta din urma poate accepta simultan mii de utilizatori si baze de date de dimensiuni foarte mari.

Notiuni elementare de programare ASP

Fiecare pagina ASP are extensia .asp, care este extensia predefinita, in caz contrar serverul web nu va parcurge codul ASP inclus in pagina web.

Afisarea in browser se face prin instructiunea ,,response.write", iar comentariile in interiorul codului ASP se fac dupa simbolul ,, ' ".


De exemplu, secventa de cod urmatoare va avea ca rezultat afisarea in browser de mai sus:

<HTML>

<HEAD>

<TITLE>Hello Word. </TITLE>

</HEAD>

<BODY>

<%

' Se va afisa prin response.write textul ,,Bine ati venit pe pagina noastra!"

response.write "Bine ati venit pe pagina noastra!"

%>

</BODY>

</HTML>

Browserul va receptiona numai codul ASP, nu si comentariul si va afisa textul indicat prin comanda response.write.

Utilizarea variabilelor in ASP

In cod ASP, ca in orice alt limbaj de acest gen, variabilele sunt utilizate in mai multe feluri. O variabila poate tine locul unei secvente de text sau unui cod binar. O simpla valoare a unei variabile in ASP poate fi utilizata pentru afisarea unui text care este prestabilit in cod ASP, ori poate fi dinamic generata intr-o pagina web. Vom avea urmatoarele moduri de utilizare a tipurilor de variabile folosite frecvent in cod ASP:

Cod ASP

Explicatie

nume = 'Jhon'

Exemplu de valoare a unei variabile simple de tip string (text)

request.form('nume')

Exemplu de valoare a unei variabile care este generata printr-un buton de expediere al unui formular

ArrayNames(0) = 'Jhon '

ArrayNames(1) = 'Smith'
arrayNames(2) = 'Aisac'

Exemplu al unei variabile de tip array in ASP

Variabila simpla (single) si sirul de tip array pot avea orice numar de caractere. Variabilele nu pot incepe cu un numar, nici sa contina caracterul punct (.).


Crearea unui formular HTML cu buton de expediere se realizeaza prin secventa de mai jos. Browserul va afisa:

<HTML>

<HEAD>

<TITLE> Formular cu variabile </TITLE>

</HEAD>

<BODY>

<FORM ACTION='form_submit.asp' METHOD='POST'>

Nume: <INPUT TYPE='TEXT' NAME='nume'>

<BR>

<INPUT TYPE=SUBMIT>

</FORM>

</BODY>

</HTML>

Rezultatul formularului precedent va fi afisat prin secventa urmatoare:

<HTML>

<HEAD>

<TITLE>Rezultatul formularului</TITLE>

</HEAD>

<BODY>

Numele este:

<%

nume = request.form("nume")

response.write nume

%>

<BR>

</BODY>

</HTML>

Browserul afiseaza dupa apasarea butonului de expediere:


Afisarea datei si timpului in cod ASP

Afisarea datei si timpului pe pagina web sunt foarte importante din mai multe motive. Pentru acest lucru se utilizeaza cateva functii simple. Aceste functii sunt cuvinte special rezervate in codul ASP, deci numele acestor functii nu pot fi folosite ca nume de variabile. Modul de lucru al acestor functii este prezentat in continuare:

Cod ASP

Explicatie

Now

Va afisa data si ora exacta in formatul: 3/23/2001 12:11:11 PM

Date

Va afisa data in formatul:

Time

Va afisa ora exacta in formatul: 12:11:11 PM

<%= variabila %>

Este acelasi lucru cu <% response.write variabila %>

In urma secventei de cod urmatoare:

<HEAD>

<TITLE>Date, Time & Now</TITLE>

</HEAD>

<BODY>

NOW: <%= NOW %> <BR>
Data: <%= DATE %> <BR>
Timpul: <%= TIME %> <BR>

</BODY>

</HTML>


browserul va afisa:

ASP si bazele de date.

Conectarea la o baza de date

ODBC si DSN ODBC provine de la Open Database Connection (Connectivity). ODBC permite utilizatorilor sa creeze scripturi ASP prin care sa faca legatura la o baza de date. Fiecare ODBC are propriul DSN (Data Source Name). DSN-ul este un index complet al unei serii de informatii in legatura cu baza de date. In esenta, este o variabila care este folosita intre server si script-ul ASP. DSN-ul este un cuvant care specifica tipul driver-ului, numele de fisier si locatia bazei de date. Exista cateva tipuri de conexiuni ODBC:

System DSN. Acest DSN este creat pe serverul web de administratorul serverului. Este cel mai folosit tip de DSN si in general cel mai sigur.

File DSN. O conexiune pe care script-ul ASP o face de fiecare data cand accesul la baza de date este cerut, specificand calea si numele bazei de date. Baza de date trebuie sa se afle pe server intr-un director de unde script-ul o poate accesa.

Prezentarea pricipalelor cai de connectare la o baza de date:

Cod ASP

Explicatie

<%
set rs=Server.CreateObject('adodb.Recordset')
connect='DSN=dsnname'
rs.open connect
%>

Aceasta este pricipala modalitate de conectare la un DSN pentru o baza de date care poate fi Access sau Excel. Secventa din stanga realizeaza efectiv conexiunea

<%
Session.timeout = 15
Set conn = Server.CreateObject('ADODB.Connection')
conn.open 'DSNName'
Set Session('MyDB_conn') = conn
%>

Aceasta este o alta cale de conectare la un DSN pentru baze de date.


<%
conn.close
set conn = Nothing
%>

Aceasta secventa apare la sfarsitul codului ASP pentru a fi sigur ca s-a inchis conexiunea la baza de date.

Sa presupunem ca am creat o baza de date Access si vom crea un DSN. Baza de date va contine tabela Persoane cu urmatoarea structura:

Camp

ID

Nume

Email

Telefon

Tip de date

AutoNumber

Text

Text

Text

Utilizand script-ul urmator vom realiza conexiunea la baza de date:

<HEAD>
<TITLE>Testare ODBC / DSN</TITLE>
</HEAD>
<BODY>

<%
set rs=Server.CreateObject('adodb.Recordset')

'Seteaza DSN-ul egal cu numele DSN-ului
conn='DSN=Persoane'

'Interogheaza baza de date folosind o sintaxa SQL si pune

'informatia intr-o variabila numita sqlstmt.
sqlstmt = 'SELECT * from Persoane'

' Deschide inregistrarea setata prin conectarea

'la baza de date folosind DSN. Apoi executa

'sintaxa SQL.
rs.open sqlstmt, conn

'Urmeaza o procedura (rutina) 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>'
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>

Odata parcura secventa de mai sus pagina ASP va arata astfel:


Introducerea datelor in baza de date

Inserarea datelor in baze de date Access este destul de simpla. Aceasta operatiune se face ca in tabelul de mai jos:

Cod ASP

Explicatie

insert into table (column1, column2, ) Values (value1, value2, )

Aceasta exprimare SQL este sintaxa corecta pentru inserarea datelor in tabele. Folosind ASP, aceasta exprimare SQL poate arata diferit, dar inserarea valorilor se face in acest fel.

variable = '1 + 2'

variable = variable ' = 3'

Aceasta este o cale de stocare a informatiei intr-o variabila. In a doua linie din stanga valoarea precedenta a cuvintului ,,variable" trece in urmatoarea atribuire a variabilei.

Pentru exemplificare, folosim strucura tabelara precedenta, Persoane:

Camp

ID

Nume

Email

Telefon

Tip de date

AutoNumber

Text

Text

Text

Vom creea un formular cu buton de expediere pe care-l salvam 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>

Dupa salvare si executie, browserul va afisa ca mai sus:

Inserarea efectiva se face prin urmatoarea secventa de cod ASP, pe care-o vom salva sub numele insert_data.asp

<HTML>
<HEAD>
<TITLE> Script de inserare a datelor </TITLE>
</HEAD>
<BODY>

<%

'Seteaza variabilele din formularul precedent

Nume = request.form('Nume')

Email = request.form('Email')

Telefon = request.form('Telefon ')

'Trimiterea datelor catre baza de date
set conn = server.createobject('adodb.connection')

'Face conectarea catre DSN
conn.open 'Persoane'

'Inserarea datelor in the baza de date este terminata

'prin inserarea in limbaj SQL, urmata de numele tabelei

'si apoi de numele campurilor intre paranteze, separate

'prin virgula. Apoi, valorile sunt introduse in campuri.

SQLstmt = 'INSERT INTO Persoane (Nume, Email, Telefon)'
SQLstmt = SQLstmt & ' VALUES ('
SQLstmt = SQLstmt & ''' & Nume & '','
SQLstmt = SQLstmt & ''' & Email & '','
SQLstmt = SQLstmt & ''' & Telefon & '')'
Set RS = conn.execute(SQLstmt)


'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 aparut 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
%>
Informatia a fost inserata cu succes in baza de date.

</BODY>
</HTML>

Selectarea datelor dintr-o baza de date

Este o operatie aproape identica cu inserarea datelor, exceptand bineinteles faptul ca in cazul inserarii avem un formular si un script pentru a adauga informatii in baza de date, pe cand la selectie nu se foloseste decat un script care face si afisarea informatiilor din baza de date.

In cazul selectiei se folosesc instructiunile de mai jos:

Cod ASP

Explicatie

select * from table

Exemplu al unei declaratii de selectie fara a pune vreo conditie.

select * from table where column='conditie'

Exemplu al unei declaratii de selectie folosind o conditie.

select * from table where column LIKE

'% conditie%'

Declaratie de selectie cu conditie, care foloseste clauza LIKE. Orice cuvant din coloana unde se face cautarea ce contine ceea ce se gaseste dupa LIKE intre caracterele ,,%" va fi gasit, chiar daca se gaseste text inainte sau dupa el. Semnele procent pot fi folosite de fiecare parte a datei care a fost selectata.

Do while not rs.eof

rs.MoveNext

Loop

Aceasta secventa este un exemplu de ciclu conditional. Atata timp cat setul de inregistrari nu a ajuns la capat, se vor executa instructiunile din ciclu.

Pe exemplul tabelei Persoane, vom crea urmatoarea secventa de cod, pe care o vom salva cu numele select_data.asp:

<HTML>
<HEAD>
<TITLE>Script de selectie</TITLE>
</HEAD>
<BODY>

<%

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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 logica. Daca nu exista date in baza de date

'(rs.eof sau recordset-ul este la sfarsit),

'afiseaza un mesaj ca nu sunt inregistrari

'Altfel, va afisa inregistrarile
If rs.eof then
response.write 'Nu sunt inregistrari in baza de date!'
response.end
Else

'Acesta este un exemplu de ciclu. Instructiunea 'Do'

'face pereche cu 'Loop' de la sfarsitul acestui script. Este asociata

'executiei scriptului ce urmeaza, atata timp cat este indeplinita conditia

'ca fisierul sa nu se afle la sfarsit.

Do while not rs.eof
Nume = rs('Nume')
Email = rs('Email')

Telefon = rs('Telefon')

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

Stergerea datelor din baza de date

Sintaxa stergerii inregistrarilor este simpla, dar pe cat este de simpla, pe atat se poate face gresit. Ca in toate limbajele, stergerea datelor nu este recomandata. Mutarea catre alta locatie este cea mai recomandata in acest caz. O sugestie pentru evitarea stergerii datelor este folosirea unui camp ,,statut" care sa ia valoarea activ sau inactiv pentru fiecare inregistrare. Astfel, toate cererile SQL vor cauta toate inregistrarile avand campul ,,statut" avand valoarea activ. Aceast mod de lucru va asigura evitarea pierderii datelor valoroase.

Totusi, daca se alege metoda stergerii inregistrarilor dintr-o baza de date, aceasta se face potrivit tabelului de mai jos:

Cod ASP

Explicatie

delete * from table where column='conditie'

Aceasta instructiune va sterge toate inregistrarile unui camp  ale caror valori sunt definite de conditie.

delete * from table

Toate inregistrarile vor fi sterse, prin nefolosirea where. In general este de preferat sa se foloseasca o clauza conditionala.

Pe modelul deja creat al bazei de date Persoane.DBF, care contine tabela Persoane, vom crea urmatorul script ASP de selectie si stergere a unor inregistrari, 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>

<%

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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 logica. Daca nu exista date in baza de date

'(rs.eof sau recordset-ul este la sfarsit),

'afiseaza un mesaj ca nu sunt inregistrari

'Altfel, va afisa inregistrarile
If rs.eof then
response.write 'Nu sunt inregistrari in baza de date!'
response.end

Else

'Acesta este un exemplu de ciclu. Instructiunea 'Do'

'face pereche cu 'Loop' de la sfarsitul acestui script. Este asociata

'executiei scriptului ce urmeaza, atata timp cat este indeplinita conditia

'ca fisierul sa nu se afle la sfarsit.

Do while not rs.eof

ID=rs("ID")
Nume = rs('Nume')
Email = rs('Email')

Telefon = rs('Telefon')

'Se va afisa fiecare inregistrare intr-o casuta ascunsa

Se vor afisa toate inregistrarile baze de date si se va selecta inregistrarea

'pe care dorim sa o stergem.

%>

<OPTION VALUE='<%= ID %>'><%= Nume %></OPTION>

<%
rs.MoveNext
loop
End If
%>

</SELECT>

<INPUT TYPE='SUBMIT'>

</FORM>

</BODY>

</HTML>


In urma executiei acestui cod, browserul va afisa:

Dupa aceasta parte de selectie a datelor care vor fi sterse urmeaza operatia efectiva de stergere, care se face prin urmatorul paragraf de cod asp, pe care-l vom salva cu numele delete_data.asp.

<HTML>
<HEAD>
<TITLE>Script de stergere a datelor</TITLE>
</HEAD>
<BODY>

<%
'Aceasta variabila este selectata prin formularul precednt.
ID = request.form('ID')

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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')

' Creaza cererea de stergere pe baza valorii primite
rs.open ('delete *from Persoane where ID= "& ID), DB

%> <h2>Inregistrarea selectata a fost stearsa.</h2>
<%
DB.close
%> </BODY>
</HTML>

Dupa rularea si a acestui cod, se va sterge inregistrarea selectata din baza de date, iar browserul afiseaza mesajul de confirmare a stergerii.

Astfel, operatia de stergere a datelor selectate din baza de date MS Access a fost realizata cu success. Urmeaza o alta operatie importanta asupra datelor unei baze de date, si anume actualizarea acestora.


Actualizarea datelor (inregistrarilor) unei baze de date

Se face foarte usor utilizand doar trei pagini ASP. Sunt si alte cai de actualizare a datelor, dar prin ASP manipularea datelor se face fara stergerea datelor si apoi readaugarea actualizata a lor. Pentru actualizarea datelor se foloseste instructiunea Update, cu sintaxa:

UPDATE table SET column='valoare' column2='valoare'. where column= 'identificator'

Folosind acelasi exemplu al tabelei Persoane vom avea trei scripturi principale, unul de selectie a datelor pe care vrem sa le actualizam, cel de-al doilea pentru afisarea formularului si a tuturor valorilor campurilor din baza de date iar cel de-al treilea va realiza efectiv actualizarea bazei de date.

Primul script, pe care-l salvam ca select_update_data.asp, va fi un formular asemanator cu cel de la selectia datelor pentru stergere:

<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>Alegeti inregistrarea pe care o modificati</OPTION>

<%

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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 logica. Daca nu exista date in baza de date

'(rs.eof sau recordset-ul este la sfarsit),

'afiseaza un mesaj ca nu sunt inregistrari

'Altfel, va afisa inregistrarile
If rs.eof then
response.write 'Nu sunt inregistrari in baza de date!'
response.end

Else

'Acesta este un exemplu de ciclu. Instructiunea 'Do'

'face pereche cu 'Loop' de la sfarsitul acestui script. Este asociata

'executiei scriptului ce urmeaza, atata timp cat este indeplinita conditia

'ca fisierul sa nu se afle la sfarsit.

Do while not rs.eof

ID=rs("ID")
Nume = rs('Nume')
Email = rs('Email')

Telefon = rs('Telefon')

'Se va afisa fiecare inregistrare intr-o casuta ascunsa

Se vor afisa toate inregistrarile baze de date si se va selecta inregistrarea

'pe care dorim sa o modificam.

%>

<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 afisa valorile campurilor tabelei pentru inregistrarea selectata anterior intr-un formular in 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>

<%
'Aceasta variabila este selectata prin formularul precednt.
ID = request.form('ID')

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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
inregistristrari pentru acest ID.'
response.end
Else

Se declara toate variabilele camp

Dim ID, Nume, Email, Telefon

'Extrage datele pentru fiecare camp pentru a fi afisate si 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>

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


Se va afisa in browser inregistrarea care va fi modificata:

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>

<%
'Aceasta variabila este selectata prin formularul precedent.
ID = request.form('ID')

Nume= request.form "Nume"

Email= request.form("Email")

Telefon= request.form("Telefon")

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari 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(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)

%>

Inregistrarea pentru numele <b><%= Nume %></b>a fost modificata.


<%
DB.close
%> </BODY>
</HTML>

In browser se va afisa:

Afisarea datelor in browser

Afisarea datelor dintr-o baza de date se face simplu pentru un numar mic de inregistrari prin instructiunea select * from table, insa pentru un numar foarte mare de inregistrari aceasta metoda nu este adecvata, browserul nefacand fata incarcarii atator inregistrari. Pentru a rezolva aceste neajunsuri s-a pus la cale o metoda de afisare pe pagini, bazata pe informatiile din tabelul urmator:

Cod ASP

Explicatie

<!--#include virtual='ADOVBS.inc'-->

Aceasta linie face legatura la biblioteca SSI (Server Side Include) de functii si proceduri necesare executiei codului de afisare a datelor pe pagini, numita ADOVBS.inc .

request.querystring('nume_camp ')

Acest tag ASP este similar cu request.form. Codul ASP va afisa doar o parte a adresei URL in formtul

https://domeniu.com/script.asp?nume_camp =1

Cint

Este o functie care cere ca variabila intoarsa sa fie  un intreg.

Pe modelul bazei de date Persoane.DBF, utilizata si anterior, vom crea un exemplu de cod ASP de afisare a informatiilor in 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
'Setam cate inregistrari pe pagina se afiseaza.
Const NumberPerPage = 2

'Se stabileste pagina curenta
Dim CurrentPage
If request.querystring('CurrentPage') = '' then
'Prima pagina
CurrentPage = 1
Else
'Daca nu se afla pe prima pagina, citeste string-ul din adresa URL
CurrentPage = request.querystring('CurrentPage')
End If

'Seteaza DSN-ul, creaza exprimarea SQL si

conecteaza setul de inregistrari la acestea.

set DB = Server.CreateObject ('adodb.Connection')

DB.open ('PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE = ' +Server.MapPath('/Persoane.mdb'))

Dim rs
Set rs = Server.CreateObject('ADODB.Recordset')
'Stabileste locatia cursorului.

'Acest lucru asigura pornirea de la inceputul recordsetului
rs.CursorLocation = adUseClient
'Stabile
ste cate inregistrari tine minte pentru afisarea pe o pagina
rs.CacheSize = NumberPerPage
rs.open ('SELECT * FROM Persoane'), DB
'Se pozitioneaza recordsetul la inceput
rs.MoveFirst
rs.PageSize = NumberPerPage

'Afla cate pagini vor fi afisate prin impartirea numarului de inregistrari

'la numarul de inregistrari afisate pe o pagina (2)
Dim TotalPages
TotalPages = rs.PageCount

'Stabileste pagina activa
rs.AbsolutePage = CurrentPage
Dim count
%>
<HTML>
<HEAD>
<TITLE> Script de afisare a datelor in 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

'Trece la urmatoarea inregistrare si reia ciclul pentru aceasta
rs.MoveNext
Loop

'Afiseaza numarul fiecarei pagini in formatul


'Pagina numarul din numarul total de pagini
response.write '</TABLE>'
response.write('Pagina ' & CurrentPage & ' din ' & TotalPages)
'Afiseaza butoane pentru pagina anterioara si pagina urmatoare
If CurrentPage > 1 then
'Setul de inregistrari nu se afla la inceput

'Se poate afisa butonul pentru pagina anterioara
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 inregistrari nu se afla la sfarsit

'Se poate afisa butonul pentru pagina urmatoare
response.write('&nbsp;&nbsp;<INPUT TYPE=BUTTON VALUE='NEXT>>'')
response.write('ONCLICK=''display_data.asp?CurrentPage=')
response.write( CurrentPage + 1 & '';''>')
End If
%>
</BODY>
</HTML>

Editoare ASP

Pentru realizarea paginilor ASP se folosesc editoare. Acestea pot fi editoare comune sau specializate. Cele mai utilizate editoare ASP sunt:

Notepad, dar acesta este un editor greoi si plictisitor;

TextPad (www.textpad.com). TextPad este un favorit al programatorilor fiind un editor ASCII care beneficiaza de multe caracteristici menite sa simplifice munca programatorilor. Cu ajutorul acestuia se pot scrie coduri in ASP, C, C++, Java, HTML .

Microsoft Visual Interdev (https://www.microsoft.com/). Este unul dintre cele mai specializate editoare ASP, oferind un pachet foarte larg de optiuni.

Allaire Homesite ofera optiuni de autoidentificarea codurilor ASP, colorarea acestuia intr-o culoare distincta precum si o bara de unelte ASP.

August Wind ASP Express

EasyASP este un editor inzestrat cu un pachet larg de optiuni: autocolorarea codului, bara de unelte specializate si wizard ASP, HTML, JavaScript. Include si un program EasyFTP pentru o usoara actualizare a scripturilor editate, precum si un program EasyDB cu ajutorul caruia se pot face conexiuni la baza de date si vizualiza structura acesteia si modifica unele proprietati.

ASP Hosting

Pentru gazduirea sitului ce contine pagini ASP este necesar un servar specializat. Hosting - ul acestor sit-uri este mai costisitoare decat cel pentru sit-urilor obisnuite, dar exista si servicii de hosting gratuite care publica situl cu anumite adaugari proprii.

DomainDLX (https://www.domaindlx.com/)

Brinkster (https://www.brinkster.com/)

SoftCom Technologies (https://www.softcomca.com/)





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.