Rozdzial 11 Active Server Pages 2

background image

Autor: Sanjaya Hettihewa

T³umaczenie: Piotr Rajca

ISBN: 83-7197-104-4

Format: B5, 720 stron

Data wydania: 10/1999

Cena ksi¹¿ki: 66.00 z³

Przesy³ka gratis! Odbiorca pokrywa jedynie koszty pobrania (2,70 z³)

w przypadku przesy³ki za zaliczeniem pocztowym

Dziêki tej pozycji czytelnik w bardzo krótkim czasie nabêdzie umiejêtnoœci, które pozwol¹ rozpocz¹æ

efektywn¹ pracê z Active Server Pages 2.0. Ksi¹¿ka ukazuje funkcje i dzia³anie ASP 2.0 od podstaw a¿ do bardziej

zaawansowanych funkcji i pojêæ. Czytaj¹c tê ksi¹¿kê mo¿na zrozumieæ podstawy tworzenia dynamicznych

i interaktywnych stron internetowych, nauczyæ siê tworzenia aplikacji niezale¿ne od typu przegl¹darki internetowej,

wkorzystaæ si³ê ActiveX Data Objects (ADO) w tworzeniu internetowych aplikacji baz danych,urozmaiciæ swoje

strony internetowe przy pomocy aplikacji ASP, rozwin¹æ mo¿liwoœci ASP dziêki samodzielnemu projektowaniu

skryptów i komponentów ASP, opanowaæ bardzo wyszukane techniki interakcji z u¿ytkownikiem, wykorzystuj¹ce

formularze HTML, Javê, ActiveX, okna dialogowe i pola tekstowe

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

Wydawnictwo Helion

ul. Chopina 6, 44-100 Gliwice, POLAND

telefon: (32) 230-98-63, 231-22-19

fax: (32) 230-98-63 w.10

mail: helion@helion.com.pl

Active Server Pages 2.0 dla ka¿dego

Active Server Pages 2.0 dla ka¿dego

Zobacz przyk³adowy rozdzia³

Spis treœci

Je¿eli znasz tê ksi¹¿kê oceñ j¹

Ksi¹¿ki i "3D" Online

Aktualny cennik ksi¹¿ek e-mailem

Zamów najnowszy katalog

Informacje o nowoœciach e-mailem

© Helion 1999

background image

5R]G]LDä

7ZRU]HQLH

DSOLNDFMLED]GDQ\FK

SU]\X\FLX

RELHNWÑZGDQ\FK$FWLYH;

QDSLVDá'XQFDQ0DFNHQ]LH

: SRSU]HGQLP UR]G]LDOH ]RVWDáR SU]HGVWDZLRQH SRMFLH Z\NRU]\VW\ZDQLD ED] GDQ\FK
w aplika

FMDFK $63 ED]XMFH QD F]\P RNUHODQ\P MDNR $'2 $'2 $FWLYH; 'DWD

2EMHFWV±RELHNW\GDQ\FK$FWLYH;MHVW]ELRUHP]HZQWU]Q\FKRELHNWyZNWyU\PLPR*HV]
opero

ZDü]HVZRLFKVWURQGDMFLPW\PVDP\PPR*OLZRüSUDF\]ED]DPLGDnych. Po-

nie

ZD*]REDF]\áHMX*SU]\NáDGVSRVoEXX*\FLDW\FKRELHNWyZZW\PUR]G]LDOHRPy

ZLP\ND*G\]QLFK]QDF]QLHEDUG]LHMV]F]HJyáRZR:W\PUR]G]LDOH

X

Odkryjesz czym jest ADO.

X

=DSR]QDV]VL]PRGHOHPRELHNWRZ\P$'2

X

8*\MHV]$'2GRVWZRU]HQLDDSOLNDFMLIRUXPX*\WNRZQLNyZ

X

:\NRU]\VWDV]]DDZDQVRZDQHPR*OLZRFL$'2VFKHPDW\GDQ\FK

3UH]HQWDFMD$'2

$'2 MHVW JUXS RELHNWyZ ]DSURMHNWRZDQ\FK Z FHOX GRVWDUF]HQLD SURVWHJR LQWHUIHMVX
programi

VW\F]QHJR VáX*FHJR GR RSHURZDQLD QD ED]DFK GDQ\FK : SU]HV]áRFL VWZR

rzono wiele podobnych systemów takich, jak: DAO (Data Access Objects) lub RDO

background image

&]öè,,

5HPRWH'DWD2EMHFWVNWyUHE\á\EDUG]RV]HURNRZ\NRU]\VW\ZDQHSU]H]SURJUDPLVWyZ

NRU]\VWDMF\FK ] M]\NyZ 9LVXDO %DVLF 9LVXDO & RUD] RVRE\ X*\ZDMFH SURJUDPX

0LFURVRIW$FFHVV0LFURVRIWVWZLHUG]Lá*HWHSoSU]HGQLHV\VWHP\E\á\]E\WRJUDQLF]RQH

SRG Z]JOGHP PR*OLZRFL RSHURZDQLD QD ZLHOX Uy*Q\FK W\SDFK GDQ\FK LVWQLHMF\FK
w

UHDOQ\PZLHFLH]WHJRSRZRGXSRZVWDáR2/('%2/('%PDZV]\VWNLHFHFK\

NWyU\FKEUDN'$2±MHVWV]\ENLHPDáHLHODVW\F]QH'$2MHVWLQWHUIHMVHP-HW±PHcha-

QL]PXED]GDQ\FKZ\NRU]\VW\ZDQ\PZ$FFHVVLHNWyU\QLH]RVWDá]DSURMHNWRZDQ\GR

REVáXJLLQQ\FKW\SyZGDQ\FK=GUXJLHMVWURQ\2/('%PR*HSUDFRZDü]HZV]\VWNLP

ZáF]QLH ] GDQ\PL NWyUH QLH V ]DSLVDQH Z WUDG\F\MQ\P IRUPDFLH WDEHODU\F]Q\P

:V]\VWNLH WH IDNW\ ZLDdF] R W\P *H 2/( '% MHVW DNWXDOQLH SUHIHURZDQ\P QDU]
dziem programistycznym, niestety po

VLDGD RQR MHGQ SRGVWDZRZ ZDG NWyUD XQLH

PR*OLZLáDMHJRSRZV]HFKQHZ\NRU]\VWDQLH±2/('%MHVWQLHVá\FKDQLHVNRPSOLNRZDQH

$E\SU]H]Z\FL*\üWHQSUREOHP0LFURVRIWVWZRU]\á$'2SURVWZDUVWZXPLHV]F]R

QSRQDG2/('%LGRVWDUF]DMFáDWZLHMV]HJRLQWHUIHMVXSURJUDPistycznego.

3RVLDGDMF MHG\QLH WU]\ JáyZQH RELHNW\ RUD] NLOND SRPRFQLF]\FK NROHNFML $'2 MHVW
bardzo pro

VWH']LNLWHPX$'2MHVWáDWZHZX*\FLXLQLHWUXGQRVLJRQDXF]\üMHGQR

F]HQLHPR*QDSU]\MHJRSRPRF\]URELüQLHPDO*HZV]\VWNRFRPR*QDZ\NRQDü]ED]

GDQ\FK']LNLVZRMHMSURVWHMNRQVWUXNFML$'2GRVNRQDOHQDGDMHVLGRZ\NRU]\VWDQLD

ZUD]]$63D]DWHPVWDáDVLRQDMHG\QPHWRGREVáXJLED]GDQ\FKZ\NRU]\VW\ZDQ

GR WZRU]HQLD DSOLNDFML $63 8ZD*D VL WDN*H L* $'2 MHVW OHSV]\P QDU]G]LHP GR

Z\NRU]\VWDQLD Z 9LVXDO %DVLFX RUD] LQQ\FK URGRZLVNDFK SURJUDPLVW\F]Q\FK FKRü
wy

NRU]\VW\ZDQLH$'2SR]DWHFKQRORJL$63GRSLHURWHUD]]\VNXMHVRELHSRSXODrQRü

0RGHORELHNWRZ\$'2

$'2SRVLDGDMHG\QLHV]HüRELHNWyZLGZLHNROHNFMHMHGQDNVSRUyGW\FKV]HFLXRELH
któw jedy

QLHWU]\QDOH*\X]QDü ]DRELHNW\JáyZQHNWyU\FKG]LDáDQLHEG]LHV] PXVLDá

w

SHáQL]UR]XPLHü2ELHNWDPLW\PLV

X

Connection

,

X

Command

,

X

Recordset.

.D*G\]W\FKJáyZQ\FKRELHNWyZ]RVWDQLHZ\MDQLRQ\ZGDOV]\FKF]FLDFKWHJRUR]

G]LDáXJG]LH]RVWDQSRGDQHOLVW\ZV]\VWNLFKLFKZáDFLZRFLLPHWRG3U]\NáDG\Z\NR

U]\VWDQLDW\FKRELHNWyZ]RVWDQSRGDQHZGDOV]HMF]FLUR]G]LDáXMDNRF]üV\VWHPX

)RUXP8*\WNRZQLNyZ=REDF]\V]MHWDN*HZQDVWSQ\PUR]G]LDOH

2ELHNW&RQQHFWLRQ

=JRGQLH ] W\P F]HJR GRZLHG]LDáH VL Z SRSU]HGQLP UR]G]LDOH ND*GH Z\NRU]\VWDQLH
bazy danych wymaga obiektu

Connection

5HSUH]HQWXMHRQU]HF]\ZLVWVHVMQDZL

]DQ]ED]GDQ\FK=D]Z\F]DMMHG\Q\PLPHWRGDPLWHJRRELHNWXZ\NRU]\VW\ZDQ\PL

Z VNU\SWDFK $63 V PHWRG\

Open()

i

Close()

. Listing 11.1 przedstawia, w jaki

VSRVyEPR*QDZ\NRU]\VWDüRELHNW

Connection

.

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

/LVWLQJWykorzystanie obiektu Connection

1.


2.

<%

3.

Dim Conn 'Nasz obiekt Connection

4.


5.

Set Conn = Server.CreateObject( "ADODB.Connection" )

6.


7.

Conn.Open "DSN=WEBSQL;UID=sa;pwd=;"

8.


9.

' Tu przychodzi inny kod

10.


11.

Conn.Close

12.

%>

: SU]HGVWDZLRQ\P SRZ\*HM NRG]LH Z NLONX NURNDFK MHVW WZRU]RQ\ Z\NRU]\VW\ZDQ\
i zamykany obiekt

Connection

. W linii 3. jest deklarowana zmienna

Conn

, w której

zostanie zapisany obiekt

Connection

. Takie deklarowanie zmiennej nie jest konie-

F]QH OHF] XZD*D VL MH ]D OHSV] SUDNW\N SURJUDPLVW\F]Q : OLQLL SU]\ X*\FLX
metody

Server.CreateObject

jest tworzony faktyczny egzemplarz obiektu

Con

-

nection

&]\QQRüWDPXVL]RVWDüZ\NRQDQDSU]HGZ\ZRáDQLHPMDNLHMNROZLHNPHWRdy

OXEZáDFLZRFLRELHNWX3RVWZRU]HQLXRELHNWXZOLQLLMHVWRWZLHUDQDVHVMD]ED]

GDQ\FK D MDNR SDUDPHWU Z\ZRáDQLD PHWRG\ 2SHQ MHVW X*\ZDQ\ áDFXFK ]QDNyZ

SRáF]HQLD]H(UyGáHPGDQ\FK7HQáDFXFK]QDNyZVNáDGDVL]WU]HFKRGG]LHOQ\FKLn-

IRUPDFML±QD]Z\'61LGHQW\ILNDWRUDX*\WNRZQLNDRUD]KDVáD:V]\VWNLHWHLQIRUPDFMH

PR*QDSRGDüRGG]LHOQLHMDNSoND]DQRQDSRQL*V]\PSU]\NáDG]LH

Conn.Open "WEBSQL", "sa", ""

'RZROQ\NRGRSHUXMF\QDSRáF]HQLXSRZLQLHQ]RVWDüXPLHV]F]RQ\SRPLG]\OLQL
i

OLQL

Obiekt Connection posiada siedem metod przedstawionych w tabeli 11.1.

7DEHOD
Metody obiektu Connection

0HWRGD

2SLV

Open

7ZRU]\VHVM]ED]GDQ\FK-HVWWR]D]Z\F]DMSLHUZV]DLQLHZWSOLZLH
naj

ZD*QLHMV]DZ\ZRáywana metoda.

Close

=DP\NDVHVMMHOLVHVMDMHVWRWZDUWD-HOLQLHPDRWZDUWHMVHVMLWRPHWRGD]ZUDFD

EáG

Execute

:\NRQXMHSROHFHQLH64/ZED]LHGDQ\FK0HWRGDWDMHVWX*\WHF]QDSU]\

Z\NRQ\ZDQLXF]\QQRFLNWyUHQLH]ZUDFDMZZ\QLNXUHNRUGyZGDQ\FKWDNLFKMDN

XVXQLFLHQLHNWyU\FKUHNRUGyZWDEOLF\

BaginTrans

5R]SRF]\QDWUDQVDNFM]ED]GDQ\FK:LFHMLQIRUPDFMLQDWHPDWWUDQVDNFML
i

VSRVREyZLFKX*\ZDQLD]QDMG]LHV]ZUR]G]LDOHSWÄ8*\ZDQLHNRPSonentów

ActiveX stworzonych dla ASP”.

background image

&]öè,,

7DEHOD
Metody obiektu

&RQQHFWLRQ±FLJGDOV]\

0HWRGD

2SLV

CommitTrans

-HGQD]GZyFKPHWRGD]DNRF]HQLDWUDQVDNFML]ED]GDQ\FKWDPHWRGDLQIRUPXMH

ED]RW\P*HFDáDRSHUDFMD]RVWDáD]DNRF]RQDSRP\OQLHDZV]\VWNLH

PRG\ILNDFMHGDQ\FKSRZLQQ\]RVWDü]DVWRVRZDQH

RollbackTrans

,QQDPHWRGD]DNRF]HQLDWUDQVDNFMLLQIRUPXMHRQDED]GDQ\FKRZ\VWSLeniu

EáGyZLR]QDF]D*HZV]\VWNLHRSHUDFMHZ\NRQDQHQDED]LHRGPomentu

Z\ZRáDQLDPHWRG\

BeginTrans

SRZLQQH]RVWDüZ\FRIDQH

OpenSchema

Ta zaawansowana metoda jest wykorzystywana raczej rzadko. Zwraca ona zbiór

UHNRUGyZNWyUHJR]DZDUWRü]DOH*\RGSLHUZV]HJRDUJXPHQWXZ\ZoáDQLDPHWRG\

3HáQDOLVWDDUJXPHQWyZPHWRG\RUD]RGSRZLDGDMF\FKLPZDUWRFLQLHPRJáD]RVWDü

SU]HGVWDZLRQDMHGQDNSU]\NáDGMHMZ\NRU]\VWDQLD]RVWDáSRGDQ\ZVHNFMLÄ3UDFD]H

VFKHPDWDPLED]GDQ\FK´]QDMGXMFHMVLZGDOV]HMF]FLWHJRUR]G]LDáX

Obiekt

Connection

SRVLDGD WDN*H G]LHZLü ZáDFLZRFL WH QDMEDUG]LHM SRSXODUQH

i

X*\WHF]QH]RVWDá\SU]HGVWDZLRQHZWDEHOL

7DEHOD

3RSXODUQHLSU]\GDWQHZáDFLZRFLRELHNWXConnection

:äDFLZRè

2SLV

ConnectionString

7DZDUWRü]DZLHUDLQIRUPDFMHSRWU]HEQHGRVWZRU]HQLDVHVML]ED]GDQ\FK

PR*HRQD]RVWDüSU]HND]DQDEH]SRUHGQLRGRZ\ZRáDQLDPetody

Open

LWDNVL]D]Z\F]DMG]LHMH

ConnectionTimeout

2NUHODMDNGáXJRPHWRGD

Open

EG]LHRF]HNLZDáDQDRWU]\PDQLHGDQ\FK

]DQLP]JáRVLEáG

CommandTimeout

7DZDUWRüMHVWX*\ZDQDGRRNUHOHQLDMDNGáXJRSROHFHQLHZ\GDQHVHVML
z

ED]GDQ\FKEG]LHZ\NRQ\ZDQH]DQLP]RVWDQLHZ\JHQHURZaQ\EáG

przekroczenia limitu czasu.

State

7DZáDFLZRü]ZUDFDMHGQ]GZyFKZDUWRFLRNUHODMFF]\SRáczenie
z

ED]GDQ\FKMHVWRWZDUWH

1

F]\WH*]DPNQLWH

0

).

Attributes

:áDFLZRü]DDZDQVRZDQD]ZUDFDQDSU]H]QLZDUWRüRNUHODPR*OLZRFL

XGRVWSQLDQHSU]H]ED]GDQ\FKMDNQDSU]\NáDGREVáXJWUDQVDNFML1LHMHVW
ona wymagana przy tworzeniu prostych systemów.

=D SRPRF RELHNWX

Connection

PR*QD WDN*H X]\VNDü GRVWS GR GZyFK NROHNFML

przedstawionych w tabeli 11.3.

Obiekt

Connection

MHVWWZRU]RQ\LRWZLHUDQ\QDVDP\PSRF]WNXSUDF\]ED]GDnych,

MHGQDNSU]HZD*QLHQLHMHVWRQX*\ZDQ\ZSRMHG\QN'RIDNW\F]QHJRPDQLpulowania

ED] GDQ\FK MHVW Z\NRU]\VW\ZDQ\ SU]HZD*QLH SU]\QDMPQLHM MHGHQ ] SU]HGVWDZLRQ\FK

SRQL*HMRELHNWyZ2ELHNW&RPPDQGZ\NRU]\VWXMHRELHNW

Connection

SRSU]H]VZRM

ZáDFLZRüRQD]ZLH

ActiveConnection

.

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

7DEHOD
Kolekcje obiektu Connection

.ROHNFMD

2SLV

Errors

Jest to kolekcja obiektów

Error

]NWyU\FKND*G\RGSRZLDGDMHGQHPXEádowi

Z\JHQHURZDQHPXZF]DVLHWUZDQLDWHMVHVML]ED]GDQ\FK

Properties

7NROHNFMSRVLDGDND*G\RELHNW$'2XGRVWSQLDRQDSRGSRVWDFLNROHNFML

ZV]\VWNLHZáDFLZRFLRELHNWXSU]HGVWDZLRQHZWDEHOL

2ELHNW&RPPDQG

Obiekt

Command

UHSUH]HQWXMHMHGQRSROHFHQLHZ\GDQHSRáF]HQLX]ED]GDQ\FKWDNLH

jak pole

FHQLH64/OXESURFHGXUDRVDG]RQDDQJVWRUHGSURFHGXUH2ELHNW]RVWDá]Dpro-

jektowany do lep

V]HMREVáXJLZ\NRQ\ZDQLDSROHFHWHJRW\SXQL*XPR*OLZLDWRPHWRGD

Execute

obiektu

Connection

. Obiekt

Command

SRVLDGD JUXS ZáDFLZRFL PHWRG

i ko

OHNFMLNWyUH]RVWDá\SU]Hdstawione w tabelach 11.4, 11.5 i 11.6.

7DEHOD

:áDFLZRFLRELHNWXCommand

:äDFLZRè

2SLV

ActiveConnection

.D*G\RELHNW

Command

SUDFXMHQDVNRMDU]RQ\P]QLPSRáF]HQLX]ED]

GDQ\FK7DZáDFLZRüSRELHUDOXEXVWDZLDRELHNW

Connection

wykorzystywany przez polecenie.

CommandText

7DZáDFLZRüSU]HFKRZXMHSROHFHQLH64/OXESURFHGXURVDG]RQNWyUDPD

]RVWDüZ\NRQDQDSU]H]SROHFHQLH

CommandTimeout

7DZáDFLZRüPDWDNLHVDPRSU]H]QDF]HQLHFRDQDORJLF]QDZáDFiZRüRELHNWX

Connection

.

CommandType

7DZDUWRüLQIRUPXMH(UyGáRGDQ\FKRQDWXU]HWHNVWXSROHFHQLDMDNL]RVWDáPX

SU]HND]DQ\:áDFLZRüPR*HSRVLDGDüMHGQ]ZLHOXUy*Q\FKZDUWRFLMHGQDN

QDMF]FLHMVSRW\NDQHV

Text

(

1

) (tekst) oraz

Stored Procedure

(

4

)

(procedura osadzona).

Prepared

:áDFLZRüNRQWUROXMHF]\SU]HGZ\NRQDQLHPSROHFHQLD]RVWDQLHVWZRU]RQD
jego skompilowana wersja.

7DEHOD
Metody obiektu Command

0HWRGD

2SLV

CreateParameter

.D*G\RELHNW

Command

SRVLDGDNROHNFMRELHNWyZ

Parameter

. Ta metoda

VáX*\GRGRGDQLDQRZHJRRELHNWXGRWHMNROHNFML:LFHMLQIRrmacji na ten temat

]QDMG]LHV]ZWDEHOLJG]LH]RVWDáDSU]HGVWDZLRQDNROHNFMD

Parameters

.

Execute

Podstawowa metoda obiektu

Command

. Powoduje ona wykonanie polecenia

w

RSDUFLXRGRVWDUF]\FLHODLQIRUPDFML0HWRGDWDPR*H]ZUyFLüRELHNWW\SX

Recordset

.

background image

&]öè,,

7DEHOD
Kolekcje obiektu Command

Kolekcja

Opis

Properties

-DNZND*G\PRELHNFLH$'2WDN*HLWXWDMNROHNFMD

Properties

zawiera

ZV]\VWNLHZáDFLZRFLRELHNWXRUD]RGSRZLDGDMFHLPZDUWoFL

Parameters

Jest to kolekcja obiektów

Parameter

2GSRZLDGDMRQHSDUDPHWURP

LVWQLHMF\PZSROHFHQLX64/EG(ZSURFHGXU]HRVDG]RQHMUHSUH]HQWowanej
przez dany obiekt

Command

.

2JyOQLHU]HF]ELRUFRELHNW

Command

X*\ZDQ\MHVWGRZ\NRQ\ZDQLD EDUG]LHM]áR*R

nych opera

FMLQDED]DFKGDQ\FKSURVWH]DS\WDQLDRUD]RSHUDFMHQDUHNRUGDFKV]Dzwy-

F]DMUHDOL]RZDQHSU]\X*\FLXRSLVDQHJRZQDVWSQHMVHNFMLRELHNWX

Recordset

.

2ELHNW5HFRUGVHW

.D*GDJUXSDUHNRUGyZ±QLH]DOH*QLHRGWHJRF]\MHVWRQDZ\QLNLHPZ\NRQDQLD]DS\ta-

QLDF]\WH*VWDQRZLFDá]DZDUWRüWDEHOL±MHVWUHSUH]HQWRZDQDSU]H]RELHNW

Record

-

set

7HJRRELHNWXEG]LHV]X*\ZDáQLHPDOGRZV]\VWNLFKRSHUDFMLQDED]DFKGDQ\FK

MHVWWRWDN*HQDMEDUG]LHM]áR*RQ\RELHNW$'2-HGQDNZZLNV]RFLZ\SDGNyZMHVWRQ
wykorzystywany w bardzo prosty sposób. Listing 11.2 demonstruje popularne wykorzy-
stanie obiektu

Recordset

±SRELHUDQLHLZ\ZLetlanie wyników zapytania.

/LVWLQJStosowane zbiorów rekordów i obiektu Recordset

1.

<%

2.

Dim Conn

3.

Dim RSAutorzy

4.

Dim SQL

5.


6.

Set Conn = Server.CreateObject( "ADODB.Connection" )

7.

Set RSAutorzy = Server.CreateObject( "ADODB.Recordset" )

8.

Conn.Open "WEBSQL;UID=sa;PWD=;"

9.

SQL = "SELECT * FROM Autorzy"

10.

RSAutorzy.Open SQL, Conn

11.


12.

Do While Not RSAutorzy.EOF

13.

Response.Write "<P>" & RSAutorzy("Au_Imie") & "</P>"

14.

Response.Write vbcrlf

15.

RSAutorzy.MoveNext

16.

Loop

17.


18.

RSAutorzy.Close

19.

Conn.Close

20.

%>

: SU]HGVWDZLRQ\P SRZ\*HM IUDJPHQFLH NRGX Z OLQLDFK ± GHILQLRZDQH V Z\

NRU]\VW\ZDQH ]PLHQQH -HV]F]H UD] SRZWyU] *H QLH MHVW WR NRQLHF]QH OHF] VWDQRZL
dobry zwyczaj programistyczny. W linii 6. jest tworzony egzemplarz obiektu

Conne

-

ction

, a w linii 7. egzemplarz obiektu

Recordset

REDWHRELHNW\EGZ\NRrzysty-

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

ZDQHZGDOV]HMF]FLNRGX1DVWSQLHZOLQLLMHVWRWZLHUDQ\RELHNW

Connection

,

NWyU\ EG]LH SRWU]HEQ\ GR RWZDUFLD RELHNWX

Recordset

. W linii 9. polecenie SQL

]RVWDMH]DSLVDQHZ]PLHQQHMNWyUDMHVWQDVWSQLHX*\WDZOLQLLZZ\ZRáDQLXPH
tody

Open

: Z\ZRáDQLX WHM PHWRG\ V SRGDZDQH GZD DUJXPHQW\ ± SROHFHQLH 64/

oraz obiekt

Connection

. Po otworzeniu zbioru rekordów, w liniach 12. – 16. jest

przedstawiony najbardziej popularny sposób operowania na nim. Do przetworzenia

FDáHM]aZDUWRFL]ELRUXUHNRUGyZZ\VWDUF]\MHGQDSURVWDSWOD:W\PZ\SDGNXZOLQLL

XPLHV]F]RQ\ ]RVWDá ZDUXQHN SWOL ±

RSAutorzy.EOF

± ZDUWRü WHM ZáDFLZRFL

SU]\MPLHZDUWRü

TRUE

(prawda) gdy zostanie pobrany ostatni rekord zbioru rekordów.

/LQLHLWZRU]OLQLNRGX+70/]DZLHUDMFZDUWRüSROD

Au_Imie

zbioru re-

NRUGyZ 1D VDP\P NRFX ]QDMGXMH VL QLeVá\FKDQLH ZD*QD OLQLD ±

RSAuto

-

rzy.MoveNext

±NWyUDSU]HVXZDZVND(QLNUHNRUGyZQDNROHjny rekord, zapobiegaMF

W\PVDP\PSRZVWDQLXQLHVNRF]RQHMSWOL

2SUyF] NLONX SURVW\FK ZáDFLZRFL L PHWRG SU]HGVWDZLRQ\FK Z SRZ\*V]\P SU]\NáD
dzie, obiekt

Recordset

]DZLHUDZLHOHLQQ\FKX*\WHF]Q\FKZáDFLZRFLLPHWRGR któ-

U\FKSRZLQLHQHZLeG]LHü0HWRG\ZáDFLZRFLLNROHNFMHRELHNWX

Recordset

zosta

á\

przedstawione w tabelach 11.7, 11.8 oraz 11.9.

7DEHOD
Metody obiektu Recordset

0HWRGD

2SLV

Open

-HVWWRPHWRGDNWyU]D]Z\F]DMEG]LHV]Z\ZRá\ZDáZSLHUZV]HMNROHjQRFL

SR]ZDODRQDQD]DLQLFMDOL]RZDQLHRELHNWXLZ\SHáQLHQLHJRSRV]ukiwanymi

ZDUWRFLDPL0R*HV]SRGDüRELHNW

Connection

, który b

dzie

Z\NRU]\VW\ZDQ\]W\P]ELRUHPUHNRUGyZOXESDUDPHWU\SRáF]eQLD-HOLQLH

SRGDV]RELHNWX&RQQHFWLRQWRGODND*GHJRQRZRRWZRU]onego zbioru rekordów

EG]LHWZRU]RQHQRZHSRáF]HQLH

Close

-HVWWRPHWRGDNWyU]D]Z\F]DMEG]LHV]Z\ZRá\ZDáQDVDP\PNRFXQLV]F]\
ona wszystkie dane przechowywane w obiekcie i pozwala na ponowne
Z\ZRáDQLHPHWRG\

Open

.

AddNew

Tworzy nowy, pusty rekord.

Update

=DSLVXMHZED]LHGDQ\FK]PLDQ\MDNLHZSURZDG]LáHZDNWXDOQ\PUekordzie.

CancelUpdate

8VXZD]PLDQ\MDNLH]RVWDá\ZSURZDG]RQHZDNWXDOQ\PUHNRUG]LHMH OLQLH

]RVWDáDZF]HQLHMZ\ZRáDQDPHWRGD

Update

.

UpdateBatch

1LHNWyU]\GRVWDUF]\FLHOHGDQ\FKSR]ZDODMQDZ\NRU]\VWDQLH]ELRUyZUHNRUGyZ

Z\NRQXMF\FKZLHOHRSHUDFMLDNWXDOL]DFMLZW\PVDP\PF]aVLH]DSLVXMF
poszczególne modyfikacje dokonane do momentu wywo

áDQLDWHMPHWRG\

CancelBatch

8VXZDRF]HNXMFHQDREVáXJZVDGRZH]DGDQLDDNWXDOL]DFML'RP\OQLHV

XVXZDQHZV]\VWNLHRF]HNXMFH]DGDQLDDNWXDOL]DFMLMHGQDNPR*HV]SRGDü
argument, który ograniczy usuwanie do aktualnego rekordu lub rekordów
zgodnych z podanym filtrem.

background image

&]öè,,

7DEHOD
Metody obiektu

5HFRUGVHW±FLJGDOV]\

0HWRGD

2SLV

Move

7DPHWRGDSR]ZDODQDSU]HVXQLFLHVLRRNUHORQLORüUHNRUGyZGRSU]RGX

OXEGRW\áXZ]ELRU]HUHNRUGyZ3U]HVXQLFLHPR*HRGE\ZDüVLZ]JOGHP

DNWXDOQHJRUHNRUGXMHOLQLH]RVWDQLHSRGDQ\GUXJLSDUDPHWUZ\ZRáDQLD

PHWRG\OXEZ]JOGHPGRZROQHJRLQQHJRUHNRUGX]ELRUXUHNRUGyZ

MoveNext

0HWRGDSRZRGXMHSU]HMFLHGRNROHMQHJRUHNRUGXZ]ELRU]HUHNRUGyZ
W

PRPHQFLHJG\Z\ZRáDV]WPHWRG]QDMGXMFVLSR]DRVWDWQLPUHNRUGHP

]ELRUXJG\ZDUWRüZáDFLZRFL

EOF

wynosi

true

), jest genero

ZDQ\EáG

MovePrevious

3U]HFLZLHVWZRPHWRG\

MoveNext

SRZRGXMHSU]HMFLHGRUHNRUGX

SRSU]HG]DMFHJRDNWXDOQ\UHNRUG-HOLDNWXDOQ\PUHNRUGHPMHVWSLHUwszy

UHNRUG]ELRUXJG\ZDUWRüZáDFLZRFL

BOF

wynosi

true

), generowany jest

EáG

MoveLast

7DPHWRGDSRZRGXMHSU]HMFLHGRRVWDWQLHJRUHNRUGX]ELRUX-HOLDNWualnym

UHNRUGHPMHVWZáDQLHRVWDWQLUHNRUG]ELRUXWRZ\NRQDQLHWHMPHWRG\QLHGDMH

*DGQHJRUH]XOWDWX

MoveFirst

Jest to metoda podobna do metody

MoveLast

SRZRGXMHRQDSU]HMFLHGR

SLHUZV]HJRUHNRUGX]ELRUXMHGQDNQLHGDMH*DGQ\FKHIHNWyZMHOLDNWXDOQ\P
rekordem jest pierwszy rekord zbioru.

NextRecordset

0R*OLZHMHVWZ\GDQLHSROHFHQLDNWyUHEG]LH]ZUDFDáRZLFHMQL*MHGHQ]ELyU

UHNRUGyZ0R*HVLWR]GDU]\üSU]\Z\ZRá\ZDQLXSURFHGXURVadzonych lub

SU]\NRU]\VWDQLX]H]áR*RQ\FKSROHFH64/WDNLFKMDNWRSU]HGVWDZLRQH

SRQL*HM

SELECT ID FROM Goscie; SELECT * FROM KartaZakupowa

7DPHWRGDSRZRGXMHZ\NRQDQLHQDVWSQHJRSROHFHQLDZJUXSLHL]ZUDFDMHJR
wyniki.

Save

7DPHWRGDSRELHUDMDNRDUJXPHQWQD]ZSOLNXDQDVWSQLH]DSLVXMHZQLP

DNWXDOQ\]ELyUUHNRUGyZ5HNRUG\WHPRJ]RVWDü]DáDGRZDQHZSU]\V]áRFL

SRSU]H]Z\ZRáDQLHPHWRG\

Open

LSRGDQLHSOLNXMDNR(UóGáDGDQ\FK

Requery

7DPHWRGDMHVWHNZLZDOHQWHP]DPNQLFLDLSRQRZQHJRRWZRU]HQLD]ELoru

UHNRUGyZ±SRZRGXMHRQDSRQRZQHZ\NRQDQLHSROHFHQLD-HOLDNWualnie

SRGDQHNU\WHULDVSHáQLDMZLFHMUHNRUGyZQL*SRSU]HGQLRWRQRZHUHNRUG\

WDN*HEGGRVWSQHZ]ELRU]H

Resync

1LHQDOH*\P\OLüWHMPHWRG\]PHWRG

Requery

. Ta metoda jedynie porównuje

GDQH]QDMGXMFHVLZUHNRUGDFK]GDQ\PLSU]HFKRZ\ZDQ\PLQDVHUZHU]H
i

XDNWXDOQLDZDUWRFLZ]ELRU]HUHNRUGyZ$UJXPHQWRSFMonalny pozwala na

V\QFKURQL]DFMZ\áF]QLHDNWXDOQHJRUHNRUGXOXEUHNRUGyZVSHáQLDMF\FK
podane kryteria.

Delete

Ta metoda usuwa aktualny rekord.

GetRows

7DPHWRGD]ZUDFDGZXZ\PLDURZWDEOLFZDUWRFLW\SXYDULDQW]DZLeUDMF

SDU\SROHZDUWRü'RGDWNRZHDUJXPHQW\SR]ZDODMQDRNUHOHQLHLOHUHNRUGyZ

PD]RVWDüSREUDQ\FKZWDNLVSRVyERUD]RGNWyUHJRUHNRrGXQDOH*\UR]SRF]ü

SRELHUDQLH'RP\OQLHVSRELHUDQHZV]\VWNLHUekordy z aktualnego zbioru.

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

7DEHOD
Metody obiektu

5HFRUGVHW±FLJGDOV]\

0HWRGD

2SLV

Clone

7DPHWRGDWZRU]\]ELyUUHNRUGyZ]DZLHUDMF\NRSLDNWXDOQ\FKGDQ\FK

Supports

7DPHWRGDSR]ZDOD&LQDRNUHOHQLHMDNLHPR*OLZRFLIXQNFMRQDOQHV

XGRVWSQLDQHSU]H]]ELyUUHNRUGyZFKRG]LWXRPR*OLZRFLWDNLHMDN
dodawanie nowego rekordu, przechodzenie do poprzedniego rekordu, itp.

7DEHOD

:áDFLZRFLRELHNWXRecordset

:äDFLZRè

2SLV

EOF

.RQLHFSOLNXSR]ZDODQDRNUHOHQLHF]\DNWXDOQ\UHNRUG]QDMGXMHVLSR]D

RVWDWQLPUHNRUGHP]ELRUXUHNRUGyZ7DZáDFLZRüMHVWSowszechnie

VWRVRZDQDGRRNUHOHQLDNLHG\QDOH*\]DNRF]\üSWOREVáXJXMFUHNRUG\
zbioru rekordów.

BOF

3RF]WHNSOLNXZáDFLZRüSRGREQDGR(2)]ZUDFDMHGQDNZDUWRü

true

,

MHOLDNWXDOQ\UHNRUG]QDMGXMHVLSU]HGSLHUZV]\PUHNRUGHP]ELRUX-HOLRELH

ZáDFLZRFL±

EOF

i

BOF

±PDMZDUWRü

true

, to ozna

F]DWR*H]ELyU

rekordów jest pusty.

MaxRecords

7DZáDFLZRüNRQWUROXMHLOHUHNRUGyZMHVW]ZUDFDQ\FKMDNRZ\QLN

]DS\WDQLD-HMZDUWRüPR*QDRNUHOLüZ\áF]QLHSU]HGZ\ZRáDQLHPPHWRG\

Open

NLHG\]ELyUUHNRUGyZMHVW]DPNQLW\

AbsolutePosition

7ZáDFLZRüPR*QDZ\NRU]\VWDüGRRNUHOHQLDSR]\FMLDNWXDOQHJRUHNRUGX

Z]JOGHPSRF]WNXSOLNX

PageSize

7DZáDFLZRüZVSyáSUDFXMH]ZáDFLZRFLDPL

AbsolutePage

oraz

PageCount

LZUD]]QLPLXPR*OLZLDSRG]LHOHQLH]ELRUXUHNRUGyZQD

ORJLF]QHVWURQ\7DZáDFLZRü]ZUDFDEG(XVWDZLDLORüUHNRUGyZ

PLHV]F]F\FKVLZMHGQHMORJLF]QHMVWURQLH

PageCount

7DZáDFLZRü]ZUDFDLORüORJLF]Q\FKVWURQZ]ELRU]HUHNRUGyZ-HVWRQD

SU]H]QDF]RQDW\ONRGRRGF]\WXOHF]MHMZDUWRü]PLHQLDVLZUD]]H]PLDQ

ZDUWRFLZáDFLZRFL

PageSize

.

AbsolutePage

7DZáDFLZRüRNUHODORJLF]QVWURQQDNWyUHM]QDMGXMHVLDNWXDOQ\UHNRUG

:áDFLZRüWPR*QDXVWDZLüFRSRZRGXMHSU]HQLHVLHQLHDktualnego rekordu

QDSR]\FMSLHUZV]HJRUHNRUGXSRGDQHMVWURQ\

CursorType

7DZáDFLZRü]ZUDFDMHGQ]NLONXZDUWRFL

Forward Only

(

0

),

Keyset

(

1

),

Dynamic

(

2

EG(

Static

(

3

-HMZDUWRüPR*QDRNUHOLüZ\áF]QLH

ZPRPHQFLHJG\]ELyUUHNRUGyZMHVW]DPNQLW\DVáX*\RQDGRRNUHODQLD

VSRVREXZMDNL]ELyUUHNRUGyZPD]RVWDüRWZRU]RQ\-HMZDUWRüPR*QD

WDN*HSRGDüMDNRDUJXPHQWZ\ZRáDQLDPHWRG\

Open

2SLVND*GHJRW\SX

NXUVRUDRUD]MHJR]QDF]HQLH]RVWDáRZ\MDQLRQHZGDOV]HMF]FLUR]G]LDáX

background image

&]öè,,

7DEHOD

:áDFLZRFLRELHNWX5HFRUGVHW±FLJGDOV]\

:äDFLZRè

2SLV

CacheSize

7DZáDFLZRüRNUHODLORüUHNRUGyZNWyUDMHVWMHGQRUD]RZRSRELHUana od

GRVWDUF]\FLHODGDQ\FK-HMGRP\OQDZDUWRüZ\QRVL

1

, co ozna

F]D*HW\ONR

DNWXDOQ\UHNRUGMHVWSU]HFKRZ\ZDQ\ZSDPLFLSRGUFzQHM-HOLZDUWRü

ZáDFLZRFLEG]LHZ\*V]DWRUHNRUG\SU]HFKRZyZDQHZSDPLFLSRGUF]QHM

QLHNRQLHF]QLHPXV]RGSRZLDGDüU]HF]ywistym danym przechowywanym
w

ED]LHPR*QDMHMHGQDNRGZLH*\ü]DSRPRFPHWRG\

Resync

.

Recordcount

7DZáDFLZRüMHVWSRZV]HFKQLHZ\NRU]\VW\ZDQDMHGQDNQLH]DZV]HMHM

ZDUWRüMHVWSRSUDZQDOXEZRJyOHGRVWSQD-HOL]ELyUUHNRUGyZÄQLHZLH´

LOHUHNRUGyZZQLP]QDMGXMHVLOXEQLHMHVWZVWDQLHRNUeOLüLFKLORFLWR

ZDUWRüWHMZáDFLZRFLZ\QRVL

–1

2JyOQLHU]HF]ELRUFZDUWRFLWHM

ZáDFLZRFLQLHPR*QDX]QDü]DSHZQD*GRPRPHQWXJG\]RVWDQLH
odwiedzony ostatni rekord zbioru (

MoveLast

).

Source

7DZáDFLZRü]DZLHUDWHNVWSROHFHQLD64/MDNLHPD]RVWDüZ\NRQDQHOXE

QD]ZSURFHGXU\RVDG]RQHMMHMZDUWRüPR*QDSRGDüEH]SRUHdnio przed

RWZRU]HQLHP]ELRUXUHNRUGyZOXEMDNRDUJXPHQWZ\ZRáDQLDPHWRG\

Open

.

EditMode

2NUHODVWDQDNWXDOQHJRUHNRUGXLPR*HSU]\MPRZDüMHGQ]QDVWSXMcych

ZDUWRFL

None

(

0

) (brak),

Edit In Progress

(

1

) (edycja w toku),

Add

In Progress

(

2

GRGDZDQLHZWRNXEG(

Deleted

(

3

XVXQLW\

ActiveConnection

7DZáDFLZRüVáX*\RG]ZUDFDQLDOXEXVWDZLDQLDRELHNWX

Connection

wykorzystywanego przez aktualny zbiór rekordów.

LockType

2NUHODMDNLURG]DMEORNRZDQLD]RVWDáQDU]XFRQ\QDDNWXDOQLHHG\Wowany

UHNRUG:DUWRüPR*HSRVLDGDüMHGQ]QDVWSXMF\FKZDUWRFL

Read-Only

(

1

) (tylko do odczytu),

Pessimistic

(

2

) (pesymistyczna),

Optimistic

(

3

) (optymistyczna),

Batch Optimistic

(

4

) (wsadowa optymistyczna).

Znaczenia poszczególnych typów blo

NDG]RVWDá\SRGDQHZGDOV]HMF]FL

UR]G]LDáX

Bookmark

-HOL]ELyUUHNRUGyZXPR*OLZLDZ\NRU]\VW\ZDQLH]DNáDGHNFRPR*HV]

VSUDZG]Lü]DSRPRFPHWRG\

Supports

WREG]LHV]PyJá]DSLVDüZDUWRü

WHMZáDFLZRFLZ]PLHQQHM:SU]\V]áRFLEG]LHV]PyJáZUyFLü

EH]SRUHGQLRGRWHJRVDPHJRUHNRUGXSU]\SLVXMFWHMZáDFiZRFLZDUWRü

]DSLVDQZ]PLHQQHM:DUWRüZáDFLZRFLMHVWXQLNDOQDGODGDQHJR]ELRUX

UHNRUGyZ'ZDLGHQW\F]QHUHNRUG\ZUy*Q\FK]ELoUDFKQLHPRJPLHüWHM

VDPHMZDUWRFLZáDFLZRFL

Bookmark

, jednak wszystkie rekordy obiektu

Recordset

VWZRU]RQHJR]DSRPRFPetody

Clone

EGPLDá\WDNVDP

ZDUWRüWHMZáDFLZRFLMDNLFKRU\JLQDá\

Filter

7DZáDFLZRüRNUHODZDUXQHNMDNLEG]LHVSUDZG]DQ\GODZV]\Vtkich

UHNRUGyZDNWXDOQLH]QDMGXMF\FKVLZ]ELRU]H:VNáDG]ELRUXUHNRUGyZ

ZHMGW\ONRWHUHNRUG\NWyUHVSHáQLSRGDQHNU\WHULD.U\WeULDWHPRJ

SU]\ELHUDüSRVWDüQD]ZD3ROD ZDUWRü, np.:

("IDGoscia = 123")

.

Status

=ZUDFDDNWXDOQ\VWDQUHNRUGX]XZ]JOGQLHQLHPZV]HONLFKSURFHGXU
masowych oraz procedur osadzonych.

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

7DEHOD

:áDFLZRFLRELHNWX5HFRUGVHW±FLJGDOV]\

:äDFLZRè

2SLV

CursorLocation

7DZDUWRüQLHPD]DVWRVRZDQLDZ$63JG\*RNUHODRQDF]\NXUVRU]RVWDá

VWZRU]RQ\QDVHUZHU]HF]\WH*QDNRPSXWHU]HX*\WNRZQLND3U]\
wykorzystaniu ADO w ASP kursor zawsze jest tworzony na serwerze.

MarshalOptions

3RGREQLHMDNZSU]\SDGNXZáDFLZRFL&XUVRU/RFDWLRQWDN*HLWDZáDFLZRü

PDZSá\ZQDVSRVyEZMDNL]ELyUUHNRUGyZMHVWSU]HQoV]RQ\SRPLG]\

VHUZHUHPDNRPSXWHUHPX*\WNRZQLND:SU]\SDGNX$63QLHMHVWRQD
wykorzystywana.

7DEHOD
Kolekcje obiektu Recordset

.ROHNFMD

2SLV

Properties

-DNZND*G\PRELHNFLH$'2WDN*HLWXWDMNROHNFMD

Properties

zawiera

ZV]\VWNLHZáDFLZRFLRELHNWXRUD]RGSRZLDGDMFHLPZDUWoFL

Fields

=DZLHUDJUXSRELHNWyZ

Field

SRMHGQ\PGODND*GHMNROXPQ\]ELRUXUHNRUGyZ

7DNROHNFMDMHVWSU]\GDWQDGRRNUHODQLDZV]\VWNLFKNROXPQ]ELRUXUHNRUGyZJG\

QLHV]QDQHLFKQD]Z\LSRáR*HQLH

:\NRU]\VWDQLH$'2GRVWZRU]HQLD

DSOLNDFML)RUXP8\WNRZQLNÑZ

$E\SRND]DüZMDNLVSRVyEQDOH*\X*\ZDüRELHNWyZRPyZLRQ\FKZSRSU]HGQLHMF]
ci rozdzia

áXZWHMVHNFML]RVWDQLHSU]HGVWDZLRQ\NRPSOHWQ\NRGIRUXPX*\tkowników.

7HQV\VWHPEG]LHZ\NRU]\VW\ZDüED]GDQ\FK0LFURVRIW$FFHVVMHGQDN]HZ]JOGX

QD WR L* SRáF]HQLH ] GDQ\PL MHVW UHDOL]RZDQH SRSU]H] 2'%& Z\NRU]\VWDQLH LQQHM

ED]\GDQ\FKMDNQDSU]\NáDG64/6HUYHU]DMPXMHMHG\QLHNLONDPLQXW6\VWHP]RVWD
nie stworzony w sposób jak najprostszy, bez wykorzy

VWDQLD *DGQ\FK REUD]NyZ DQL

Z\P\OQ\FKVSRVREyZIRUPDWRZDQLD7DNLSURMHNWV\VWHPX]RVWDáSRG\NWRZDQ\FKFL

]DSHZQLHQLDMDNQDMZLNV]HMSURVWRW\NRGXDQLHGODWHJR*HQLHMHVWRQZymagany.

%D]öGDQ\FKRUD]FDä\NRG$63PRHV]]QDOHèQDZLWU\QLH::::\

GDZQLFWZD+(/,21SRGDGUHVHP

ftp://ftp.helion.com.pl/przyklady/asp.zip.

3RVNRSLRZDQLXSOLNXDUFKLZXPUR]SDNXMJRDQDVWöSQLHXPLHèQD

VHUZHU]HFDäñ]DZDUWRèNDUWRWHNL

Rozdzial-11

background image

&]öè,,

3UH]HQWDFMDV\VWHPX

$SOLNDFMHIRUXPX*\WNRZQLNyZVGRVWSQHMX*RGGDZQD±LVWQLHMGáX*HMQL*,QWHUQHW

3RF]WNoZRLVWQLDá\SRGSRVWDFL%%6yZ±Bulletin Boards Services – miejsc, do których

PRJáHSU]HVyáDüS\WDQLDF]\WDüLQQHS\WDQLDDQDZHWF]DVDPLRWU]\P\ZDüRGSRwie-

G]L%%6\LVWQLHMFDá\F]DVMHGQDNQLHPDOZFDáRFL]RVWDá\]DVWSLRQHRGSRZLHdnikami
internetowymi – grupami dys

NXV\MQ\PL7HV\VWHP\NWyU\FKSU]\NáDG]RVWDáSU]HGVWD

wio

Q\ QD U\VXQNX V QLHPDO LGHnW\F]QH 8*\WNRZQLF\ ]D SRPRF VSHFMDOQHJR

oprogramowania takiego jak Outlook Express, prze

JOGDMZLaGRPRFLLWZRU]ZáDVQH

5\VXQHN

*UXS\G\VNXV\MQHV

SRSXODUQF]FL
Internetu

*UXSDG\VNXV\MQDSU]HGVWDZLRQDQDU\VXQNXLVWQLHMHZU]HF]\ZL

VWRFLLMHVWEDUG]RSU]\GDWQDGODSURJUDPLVWÑZ$630RQDMñ]QDOHè

QD VHUZHU]H

msnews.microsoft.com

D XF]HVWQLFWZR Z QLHM QLH Z\

PDJDSRGDZDQLDMDNLHJRNROZLHNKDVäDDQLLGHQW\ILNDWRUDX\WNRZQLND

6\VWHP NWyU\ VWZRU]\V] ]D SRPRF $63 EG]LH PXVLDá G\VSRQRZDü W\PL VDP\PL

PR*OLZRFLDPLFRLVWQLHMFHJUXS\G\VNXV\MQH/LVWDIXQNFMLV\VWHPXSRPR*H&L]Dpro-

MHNWRZDüNRQLHF]QHVWURQ\RUD]VWUXNWXUED]\GDQ\FK

X

8*\WNRZQLF\PXV]E\üZVWDQLHWZRU]\üQRZHZLDGRPRFL

X

8*\WNRZQLF\ PXV] E\ü Z VWDQLH SU]HJOGDü ZLDGRPRFL XWZRU]RQH SU]H]

QLFKVDP\FKRUD]SU]H]LQQ\FKX*\WNRZQLNyZ

X

8*\WNRZQLF\PXV]E\üZVWDQLHRGSRZLDGDüQDZLDGRPRFLDLFKRGpowie-

G]L SRZLQQ\ E\ü SUH]HQWRZDQH Z WDNL VSRVyE DE\ E\áR ZLDGRPR L* V RQH

]ZL]DQH]RU\JLQDOQZLDGRPoFL

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

X

8*\WNRZQLF\SRZLQQLE\üZVWDQLHXVXQüZLDGRPRüNWyUVWZRU]\OLMHGQDN

QLHPRJG\VSRQRZDüPR*OLZRFLXVXZDQLDZLDGRPRFLVWZRU]RQ\FKSU]H]

LQQ\FKX*\WNRZQLNyZ

X

8*\WNRZQLF\PXV]E\üZMDNLVSRVyELGHQW\ILNRZDQLDE\LFKZLDGRPRFL

PRJá\E\üR]QDF]DQH

7HIXQNFMHQLHPDOEH]SRUHGQLRUHSUH]HQWXMWRFRV\VWHPPXVLURELüMHGQDNGRGDWNR
wo stwa

U]DMNLONDQLHMDZQ\FKZ\PDJD0LDQRZLFLHV\VWHPPXVLSU]HFKRZ\ZDüZLD

GRPRFLRUD]OLVWX*\WNRZQLNyZLLFKLQIRUPDFMLLGHQW\ILNDF\MQ\FK

%D]DGDQ\FK

3LHUZV]\PHWDSHPEG]LHVWZRU]HQLHED]\GDQ\FKVSHáQLDMFHMSRGDQHZ\PDJDQLD.R
nie

F]QH EG]LH Z\NRU]\VWDQLH MHGynie dwóch tabel: jednej do przechowywania listy

X*\WNRZQLNyZLGUuJLHMGRSU]HFKRZ\ZDQLDZLDGRPRFL3RODWDEHORUD]LFKW\S\]R

VWDá\SU]HGVWDZLRQHZWDEHODFKRUD]

7DEHOD
Tabela User

1D]ZDSROD

7\SSROD

'äXJRèSROD

ID

AutoNumer

QLHGRVWSQD

FirstName

Tekst

30

LastName

Tekst

50

Email

Tekst

50

LastVisit

Data/Godzina

QLGRVWSQD

UserID

Tekst

20

Password

Tekst

20

7DEHOD
Tabela Message

1D]ZDSROD

7\SSROD

'äXJRèSROD

ID

AutoNumer

QLHGRVWSQD

UserID

Liczba

/LF]EDFDáNRZLWDGáXJD

Parent

Liczba

/LF]EDFDáNRZLWDGáXJD

Subject

Tekst

50

Date

Data/Godzina

QLHGRVWSQD

Message

Memo

QLHGRVWSQD

background image

&]öè,,

$E\XPR*OLZLüDSOLNDFML$63NRU]\VWDQLH]WHMED]\GDQ\FKEG]LHV]PXVLDáXPLHFLü

M QD VHrZHU]H ::: L VWZRU]\ü GOD QLHM QD]Z (UyGáD GDQ\FK 2'%& SOLNRZ OXE

V\VWHPRZ : SU]HdVWDZLRQ\FK GDOHM SU]\NáDGDFK ]DáR*\áHP *H WR ]URELáH RUD] *H

QDGDáHQD]ZLH(UyGáDGDQ\FKQD]ZÄ)RUXP´:LFHMLQIRUPDFMLGRW\F]F\FKWZRrze-

QLDQD]Z(UyGHáGDQ\FK]QDMG]LHV]ZSoprzednim rozdziale.

,GHQW\ILNDFMDX\WNRZQLNÑZ

=SXQNWXZLG]HQLDX*\WNRZQLNyZSLHUZV]\PNURNLHPSU]\NRU]\VWDQLX]IRUXPEG]LH
zalogowa

QLHVLGRV\VWHPX:W\PZáDQLHPLHMVFXSRZLQLHQ]DF]\QDüVL7ZyMNRG

.RG SU]HGVWDZLRQ\ QD OLVWLQJX WZRU]\ VWURQ ORJRZDQLD NWyU SRND]DQR QD U\
sunku 11.2.

5\VXQHN

8*\WNRZQLF\V
identyfikowani za

SRPRFWHMVWURQ\
logowania

/LVWLQJ7DVWURQD:::SR]ZDODX*\WNRZQLNRPQD]DORJRZDQLHVLGRV\VWHPX/RJowanie.htm)

1.

<HTML>

2.

<HEAD>

3.

7,7/(!/RJRZDQLHGR)RUXP8*\WNRZQLNyZ7,7/(!

4.

</HEAD>

5.


6.

<BODY BACKGROUND="">

7.


8.

+$/,*1 &(17(5!)RUXP8*\WNRZQLNyZ%5!=DORJXMVL+!

9.


10.

<FORM ACTION="ObslugaLogowania.asp" METHOD="POST" TARGET="_parent">

11.

<DIV ALIGN="CENTER">

12.

<CENTER>

13.

<TABLE BORDER="0">

14.

<TR>

15.

7'!67521*!,'X*\WNRZQLND67521*!

16.

<INPUT TYPE="TEXT" SIZE="20" NAME="UserName"></TD>

17.

</TR>

18.

<TR>

19.

7'!67521*!+DVáR67521*!

20.

<INPUT TYPE="PASSWORD" SIZE="20" NAME="Password"</TD>

21.

</TR>

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

22.

<TR>

23.

</TR>

24.

<TR>

25.

<TD>

26.

,13877<3( 68%0,71$0( /RJLQ9$/8( =DORJXMVLGR

ÖREV]DUXX*\WNRZQLNyZ!

27.

,13877<3( 5(6(71$0( &]\ü9$/8( :\F]\üIRUPXODU]!

28.

</TD>

29.

</TR>

30.

</TABLE>

31.

</CENTER>

32.

</DIV>

33.

<DIV ALIGN="CENTER">

34.

<CENTER>

35.

+!-HOL]DSRPQLDáHOXE(OHSRGDáHVZRMHKDVáRWR

36.

<A HREF="ZapomnianeHaslo.asp" TARGET="_parent">kliknij

Ö

tutaj</A>

37.

.</H6>

38.

</CENTER>

39.

</DIV>

40.

<DIV ALIGN="CENTER">

41.

<CENTER>

42.

+!%,*!1RZ\X*\WNRZQLNXD+5() 1RZ\8]\WNRZQLNDVS!NOLNQLM

Ö

tutaj</A>

43.

.</BIG></H6>

44.

</CENTER>

45.

</DIV>

46.

</FORM>

47.

</BODY>

48.

</HTML>

:LNV]RüVWURQ\SU]HGVWDZLRQHMQDOLVWLQJXMHVWEDUG]RSURVW\PNRGHP+70/±QLH

MHVWWR VWURQD$633RQL*HMZ\MDQLRQH]RVWDá\OLQL NWyUHPRJ]DLQWHUHVRZDü &LHELH

MDNRSURJUDPLVW/LQLD]DZLHUDMFD]QDF]QLNRWZLHUDMF\IRUPXODU]+70/RNUH
la plik, jaki zostanie wykona

Q\SRNOLNQLFLXQD SU]\FLVNX 6XEPLWZFHOX REVáX*HQLH

da

Q\FK ZSLVDQ\FK Z IRUPXODU]X : W\P SU]\SDGNX GR REVáXJL GDQ\FK VáX*\ SOLN

ObslugaLogowania.asp

SRGDZDQLHFLH*NLQLHMHVWNRQLHF]QHJG\*SOLNMHVWSU]H

FKRZ\ZDQ\ZWHMVDPHMNDUWRWHFHFRIRUPXODU]:OLQLDFKL]RVWDá\XPLHV]F]RQH

SROD VáX*FH RGSRZLHGQLRGR SRGDQLD QD]Z\ X*\WNRZQLND L KDVáD :D*Q\P V]F]Hgó-

áHPQDMDNLQDOH*\]ZUyFLüXZDJZW\FKOLQLDFKVQD]Z\QDGDQHREXSRORPJG\*
po

VáX*RQHGRSREUDQLDZDUWRFLW\FKSyO]NROHNFML

Request.Form

w programie ob-

VáXJXMF\PIRrmularz.

Kod przedstawiony na listingu 11.3 tworzy prosty formularz. Strona, która w rzeczywi-

VWRFLáF]\VL]ED]GDQ\FKLVSUDZG]DSRSUDZQRüLQIRUPDFMLRWR*VDPRFLX*\WNR
wni

ND MHVW RNUHORQD MDNR ÄFHO´ IRUPXODU]D MHVW WR VWURQD

ObslugaLogowania.asp

.

Inne formularze HTML i od

SRZLDGDMFHLPVNU\SW\$63]RVWDá\VWZRU]RQHGODREVáXJL

UHMHVWUDFMLQRZ\FKX*\WNRZQLNyZRUD]SoPRF\X*\WNRZQLNRPNWyU]\]DSRPQLHOLVZR

MHJRKDVáD

0LHMVFHPZNWyU\PVVSUDZG]DQHLQIRUPDFMHSRGDQHSU]H]X*\WNRZQLNDMHVWSURce-

GXUDREVáXJLVWURQ\ORJRZDQLDSU]HGVWDZLRQDQDOLVWLQJX%D]XMFQDSRSUDZQRFL

SRGDQHJR LGHQW\ILNDWRUD X*\WNRZQLND RUD] KDVáD WD VWURQD PXVL ]GHF\GRZDü MDN RE

VáXJLZDüSRSUDZQHRUD]QLHSRSUDZQHSUyE\ORJRZDQLD

background image

&]öè,,

/LVWLQJWeryfikacja formularza logowania z listingu 11.3

1.

<HTML>

2.

<HEAD>

3.

7,7/(!/RJRZDQLHX*\WNRZQLNDGRV\VWHPX)RUXP

Ö8*\WNRZQLNyZ7,7/(!

4.

</HEAD>

5.

<BODY BGCOLOR="#FFFFFF">

6.

<%

7.

Dim Conn

8.

Dim RSUser

9.

Dim SQL

10.


11.

Set Conn = Server.CreateObject("ADODB.Connection")

12.

Set RSUser = Server.CreateObject("ADODB.Recordset")

13.


14.

Conn.Open "Forum"

15.


16.

SQL = "SELECT * FROM User WHERE UserID='" & _

17.

Request.Form("UserName") & "'"

18.

RSuser.Open SQL,Conn,1,2

19.


20.

If RSUser.EOF Then

21.

%>

22.

+$/,*1 &(17(5!8*\WNRZQLNQLHLVWQLHMH+!

23.

<H3 ALIGN="CENTER"><%= Request.Form("UserName") %></H3>

24.

<H3 ALIGN="CENTER"><A HREF="Logowanie.htm" TARGET="_parent">Kliknij

ÖWXWDMDE\]DORJRZDüVLSRQRZQLH$!+!

25.

<P>&nbsp;</P>

26.

<H3 ALIGN="CENTER"> LUB </H3>

27.

<P>&nbsp;</P>

28.

<H3 ALIGN="CENTER"><A HREF="NowyUzytkownik.asp"

Ö7$5*(7 BSDUHQW!.OLNQLMWXWDMDE\GRáF]\üGR)RUXP$!+!

29.

<%

30.

Else

31.

If RSUser("Password") <> Request.Form("Password") Then

32.

%>

33.

+$/,*1 &(17(5!3RGDQRQLHSUDZLGáRZHKDVáRGOD+!

34.

<H3 ALIGN="CENTER"><%= Request.Form("UserName") %></H3>

35.

<H3 ALIGN="CENTER"><A HREF="Logowanie.htm" TARGET="_parent">Kliknij

ÖWXWDMDE\]DORJRZDüVLSRQRZQLH$!+!

36.

<P>&nbsp;</P>

37.

<H3 ALIGN="CENTER"> LUB </H3>

38.

<P>&nbsp;</P>

39.

<H3 ALIGN="CENTER"><A HREF="ZapomnianeHaslo.asp">Kliknij tutaj, aby

40.

SU]HVáDü&LKDVáR]DSRPRFSRF]W\HOHNWURQLF]QHM$!+!

41.

<%

42.

Else

43.

Session("User") = "Yes"

44.

Session("User_ID") = RSUser("ID")

45.

Session("UserName") = RSUser("FirstName") & " " &

Ö

RSUser("LastName")

46.

%>

47.

+$/,*1 &(17(5!/RJRZDQLHSRP\OQH+!

48.

<H3 ALIGN="CENTER">Witamy ponownie <%= RSUser("FirstName") %></H3>

49.

+$/,*1 &(17(5!2VWDWQLRRGZLHG]LáHV\VWHP

Ö

RSUser("LastVisit") %></H3>

50.

<H3 ALIGN="CENTER">

51.

$+5() )RUXPDVS7$5*(7 BSDUHQW!.OLNQLMWXWDMDE\ZHMüQD

Ö)RUXP8*\WNRZQLNyZ$!

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

52.

</H3>

53.

<%

54.

RSUser("LastVisit") = Now

55.

RSUser.Update

56.

End If

57.

End If

58.


59.

%>

60.

</BODY>

61.

</HTML>

3U]HGVWDZLRQ\SRZ\*HMVNU\SWSUyEXMHSREUDüUHNRUGED]\GDQ\FKGODSRGDQHJRLGHQ
ty

ILNDWRUDX*\WNRZQLNDOLQLHGR-HOLWDNLUHNRUGQLHLVWQLHMHR]QDF]DWR*HQLH

SRGDQRSRSUDZQHJRLGHQW\ILNDWRUDLVNU\SWZ\ZLHWODRGSRZLHGQLNRPXQLNDWOLQLH

±-HOLUHNRUGLVWQLHMHWRNROHMQ\IUDJPHQWNRGXOLQLH±VSUDZG]DF]\SR

GDQRSRSUDZQHKDVáR-HOLQLHWRZyZLHWODQ\MHVWNROHMQ\NRPXQLNDW:SU]\SDGNX

JG\ SRGDQR SRSUDZQH KDVáR MHVW Z\NRQ\ZDQ\ NRG OLQLH ± NWyU\ ]DSLVXMH

Z\EUDQHZDUWRFLZRELHNFLH

Session

G]LNLF]HPXEG]LHPR*QD]QLFKVNRU]\VWDü

ZSU]\V]áRFL1DVWSQLHMHVWZ\ZLHWODQ\NRPXQLNDWZLWDMF\X*\WNRwnika (linie 43. –

±1DNRFXMHVWXDNWXDOQLDQDZDUWRüSROD

LastVisit

, w której jest zapisy-

wa

QDGDWDDNWXDOQHM ZL]\W\ -HVWWRRVWDWQLDF]\QQRüSR NWyUHMZ\NRQ\ZDQLH VWURQ\

zosta

QLH]DNRF]one.

3RZ\*V]\NRGSU]HGVWDZLDNLONDIXQNFML$'2ND*GD]QLFK]RVWDáDEDUG]LHMV]F]HgóáR

ZRRSLVDQDZQDVWSQ\FKVHkFMDFKUR]G]LDáX

2WZLHUDQLHSRäñF]HQLD

/LQLHLOLVWLQJXWZRU]LRWZLHUDMSRáF]HQLH]ED]GDQ\FK1RZ\SRF]
tko

ZR]DPNQLW\RELHNW&RQQHFWLRQMHVWWZRU]RQ\]DSRPRFPHWRG\

Server.Crea

-

teObject

,GHQW\ILNDWRU NODV\ &ODVV ,' $'2'%&RQQHFWLRQ MHVW NRQLHF]Q\ JG\*

LQIRUPXMH RQ PHWRG R W\P MDNL RELHNW QDOH*\ VWZRU]\ü 1DVWSQLH Z OLQLL MHVW

Z\ZRá\ZDQD PHWRGD

Open

QRZHJR SRáF]HQLD MDNR DUJXPHQW MHM Z\ZRáDQLD MHVW

SRGDZDQDQD]ZD(UyGáDGDQ\FKZ\NRU]\VW\ZDQHMED]\GDQ\FK-HMSLHUZV]\SDUDPHWU

MHVW RGSRZLHGQLNLHP ZáDFLZRFL

ConnectionString

obiektu

Connection

i mo

*H

]RVWDü RNUHORQ\ SU]HG Z\ZRáDQLHP PHWRG\

Open

, jak pokazano na poni

*szym

SU]\NáDG]LH

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "Forum"
Conn.Open

3RZ\*V]\NRGMHVWFDáNRZLFLHUyZQRZD*Q\NRGRZLSU]HGVWDZLRQHPXQDOLVWLQJX±

Z\NRQXMHWHVDPHF]\QQRFLFKRüZQLHFRLQQ\VSRVyE:W\PSU]\SDGNXZáDFLZRü

ConnectionString

]DZLHUD SR SURVWX QD]Z (UyGáD GDQ\FK MHGQDN PR*H RQD

]DZLHUDüWDN*HLQQHLQIRUPDFMHWDNLHMDNLGHQW\ILNDWRUX*\WNRZQLNDLKDVáRGRVWSXGR

ED]\GDQ\FK-HOLGODSU]\NáDGXGRVWSGRED]\GDQ\FKZ\PDJDáE\X*\FLDLGHQW\fi-

NDWRUDX*\WNRZQLNDRZDUWRFL

"sa"

RUD]SXVWHJRKDVáDWRPyJáE\X*\üZáDFLZRü

ConnectionString

RZDUWRFL

"DSN=Forum;userid=sa;pwd=;"

background image

&]öè,,

3DPLWDM*HPHWRGD2SHQSRELHUDWDN*HGZDRSFMRQDOQHSDUDPHWU\RSUyF]

Connec

-

tionString

±LGHQW\ILNDWRUX*\WNRZQLNDRUD]KDVáR-HOLFKFHV]WRPR*HV]SRGDüWH

ZDUWRFLMDNRRGG]LHOQHDUJXPHQW\

Conn.Open "Forum", "sa", ""

1LH]DOH*QLH RG PHWRG\ MDNLHM X*\MHV] SU]HG Z\NRU]\VWDQLHP RELHNWX

Connection

,

EG]LHV]JRPXVLDáVWZRU]\üLRWZRU]\ü

7ZRU]HQLHLRWZLHUDQLH]ELRUXUHNRUGÑZ

/LQLH L OLVWLQJX WZRU] L RWZLHUDM ]ELyU UHNRUGyZ RELHNW

Recordset

).

W

Z\ZRáaniu metody

Open

]RVWDáDX*\WDJUXSDSDUDPHWUyZ3RGREQLHMDNZSU]\pad-

ku omówionej wcze

QLHM PHWRG\

Open

obiektu

Connection

WDN*H L WHUD] ND*G\

z

DUJXPHQWyZPR*H]RVWDüRNUeORQ\SU]\Z\NRU]\VWDQLXZáDFLZRFLNWyUHMZDUWRü

MHVW SRGDZDQD SU]HG Z\ZRáDQLHP PHWRG\

Open

.RG SU]HGVWDZLRQ\ SRQL*HM ] IXQ

kcjonalnego punktu widzenia, odpowiada kodowi z listingu 11.4.

RSUser.Source = SQL
Set RSUser.ActiveConnection = Conn
RSUser.CursorType = 1 'Keyset
RSUser.LockType = 2 'Pesymistyczny
RSUser.Open

0XVLV]SDPLWDüRSRGDQLXW\FKZDUWRFLQLH]DOH*QLHRGPHWRG\MDNGRWHJRZ\korzy-

VWDV]JG\*ZSU]HFLZQ\PZ\SDGNX]RVWDQ]DVWRVRZDQHZDUWRFLGRP\OQH-HOLQLH
dysponujesz stworzonym i otworzonym obiektem

Connection

, jednak pomimo tego

FKFHV]RWZRU]\ü]ELyUUHNRrGyZWRPR*HV]]DVWSLüDUJXPHQW

Conn

IDNW\F]Q\PáD

FXFKHP]QDNyZX*\ZDQ\PGRQDZL]aQLDSRáF]HQLD]ED]GDQ\FK

RSUser.Open SQL, "Forum", 1,2

:\GDMHVL*HWDNDPHWRGDGDMHGRNáDGQLHLGHQW\F]QHUH]XOWDW\MDNSRSU]HGQLDWDNMH

GQDNQLHMHVW=DND*G\PUD]HPJG\]ELyUUHNRUGyZMHVWWZRU]RQ\SU]\Z\NRU]\VWDQLX

WHM PHWRG\ RNUHODQLD SRáF]HQLD MHVW WZRU]RQ\ QRZ\ RELHNW

Connection

. Przedsta-

ZLRQ\SRQL*HMNRGSRZRGXMHVWZorzenie trzech obiektów

Connection

:

Set RSPrzykalad1 = Server.CreateObject("ADODB.Recordset")
Set RSPrzykalad2 = Server.CreateObject("ADODB.Recordset")
Set RSPrzykalad3 = Server.CreateObject("ADODB.Recordset")
RSPrzyklad1.Open SQL, "Forum", 1, 2
RSPrzyklad2.Open SQL, "Forum", 1, 2
RSPrzyklad3.Open SQL, "Forum", 1, 2

-HGQDNNRGSU]HGVWDZLRQ\SRQL*HMZ\NRU]\VWXMHW\ONRMHGHQRELHNW

Connection

FKRü

jego wykonanie daje identyczne rezultaty):

Set RSPrzykalad1 = Server.CreateObject("ADODB.Recordset")
Set RSPrzykalad2 = Server.CreateObject("ADODB.Recordset")
Set RSPrzykalad3 = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Forum"
RSPrzyklad1.Open SQL, Conn, 1, 2
RSPrzyklad2.Open SQL, Conn, 1, 2
RSPrzyklad3.Open SQL, Conn, 1, 2

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

:\NRU]\VWDQLH W\ONR MHGQHJR RELHNWX &RQQHFWLRQ RJUDQLF]D REFL*HQLH VHUZHUD ED]\
da

Q\FKGRMHGQHJRSRáF]HQLDQDND*G\Z\NRQ\ZDQ\ZVSyáELH*QLHVNU\SW3R]ZDODWR

na otrzymanie mak

V\PDOQHMOLF]E\UyZQRF]HVQ\FKSRáF]HJG\*MHGQRSRáF]HQLHMHVW

PLQLPDOQOLF]ESRáF]HMDNPR*QDVWZRU]\üQDMHGQHMVWURQLH:QDVWSQHMVHNFML

]RVWDQLHSU]HGVWDZLRQDPHWRGRNUHOania czy zbiór rekordów zawiera jakiekolwiek da-

QHQLH]DOH*QLHRGPHWRG\MDND]RVWDáDZ\NRU]ystana do jego stworzenia.

6SUDZG]DQLHF]\]ELÑUUHNRUGÑZMHVWSXVW\

Zanim zrobisz cokolwiek ze zbiorem rekordów otworzonym w linii 18. listingu 11.4,

QDOH*\VSUDZG]LüF]\QLHMHVWRQSXVW\'RWHJRZáDQLHVáX*\NRGXPLHV]F]RQ\ZOLQLL

-HOL]ELyUUHNRUGyZQLHMHVWSXVW\WRSRMHJRRWZRU]HQLXZVND(QLNUHNRUGXEG]LH
umieszczony na pierw

V]\PUHNRUG]LHDZáDFLZRü

EOF

EG]LHPLDáDZDUWRü

false

.

:áDFLZRüWDQLH]ZáRF]QLHSRRWZRU]HQLX]ELRUXUHNRUGyZEG]LHPLDáDZDUWRü

true

W\ONR L Z\áF]QLH ZWHG\ JG\ ]ELyU UeNRUGyZ EG]LH SXVW\ -HOL VSUyEXMHV] Z\ZRáDü

MDNNROZLHNPHWRGRELHNWX

Recordset

MHOLZVND(QLNUHNRUGyZQLH]QDMGXMHVLQD

SRSUDZQ\PUHNRUG]LHQDSU]\NáDGJG\ZáDFLZRü

BOF

lub

EOF

PDZDUWRü

true

), to

]RVWDQLHZ\JHQHURZDQ\EáG

6SUDZG]HQLH Z\äñF]QLH ZäDFLZRFL

EOF

EöG]LH Z\VWDUF]DMñFH W\ONR

ZWHG\ JG\ ]RVWDQLH Z\NRQDQH WX SR RWZRU]HQLX ]ELRUX UHNRUGÑZ

-HOLLVWQLHMHPROLZRèHSU]HGZ\NRQDQLHPWHVWXE\ä\UHDOL]RZDQH

MDNLH RSHUDFMH QD ]ELRU]H UHNRUGÑZ WR SRZLQLHQH VSUDZG]Dè ]DUÑ

ZQRZäDFLZRè

EOF

MDNL

BOF

3RELHUDQLHZDUWRFL]H]ELRUXUHNRUGÑZ

-HOL]ELyUUHNRUGyZQLHMHVWSXVW\WRSURJUDPEG]LHPyJáVNRU]\VWDü]SyO]ELRUX3R

QL*HM]oVWDáDSRGDQDVNáDGQLDX*\ZDQDGRSRELHUDQLDZDUWRFLSyO]ELRUXUHNRUGyZ

<

NazwaZbioruRekordów>("<NazwaPola>")

7RSROHFHQLHPR*H]RVWDüZ\NRU]\VWDQHGRSREUDQLDOXERNUHOHQLDZDUWRFLGRZROQHJR

SROD:U]HF]\ZLVWRFLMHVWRQRRGSRZLHGQLNLHPSRQL*V]HJRSROHFHQLD

RSUser.Fields.Item("UserID").Value

']LHMHVLWDNJG\*NROHNFMD

Fields

MHVWGRP\OQZáDFLZRFLRELHNWX

Recordset

,

ZáDFiZRü

Item

± GRP\OQ ZáDFLZRFL NROHNFML

Fields

D ZáDFLZRü

Value

GRP\OQ ZáaFLZRFL RELHNWX

Field

:áDQLH GODWHJR RED SROHFHQLD V VRELH

UyZQRZD*QH 7R ZD*QD LQIRrPDFMD NWyU ZDUWR ]DSDPLWDü ± SR FR ERZLHP X*\ZDü

EDUG]LHMVNRPSOLNRZDQHMVNáDGQL

0RG\ILNRZDQLHZDUWRFLZ]ELRU]HUHNRUGÑZ

-HOLQLHRWZRU]\áH]ELRUXUHNRUGyZMDNRSU]H]QDF]RQHJRW\ONRGRRGF]\WXSDWU]RPywio-
ne

ZF]HQLHMZáDFLZRFL

CursorType

oraz

LockType

WREG]LHV]PyJáPRdyfiko-

ZDü ZDUWRFL SyO X*\ZDMF GR WHJR GZXHWDSRZHJR SURFHVX : SLHUZV]HM NROHMQRFL

background image

&]öè,,

SU]\X*\FLXQRUPDOQHJRRSHUDWRUDSU]\SLVDQLDXPLHFLV]ZDUWRFLZZ\EUDQ\FKSRODFK

SDWU]OLQLDOLVWLQJXDQDVWSQLHZ\ZRáDV]PHWRG

Upadate

-HOL]PRdyfiku-

MHV] ZDUWRFL SyO D QDVWSQLH ]DPNQLHV] ]ELyU UHNRUGyZ OXE SU]HMG]LHV] GR LQQHJR

UHNRUGX WR ZSURZDG]RQH PRG\ILNDFMH ]RVWDQ XWUDFRQH =ELRU\ UHNRUGyZ X*\ZDQH
w

QLHNWyU\FKLQQ\FKPRGHODFKGDQ\FKWDNLFKMDN'$2Z\PDJDMDE\SU]HGPRG\

ILNDFM ZDUWRFL SyO ]RVWDáD Z\ZRáDQD PHWRGD

Edit

. Metoda ta nie istnieje jednak

w

$'2D]DWHPMHMX*\FLHVSRZRGXMHZ\JHQHURZDQLHEáGXÄ2EMHFWGRHVQRWVXSSRUW

this method”).

7ZRU]HQLHQRZHJRX\WNRZQLND

:SRSU]HGQLHMVHNFML]RVWDáDSU]HGVWDZLRQDVWURQDVáX*FDGRSRGDZDQLDLGHQW\ILNDWRUD

X*\WNRwQLNDRUD]KDVáDMHGQDNVNGELRUVLWHZDUWRFL":V\VWHPLHPXVL]QDMGRZDü

VLVWURQDSR]ZaODMFDQDUHMHVWUDFMQRZ\FKX*\WNRZQLNyZFRSR]ZROLLPQDNRrzysta-
nie

]IRUXP7DVWURQD]RVWDáDMX*SRáF]RQD]HVWURQVáX*FGRORJRZDQLDX*\WNRwni-

NyZMHMNRG]RVWDáSU]HGVWDZLRQ\QDOLVWLQJX5\VXQHNSU]HGVWDZLDIRUPXODU]

UHMHVWUDF\MQ\QRZ\FKX*\WNRZQLNyZWZorzony przez kod z listingu 11.5.

5\VXQHN
Formularz
rejestracji nowych

X*\WNRZQLNyZ
pozwala

X*\WNRZQLNRPQD
podanie informacji,

NWyUH]RVWDQ
zapisane w bazie
danych

/LVWLQJ7HQIRUPXODU]+70/SURVLX*\WNRZQLNDRSRGDQLHLQIRUPDFMLNRQLHF]Q\FKGRVWZRU]HQLD

nowego rekordu w tabeli

User

(NowyUzytkownik.asp)

1.

<HTML>

2.

<HEAD>

3.


4.

7,7/(!5HMHVWUDFMDQRZ\FKX*\WNRZQLNyZ7,7/(!

5.

</HEAD>

6.


7.

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">

8.


9.

+$/,*1 &(17(5!)RUPXODU]UHMHVWUDFMLQRZ\FKX*\WNRZQLNyZ+!

10.


11.

<FORM METHOD="POST" ACTION="StworzUzytkownika.asp">

12.

<DIV ALIGN="CENTER"><CENTER><TABLE BORDER="1">

13.

<TR>

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

14.

7'!67521*!,PL67521*!7'!

15.

<TD><INPUT TYPE="TEXT" NAME="txtFirstName" SIZE="30"></TD>

16.

</TR>

17.

<TR>

18.

<TD><STRONG>Nazwisko:</STRONG></TD>

19.

<TD><INPUT TYPE="TEXT" NAME="txtLastName" SIZE="30"></TD>

20.

</TR>

21.

<TR>

22.

<TD><STRONG>Adres Email:</STRONG></TD>

23.

<TD><INPUT TYPE="TEXT" NAME="txtEmailAddress" SIZE="50"></TD>

24.

</TR>

25.

<TR>

26.

<TD><STRONG>&nbsp;</STRONG></TD>

27.

<TD>&nbsp;</TD>

28.

</TR>

29.

<TR>

30.

7'!67521*!,GHQW\ILNDWRUX*\WNRZQLND67521*!7'!

31.

<TD><INPUT TYPE="TEXT" NAME="txtUserID" SIZE="20"></TD>

32.

</TR>

33.

<TR>

34.

7'!67521*!+DVáR67521*!7'!

35.

<TD><INPUT TYPE="PASSWORD" NAME="txtPassword" SIZE="20"></TD>

36.

</TR>

37.

</TABLE>

38.

</CENTER></DIV>

39.

<DIV ALIGN="CENTER">

40.

<CENTER>

41.

3!,13877<3( 68%0,79$/8( 6WZyU]QRZHJRX*\WNRZQLND

Ö

NAME="B1">

42.

,13877<3( 5(6(79$/8( :\F]\üZV]\VWNLHSROD1$0( %!3!

43.

</CENTER>

44.

</DIV>

45.

</FORM>

46.

</BODY>

47.

</HTML>

Listing 11.5 przedstawia kod formularza HTML. Sam formularz zawiera kod, którego

Z ZLNV]oFLQLHPXVLV]SLVDü VDP3U]HGVWDZLRQ\ IRUPXODU] PR*QD VWZRU]\ü Z GR

ZROQ\PHG\WRU]H+70/MHGQ\P]OHSV]\FKFKRüQLHMHG\Q\PPR*HE\ü)URQW3DJH

: U]HF]\ZLVWRFL VDP XNáDG IRrPXODU]D QLH MHVW ZD*Q\ GOD SURJUDPLVW\ ]QDF]HQLH
posiada jedynie fakt istnienia pól i przycisków formularza oraz ich nazwy. Nazwy pól

RUD]SU]\FLVNyZIRUPXODU]D]GHILQLRZDQH]RVWDá\ZOLQLDFKLV

RQHZ\NRU]\VW\ZDQHZVNU\SFLHNWyU\REVáXJXMHZ\QLNLZ\NRQDQLDWHMVWURQ\1D]ZD

VNU\SWXREVáXJXMFHJRIRUPXODU]]RVWDáDSRGDQDZOLQLLDMHJRNRGPR*QD]QDOH(ü
na listingu 11.6.

/LVWLQJ7HQVNU\SWSU]HWZDU]DZDUWRFLZSURZDG]RQHGRIRUPXODU]DQDVWURQLH1RZyUzytkownik.asp

LWZRU]\QRZHJRX*\WNRZQLNDZWDEHOLUser (StworzUzytkownika.asp)

1.

<HTML>

2.

<HEAD>

3.

7,7/(!6WZyU]QRZHJRX*\WNRZQLND7,7/(!

4.

</HEAD>

5.


6.

<BODY BGCOLOR="#FFFFFF">

7.

<%

8.

Dim Conn

background image

&]öè,,

9.

Dim RSUser

10.

Dim SQL

11.


12.

Set Conn = Server.CreateObject("ADODB.Connection")

13.

Set RSUser = Server.CreateObject("ADODB.Recordset")

14.


15.

Conn.Open "Forum"

16.


17.

SQL = "SELECT * FROM User WHERE UserID='" &

Ö

Request.Form("txtUserid") & "'"

18.


19.

RSUser.Open SQL,Conn,1,2

20.


21.

If Not RSUser.EOF Then

22.

%>

23.


24.

+$/,*1 &(17(5!8*\WNRZQLNMX*LVWQLHMH+!

25.


26.

<H3 ALIGN="CENTER"> <%= Request.Form("txtUserId") %></H3>

27.


28.

<H3 ALIGN="CENTER"><A HREF="NowyUzytkownik.asp" TARGET="_parent">

29.

.OLNQLXWXWDMDE\SRGDüLQQ\LGHQW\ILNDWRUX*\WNRZQLND$!+!

30.


31.

<P>&nbsp;</P>

32.


33.

<H3 ALIGN="CENTER">LUB</H3>

34.


35.

<P>&nbsp;</P>

36.


37.

<H3 ALIGN="CENTER"><A HREF="ZapomnianeHaslo.asp" TARGET="_parent">

38.

.OLNQLMWXWDMMHOLFKFHV]DE\SU]HVáDü&LKDVáRSRF]W

39.

HOHNWURQLF]QMHOL]DSRPQLDáHJRDZF]HQLHM]DUHMHVWURZDáHVL

ÖSU]\X*\FLXWHJRLGHQW\ILNDWRUD$!+!

40.

<%

41.

Else

42.


43.

RSUser.AddNew

44.

RSUser("FirstName") = Request.Form("txtFirstName")

45.

RSUser("LastName") = Request.Form("txtLastName")

46.

RSUser("UserID") = Request.Form("txtUserID")

47.

RSUser("Password") = Request.Form("txtPassword")

48.

RSUser("Email") = Request.Form("txtEmail")

49.

RSUser("LastVisit") = Now()

50.

RSUser.Update

51.

%>

52.


53.

+$/,*1 &(17(5!6WZRU]RQRQRZHJRX*\WNRZQLND+!

54.


55.

<H3 ALIGN="CENTER">

56.

:LWDP\QD)RUXP8*\WNRZQLNyZ 5HTXHVW)RUPW[W)LUVW1DPH!

57.

</H3>

58.


59.

<H3 ALIGN="CENTER">

60.

$+5() /RJRZDQLHKWP7$5*(7 BSDUHQW!.OLNQLMWXWDMDE\VL

Ö]DORJRZDü$!+!

61.

<%

62.

End If

63.

%>

64.

</BODY>

65.

</HTML>

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

7HQ VNU\SW SU]HSURZDG]D W\ONR MHGQ NRQWURO SRSUDZQRFL GDQ\FK XPLHV]F]RQH
w

OLQLDFK ± VSUDZG]DMF F]\ SRGDQ\ LGHQW\ILNDWRU X*\WNRZQLND MX* LVWQLHMH

Zu

SHáQLHSXVWHZDUWRFL]RVWDá\E\]DDNFHSWRZDQHMHGQDNMHVWWRGRSU]\MFLDZSU]\

padku testowego systemu ADO. Za

GDQLHPMDNLHPLDáLOXVWURZDüWHQNRQNUHWQ\VNU\SW

MHVWGRGDZDQLHQRZHJRUHNRUGXGR]ELRUXUHNRUGyZ]DGDQLHWR]RVWDáRV]F]HJyáRZLHM
omówione w kolejnych sekcjach.

'RGDZDQLHUHNRUGÑZGR]ELRUXUHNRUGÑZ

3RVSUDZG]HQLX*HZSURZDG]RQ\LGHQW\ILNDWRUX*\WNRZQLNDQLHZ\VWSXMHMX*ZED]LH

GDQ\FKOLQLDOLVWLQJXQDGV]HGáF]DVDE\GRGDüX*\WNRZQLNDGRWDEHOL=ELyU
re

NRUGyZPXVL]RVWDüZF]HQLHMRWZRU]RQ\QDWDEHOLGRNWyUHMFKFHV]GRGDZDüUHkordy.

:SRZ\*V]\PVNU\SFLH]ELyUUHNRUGyZ]RVWDáRWZRU]RQ\QDWDEHOL

User

SU]\X*\ciu

kry

WHULyZ NWyUH QLH ]RVWDá\ VSHáQLoQH 'R RWZDUFLD ]ELRUX UHNRUGyZ SRVáX*\áR SROH

cenie SQL umieszczone w linii 17. Nawet pomi

PRWHJR*HQLH]RVWDá\]ZUyFRQH*DGQH

UHNRUG\]ELyUUHNRUGyZFDá\F]DVZVND]XMHQDWDEHO8VHUD]DWHPGRGDZDQHUHNRUG\

EGXPLHV]F]DQHZáDQLHZQLHM-HOLEG]LHV]SRWU]HERZDáRWZRU]\ü]ELyUUHNRUGyZ

Z\áF]QLHZFHOXGRGDZDQLDQRZ\FKUHNRUGyZWRZSROHFHQLX64/SRZLQLHQHSRGDü

WDNLHNU\WHULDNWyUHVSRZRGXM*H QLH]RVWDQ ]ZUyFRQH*DGQH UHNRUG\7DNLPSROH

FHQLHPPR*HE\ü

SELECT * FROM User WHERE 1=2

1LH PD *DGQHJR VHQVX Z ]X*\ZDQLX SDPLFL L ]DVREyZ SURFHVRUD QD SHáQ\ ]ELyU UH

NRUGyZMHOLQLHMHVWRQGRQLF]HJRSRWU]HEQ\

.LHG\EG]LHV]MX*G\VSRQRZDá]ELRUHPUHNRUGyZWRGRGDQLHIDNW\F]QHJRUHNRUGXMHVW

áDWZ\PWUyMHWDSRZ\PSURFHVHP

1.

:\ZRáDMPHWRG

AddNew

(linia 43.).

2.

3U]\SLV]SRORPRGSRZLHGQLHZDUWRFLOLQLH±

3.

:\ZRáDMPHWRG

Update

(linia 50.).

=DXZD**HQLHPXVLV]RNUHODüZDUWRFLSROD,'LGHQW\ILNDWRUDJG\*MHVWRQDRNUH
lana auto

PDW\F]QLH SRSU]H] LQNUHPHQWDFM ZDUWRFL WHJR VDPHJR SROD SRSU]HGQLHJR

UHNRUGXMHVWWRSROHDXWRLQNUHPHQWXMFH:V]HONDZHU\ILNDFMDQDSR]LRPLHUHNRUGX

ZW\PZHU\ILNDFMDLQGHNVyZMHVWZ\NRQ\ZDQDZPRPHQFLHZ\ZRáDQLDPHWRG\

Upda

-

te

D]DWHP]D]Z\F]DMZáDQLHZW\PPLHMVFXSRMDZLDMVLEáG\%áG\SRZRdowane

SU]H] QLH]JRGQRü W\SyZ OXE ZLHONRFL SyO V JHQerowane w liniach, w których

]QDMGXMHVLSU]\SLVDQLHZDUWRFLGRSROD

:\ZLHWODQLH)RUXP

*áyZQ VWURQ WZRU]RQHJR V\VWHPX MHVW

Forum.asp

przedstawiona na listingu 11.7.

6áX*\ RQD GR Z\ZLHWODQLD ZLDGRPRFL SRJUXSRZDQ\FK ZHGáXJ SURZDG]RQ\FK UR]

PyZ1DWHMVWURQLHX*\tNRZQLNPR*HNOLNQüQDGRZROQHMZLDGRPRFLFRVSRZRGXMH

Z\ZLHWOHQLHMHMWHNVWXOXEGRGDüQRZZLDGRPRü1DU\VXQNX]RVWDáDSU]HGsta-

background image

&]öè,,

ZLRQDNRPSOHWQDVWURQDZ\ZLHWORQDZSU]eJOGDUFH)XQNFMDRGSRZLDGDQLDQDZLDdo-

PRFLMHVWGRVWSQDW\ONRQDVWURQLHSUH]HQWXMFHMWUHüZLDGRPRFL

5\VXQHN
Wyniki wykonania
Forum.asp

SU]HGVWDZLDMOLVW
wszystkich

ZLDGRPRFL
zapisanych w bazie
danych

/LVWLQJ7DVWURQDZ\ZLHWODZV]\VWNLHZLDGRPRFLSU]HFKRZ\ZDQHZWDEHOL0HVVDJHV)RUXPDVS

1.

<HTML>

2.

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">

3.

Sub WyswietlWiadomosciPotomne( Parent, Level )

4.


5.

Dim RSMessages

6.

Dim SQL

7.

Dim i

8.


9.

Set RSMessages = Server.CreateObject("ADODB.Recordset")

10.


11.

SQL = "SELECT Message.ID, " & _

12.

"Message.Subject, Message.Date, " & _

13.

"User.UserID FROM Message, User " & _

14.

"WHERE Message.UserID = User.ID AND " & _

15.

"Message.Parent=" & Parent

16.


17.

RSMessages.Open SQL,Conn,1,2

18.


19.

Do While Not RSMessages.EOF

20.


21.

Response.Write "<TR>"

22.

Response.Write "<TD>"

23.


24.

For i = 1 to level

25.

Respnse.Write "&nbsp;&nbsp;"

26.

Next

27.


28.

Response.Write "<A HREF='Wiadomosc.asp?id="

29.

Response.Write RSMessages("ID") & "'>"

30.

Response.Write RSMessages("Subject")

31.

Response.Write "</A>"

32.

Response.Write "</TD><TD>"

33.

Response.Write RSMessages("UserID")

34.

Response.Write "</TD><TD>"

35.

Response.Write FormatDateTime( RSMessages("Date"),2)

36.

Response.Write "</TD></TR>"

37.


38.

WyswietlWiadomosciPotomne RSMessages("ID"), Level+1

39.

RSMessages.MoveNext

40.

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

41.

Loop

42.


43.

End Sub

44.

</SCRIPT>

45.


46.

<HEAD>

47.

7,7/(!)RUXP8*\WNRZQLNyZ7,7/(!

48.

</HEAD>

49.

<BODY>

50.


51.

<TABLE BORDER="1" WIDTH="100%">

52.

<TR>

53.

7':,'7+ !67521*!:LDGRPRFL67521*!7'!

54.

7':,'7+ !67521*!:\VáDQ\SU]H]67521*!7'!

55.

7':,'7+ !67521*!'DWDZ\VáDQLD67521*!7'!

56.

</TR>

57.


58.

<%

59.


60.

Dim Conn

61.

Set Conn = Server.CreateObject("ADODB.Connection")

62.


63.

Conn.Open "Forum"

64.


65.

WyswietlWiadomosciPotomne 0,1

66.


67.

%>

68.

</TABLE>

69.


70.

+$/,*1 &(17(5!$+5() 1RZD:LDGRPRVFDVS!'RGDMQRZ

ÖZLDGRPRü$!+!

71.

</BODY>

72.

</HTML>

6WURQDSU]HGVWDZLRQDQDOLVWLQJXG]LDáDG]LNLZ\NRU]\VWDQLXprocedury rekuren-
cyjnej

FR R]QDF]D *H SURFHGXUD WD Z\ZRáXMH VDPD VLHELH 3URFHGXUD WD QRVL QD]Z

WyswietlWiadomosciPotomne

L ]RVWDáD ]DSLVDQD Z OLQLDFK ± 'R VWZRrzenia

FDáHMVWURQ\NRQLHF]QHMHVWSRGDQLHW\ONRGZyFKSDUDPHWUyZ3LHUZV]\]QLFKRNUHOD
dla jakiej wiado

PRFL JáyZQHM SRZLQQ\ ]RVWDü Z\ZLHWORQH ZLDGRPRFL SRWRPQH

ZDUWRüWHJRSDUDPHWUXR]QDF]D*HSRZLQLHQ]RVWDüZ\ZLHWORQ\QDMZ\*szy poziom

ZLDGRPRFL F]\OL WH NWyUH QLH PDM ZLDGRPRFL QDGU]GQ\FK 7HQ DUJXment jest

Z\NRU]\VW\ZDQ\MDNRF]üSROHFHQLD64/X*\ZaQHJRGRSRELHUDQLDZLDGRPRFL]ED

]\ SDU] OLQLH ± 'OD ND*GHM ZLDGRPRFL RGQDOH]LRQHM ÄSRQL*HM´ GDQHM

ZLDGRPRFL QDGU]GQHM IXQNFMD

WyswietlWiadomosciPotom

ne jest wy

ZRá\ZDQD

SRQRZQLH MHGQDN W\P UD]HP Z MHM Z\ZRáDQLX MDNR ZLDGRPRü QDGU]dna jest
poda

ZDQ\ LGHQW\ILNDWRU DNWXDOQHM ZLDGRPRFL OLQLD : WHQ VSRVyE SRZVWDMH

ba

UG]RQLHZLHONLIUDJPHQWNRGXNWyU\MHVWZVWDQLHREVáX*\üGRZROQLORüZLDGRPRci.

Drugi argument funkcji

WyswietlWiadomosciPotomne

VáX*\ GR NRQWURORZDQLD

ZFLQDQLD ZLDGRPRFL L RNUHOD QD MDNLP SR]LRPLH RJyOQHJR GU]HZD DNWXDOQD ZLDdo-

PRüMHVWZ\ZLHWODQD

3U]HFKRG]HQLHSRPLöG]\UHNRUGDPL

Procedura podana na listingu 11.7 przedstawia sposób wykorzystania metod obiektu
Re

FRUGVHW VáX*F\FK GR SRUXV]DQLD VL SRPLG]\ UHNRUGDPL 0HWRG\ WH SR]ZDODM QD

background image

&]öè,,

pobranie po kolei ka

*GHJRUHNRUGX]QDMGXMFHJRVLZ]ELRU]HUHNRUGyZLZykonanie na

QLPVHULLRSHUDFML:OLQLDFK±MHVWXPLHV]F]RQDSWODNWyUDEG]LHZ\NRnywana

D*GRRVLJQLFLDNRFD]ELRUXUHNRrdów (

EOF

:ND*GHMLWHUDFMLSWOLZ\ZRá\wana,

jest metoda

MoveNext

obiektu

Recordset

FR SRZRGXMH SU]HVXQLFLH ZVND(nika do

QDVWSQHJRUHNRUGX-HOLWRSROHFHQLH]RVWDáRE\]DSoPQLDQHSRZVWDáDE\QLHVNRF]RQD

SWODJG\*QLJG\QLH]RVWDáE\RVLJQLW\NRQLHF]ELRUXUHNRrdów.

7ZRU]HQLH85/LQDSRGVWDZLHLQIRUPDFML]ED]\GDQ\FK

)XQNFMRQDOQD PR*OLZRü NOLNQLFLD QD NRQNUHWQHM ZLDGRPRFL MHVW LPSOHPHQWRZDQD
przez stwo

U]HQLHGODND*GHMZLDGRPRFL85/DSU]HND]XMFHJRMHMLGHQW\ILNDWRUGRSOL

ku

Wiadomosc.asp

=DGDQLH WR MHVW Z\NRQ\ZDQH G]LNL X*\FLX podstawienia,

ZVWDZLDMFHPXZDUWRü]H]ELRUXUHNRrGyZGRNRGX+70/ND*GHJRSRáF]HQLD=DOHFD

VL ]DFKRZ\ZDQLH MDN QDMSURVWV]HM SRVWDFL 85/OL L SU]HND]\ZDQLH GR QLFK MHG\QLH

LGHQW\ILNDWRUDOXEVáRZDNOXF]RZHJR3U]HGVWDZLRQDSRZ\*HMVWURQDZFDáRFLED]XMH

QDZLDGRPRFLDFK]DSLVDQ\FKZED]LHGDQ\FKV\VWHPXMHGQDNPXVLLVtQLHüMDNDPHto-

GDGRGDZDQLDZLDGRPRFLGRWHMED]\0HWRGDWDMHVWGRVWDUF]DQDSU]H]VWURQ

Nowa-

Wiadomosc.asp

RSLVDQ Z QDVWSQHM VHNFML NRG WHM VWURQ\ SU]HGVWDZLRQ\ ]RVWDá QD

listingu 11.8.

/LVWLQJ6WURQDVáX*FDGRWZRU]HQLDQRZ\FKZLDGRPRFL1RZD:LDGRPRVFDVS

1.

<HTML>

2.

<HEAD>

3.

7,7/(!6WZyU]QRZZLDGRPRVü7,7/(!

4.

</HEAD>

5.

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">

6.


7.

<% If Request.QueryString("Type") = "Reply" Then %>

8.

+$/,*1 &(17(5!2GSRZLHG]QDZLDGRPRü+!

9.


10.

<FORM ACTION="DodajNowaWiadomosc.asp?ID=<%=

Ö

Request.QueryString('ID')%>"

11.

METHOD="POST" TARGET="_parent">

12.

<% Else %>

13.

',9$/,*1 &(17(5!&(17(5!+!1RZDZLDGRPRü+!

14.

</CENTER></DIV>

15.


16.


17.

<FORM ACTION="DodajNowaWiadomosc.asp" METHOD="POST"

Ö

TARGET="_parent">

18.

<% End If %>

19.

<TABLE BORDER="0">

20.

<TR>

21.

<TD>Temat:</TD>

22.

<TD><INPUT ID="txtSubject" NAME="txtSubject" SIZE="50"

23.

VALUE="<%= Request.QueryString("Subject") %>" ></TD>

24.

</TR>

25.

<TR>

26.

7'9$/,*1 723!:LDGRPRü7'!

27.

<TD><TEXTAREA ID="txtMessage" NAME="txtMessage" ROWS="4"

Ö

COLS="50">

28.


29.

</TEXTAREA></TD>

30.

</TR>

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

31.

<P><INPUT NAME="cmdSubmit" TYPE="SUBMIT"

Ö9$/8( :\OLM!QEVSQEVS

32.

,13871$0( FPG5HVHW7<3( 5(6(79$/8( :\F]\ü

Ö

formularz"></P>

33.

</TABLE>

34.

</FORM>

35.

</BODY>

36.

</HTML>

.RG SU]HGVWDZLRQ\ QD OLVWLQJX WZRU]\ SURVW\ IRUPXODU] +70/ NWyU\ PR*QD

]REDF]\ü QD U\VXQNX 3RZ\*V]D VWURQD ]DZLHUD WDN*H QLHZLHONL IUDJPHQW NRGX

$63 NWyU\ SR]ZDOD MHM IXQNFMRQRZDü ]DUyZQR MDNR IRUPXODU] VáX*F\ GR WZRU]HQLD

QRZ\FKZLDGRPRFLMDNLIRUPXODU]VáX*F\GRRGSRZLDGDQLDQDZLDGRPRFLSU]HVáDQH
do forum. Podczas odpowiadania na wiado

PRüOLQLH±PRG\ILNXM85/XPLH

szczony w parametrze

action

IRUPXODU]DGRGDMFGRQLHJRLGHQW\ILNDWRUZLDGRPRci.

7HQ SDUDPHWU ZUD] ] ]DZDUWRFL VDPHJR IRUPXODU]D SU]HV\áDQ\ MHVW GR SURJUDPX

REVáXJL

DodajNowaWiadomosc.asp

), którego kod przedstawiono na listingu 11.9.

5\VXQHN
Ten formularz
HTML gromadzi
informacje, które

SRVáX*GR
stworzenia nowej

ZLDGRPRFLIRUXP

X*\WNRZQLNyZ

6NU\SW REVáXJXMF\ RWU]\PXMH Z\QLNL ] IRUPXODU]D SU]HGVWDZLRQHJR QD U\VXQNX
i musi zapi

VDü MH Z ED]LH GDQ\FK &]\QQRFL Z\NRQ\ZDQH SU]\ GRGDZDQLX QRZ\FK

wia

GRPRFL]RVWDá\RSiVDQHZQDVWSQHMVHNFMLUR]G]LDáX

3U]HWZDU]DQLHIRUPXODU]DQRZHMZLDGRPRFL

Strona

DodajNowaWiadomosc.asp

NWyUHM NRG ]RVWDá SU]HGVWDZLRQ\ QD OLVWLQJX

GRGDMHQRZZLDGRPRüGRV\VWHPX]DFKRZXMFVLSU]\W\PZUy*Q\VSRVyE
w

]DOH*QRFLRGWHJRF]\]DSLV\ZDQDZLDGRPRüMHVW]XSHáQLHQRZDF]\WH* VWDQRZL

RGSRZLHG(/LVWLQJ]DZLHUDNRGX*\ZDQ\GRSU]HWZRU]HQLDZLDGRPRFL±F]\OLGR
dodania nowego rekordu do bazy danych.

background image

&]öè,,

/LVWLQJ6WZRU]HQLHQRZHMZLDGRPRFLOXERGSRZLHG]LQDSRGVWDZLHZDUWRFLSU]HND]anych

parametrów (DodajNowaWiadomosc.asp)

1.

<%@ LANGUAGE=VBScript %>

2.

<HTML>

3.

<%

4.

Dim Conn

5.

Dim RSAddMessage

6.

Dim SQL

7.


8.

Set Conn = Server.CreateObject("ADODB.Connection")

9.

Set RSAddMessage = Server.CreateObject("ADODB.Recordset")

10.


11.

Conn.Open "Forum"

12.


13.

SQL = "SELECT * FROM Message Where 1=2"

14.


15.

RSAddMessage.Open SQL, Conn, 1, 2

16.


17.

RSAddMessage.AddNew

18.

RSAddMessage("Subject") = Request.Form("txtSubject")

19.

RSAddMessage("UserID") = Session("User_ID")

20.

RSAddMessage("Date") = Now()

21.

If Request.QueryString("ID") > 0 Then

22.

RSAddMessage("Parent") = Request.QueryString("ID")

23.

Else

24.

RSAddMessage("Parent") = 0

25.

End If

26.


27.

RSAddMessage("Message") = Request.Form("txtMessages")

28.

RSAddMessage.Update

29.


30.

%>

31.


32.

<HEAD>

33.

7,7/(!'RGDMZLDGRPRü7,7/(!

34.

</HEAD>

35.


36.

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">

37.


38.

+$/,*1 &(17(5!7ZRMDZLDGRPRü]RVWDáDGRGDQD+!

39.


40.

<P ALIGN="CENTER"><A HREF="Forum.asp">

41.

.OLNQLMWXWDMDE\SRZUyFLüQD)RUXPX*\WNRZQLNyZ$!

42.

</BODY>

43.

</HTML>

1DMZD*QLHMV]\ VNU\SW WHM VWURQ\ ]QDMGXMH VL Z OLQLDFK ± 7HQ VNU\SW WZRU]\

QRZ\ UHNRUG SR NROHL ]DSLVXMH ZDUWRFL MHJR SyO D QDVWSQLH Z ]DOH*QRFL F]\

ZLDGRPRü MHVW RGSRZLHG]L F]\ QLH SROX ZLDGRPRFL QDGU]GQHM MHVW SU]\SLV\ZDQ\

LGHQW\ILNDWRU ZLDGRPRFL QD NWyU RGSRZLaGDP\ OXE ZDUWRü

0

. Po zapisaniu wszy-

VWNLFKZLDGRPRFLMHVWZ\ZRá\ZDQDPHWRGD

Update

ZOLQLL'RGDQDZLDGRPRü

SRMDZLVLQDOLFLHZ\ZLHWODQHMSU]H]VWURQ

Forum.asp

]DUD]SRMHMRGZLH*HQLX

7HUD] G\VSRQXMHP\ MX* ZLNV]RFL PR*OLZRFL IXQNFMRQDOQ\FK WZRU]RQHJR IRUXP

8*\WNRZQLNPR*HVL]DORJRZDüGRGDüZLDGRPRüLZ\ZLHWOLüOLVWZV]\VWNLFKGR

VWSQ\FKZLDGRPRFLFDá\F]DVEUDNXMHMHGQDNNLONXHOHPHQWyZ3RGVWDZRZ\P]QLFK

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

MHVWPR*OLZRüZ\ZLHWOHQLDSRMHG\nF]HMZLDGRPRFL'ROLVW\ZLDGRPRFLGRGDOLP\

MX*85/HNWyUHPDMXPR*OLZLüZ\ZLHWOHQLHZLDGRPRFLSDWU]OLQLH±OLstin-

JXMHGQDNMDNQDUD]LHQLH]RVWDáVWZRU]RQ\*DGHQNRGNWyU\E\MHREVáXJLZDá

7HNNRGMHVWVWRVXQNRZRZD*Q\GODWHJRWH*]RVWDQLHRPyZLRQ\ZQDVWpnej sekcji.

3U]HJOñGDQLHSRMHG\QF]\FKZLDGRPRFL

1D OLVWLQJX ]RVWDá SU]HGVWDZLRQ\ VNU\SW VáX*F\ GR Z\ZLHWODQLD SRMHG\QF]\FK
wiadomo

FL&]\QQRFLUHDOL]RZDQH]DSRPRF$'2QDWHMVWURQLHVWDNLHVDPHMDN

na poprzednich stro

QDFK %H] $'2 FDá\ V\VWHP QLH PyJáE\ ZLHOH ]G]LDáDü /LVWLQJ

11.10 zawiera kod strony

Wiadomosc.asp

X*\ZDQHMGRZ\ZLHWODQLDND*GHMZ\EUDQHM

ZLDGRPRFL

/LVWLQJ7DVWURQDZ\ZLHWODZLDGRPRFL]DSLVDQHZV\VWHPLHQDSRGVWDZLHSU]HND]DQego do niej

identyfikatora (Wiadomosc.asp)

1.

<HTML>

2.

<%

3.

Dim Conn

4.

Dim RSMessage

5.

Dim TheSubject

6.

Dim TheMessage

7.

Dim SQL

8.


9.

Set Conn = Server.CreateObject("ADODB.Connection")

10.

Set RSMessage = Server.CreateObject("ADODB.Recordset")

11.


12.

Conn.Open "Forum"

13.


14.

SQL = "SELECT Message.ID, " & _

15.

"Message.Subject, Message.Date, Message.Message, " & _

16.

"User.UserID, User.FirstName, User.LastName, FROM Message, User " & _

17.

"WHERE Message.UserID = User.ID AND " & _

18.

"Message.ID =" & Request.QueryString("ID")

19.


20.

RSMessage.Open SQL, Conn, 1, 2

21.


22.

If Not RSMessage.EOF Then

23.


24.

TheSubject = Server.HTMLEncode(RSMessage("Subject"))

25.

TheMessage = Server.HTMLEncode(RSMessage("Message"))

26.

ThePoster = RSMessage("FirstName") & " " & RSMessage("LastName")

27.

QueryString = "Type=Reply&ID=" & RSMessage("ID") & "&Subject=" & _

28.

Server.URLEncode(RSMessage("Subject"))

29.


30.

End If

31.

%>

32.

<HEAD>

33.

<TITLE><%= TheSubject %></TITLE>

34.

</HEAD>

35.


36.

<BODY>

37.


38.

<TABLE BORDER="0" WIDTH="100%" CELLSPACING="4" CELLPADDING="4">

39.

<TR>

40.

<TD WIDTH="100%"><STRONG><FONT FACE="ARIAL">

background image

&]öè,,

41.

Temat: <%= TheSubject %></FONT></STRONG></TD>

42.

</TR>

43.

<TR>

44.

<TD WIDTH="100%"><STRONG><FONT FACE="ARIAL">

45.

<%= TheMessage %></FONT></STRONG></TD>

46.

</TR>

47.

<TR>

48.

<TD WIDTH="100%"><STRONG><FONT FACE="ARIAL">

49.

:\VáDQDSU]H] 7KH3RVWHU!)217!67521*!7'!

50.

</TR>

51.

<TR>

52.

<TD WIDTH="100%"><STRONG><FONT FACE="ARIAL">

53.

$+5() 1RZD:LDGRPRVFDVS" 4XHU\6WULQJ!2GSRZLHG]QDW

ÖZLDGRPRü!$!

54.

</FONT></STRONG></TD>

55.

</TR>

56.

</TABLE>

57.


58.

<P>&nbsp;</P>

59.

</BODY>

60.

</HTML>

.RGZ\ZLHWODMF\ZLDGRPRüMHVWSURVW\SUH]HQWXMHRQZLDGRPRüZVSRVyEF]\WHOQ\

SDWU]U\VXQHNL]DSHZQLD*H*DGQH]QDNLVSHFMDOQHQLH]DEXU]MHMZ\JOGXOLQLH

±=PLHQQHSRUHGQLHVX*\ZDQHZ\áF]QLHGRXSURV]F]HQLDNRGXVWURQ\LQLH

V NRQLHF]QH : OLQLL QD VDP\P NRFX WDEHOL VáX*FHM GR SU]HGVWDZLHQLD ZLDdo-

PRFLMHVWXPLHV]F]DQ\85/GRVWURQ\

NowaWiadomosc.asp

RPyZLRQHMZHZF]H

QLHMV]HMF]FLUR]G]LDáX:W\PZ\SDGNX]HZ]JOGXQDWR*HFKFHV]RGSRwieG]LHü

QDRJOGDQZLDGRPRüGRDGUHVX85/MHVWGRGDZDQDJUXSDSDUDPHWUyZ3U]HsyáDQ\

MHVW LGHQW\ILNDWRU ZLDGRPRFL QD NWyU RGSRZLDGDP\ MHM WHPDW RUD] SDUDPHWU

Type

X*\ZDQ\ SU]H] VNU\SW

NowaWiadomosc.asp

OLVWLQJ GR RNUHOHQLD VSRsobu

]DSLVDQLDQRZHMZLDGRPRFL

5\VXQHN
Skrypt
Wiadomosc.asp

Z\ZLHWODZ\EUDQ

ZLDGRPRü
i pozwala

X*\WNRZQLNRZLQD
odpowiedzenie na

QL

3RGVXPRZDQLHV\VWHPX)RUXP8\WNRZQLNÑZ

6WZRU]\áHMX*]QDF]QZLNV]RüDSOLNDFMLIRUXPX*\WNRZQLNyZ6\VWHPMHVWMX*SUD
wie kom

SOHWQ\QLHOLF]FNLONXPQLHM]QDF]F\FKV]F]HJyáyZNWyUH]RVWDQSU]HGsta-

ZLRQHMDNRüZLF]HQLDSRGNRQLHFWHJRUR]G]LDáX

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

3UDFD]HVFKHPDWDPLED]GDQ\FK

:WHMF]FLUR]G]LDáX]DMPLHP\VLSU]\NáDGHPEDUG]LHM]DDZDQVRZDQ\FKPR*OLZRFL

$'2±PHWRG

Connection.OpenSchema

.

.RU]\VWDMF]$'2 OXEMDNLHJRNROZLHNLQQHJR QDU]G]LD ED] GDQ\FK SU]HG Z\NRna-

QLHPNRGXEG]LHV]PXVLDáE\üZLDGRP\VWUXNWXU\ED]\=DSLVDQLHX*\ZDQ\FKSROH

FH64/RUD]LQQ\FKUR]ND]yZZ\PDJD]QDMRPRFLQD]ZWDEHORUD]LQQ\FKLQIRUPDFML

FR MHGQDN ]URELü MHOL EG]LHV] FKFLDá SUDFRZDü QD ED]LH NWyUHM VWUXNWXUD MHVW

G\QDPLF]QD±NWyUHMWDEHOHLSRODVFRMDNLF]DVGRGDZDQHXVXZDQHEG(]PLHQLDQH"

$'2 SRVLDGD NLOND X*\WHF]Q\FK PR*OLZRFL SR]ZDODMF\FK QD RNUHOHQLH VWUXNWXU\

ED]\GDQ\FKZWUDNFLHZ\NRQ\ZDQLDSURJUDPX0R*OLZRüSREUDQLD]ELoru rekordów

]DZLHUDMFHJR ZV]\VWNLH WDEHOH ED]\ GDQ\FK SR]ZDOD QD VWZRU]HQLH GOD SU]\NáDGX

GRUD(nego systemu wyszukiwawczego, bez konLHF]QRFL NRGRZDQLD F]HJRNROZLHN QD

VWDáH 6WURQD SU]HGVWDZLRQD QD OLVWLQJX WZRU]\ VHUL WDEHO +70/ SR MHGQHM QD

ND*GWDEHOED]\GDQ\FKGRVWSQHM]DSRPRFQD]Z\(UyGáDGDQ\FK2'%&1D]ZD

(UyGáDGDQ\FK]RVWDáD]DNRGRZDQDQDVWDáHZOLQLLMHGQDNUyZQLHGREU]HPR*QDE\

MSRELHUDü]NROHNFML

Request.Form

lub

Request.QueryString

.

/LVWLQJ3U]\NáDGDVSWZRU]\OLVWZV]\VWNLFKWDEHOED]\GDQ\FKRUD]OLVWSyOND*GHM]W\FKWDEHO

1.

<HTML>

2.


3.

<HEAD>

4.

7,7/(!3U]\NáDGRWZLHUDQLDVFKHPDWX7,7/(!

5.

</HEAD>

6.


7.

<BODY>

8.

<%

9.

Dim Conn

10.

Dim RSTables

11.

Dim RSCurrentTable

12.

Dim adSchemaTables

13.

Dim Field

14.

Dim SQL

15.


16.

adSchemaTables = 20

17.


18.

Set Conn = Server.CreateObject("ADODB.Connection")

19.

Set RSTables = Server.CreateObject("ADODB.Recordset")

20.

Set RSCurrentTable = Server.CreateObject("ADODB.Recordset")

21.


22.

Conn.Open "Forum"

23.


24.

Set RSTables = Conn.OpenSchema( adSchemaTables )

25.


26.

RSTables.Filter = "Table_Type='Table'"

27.


28.

Do While Not RSTables.EOF

29.

%>

30.


31.

<H2><%= RSTables("Table_Name" %></H2>

32.

<%

33.

SQL = "SELECT * FROM [" & RSTables("Table_Name") & "] WHERE 1=2"

background image

&]öè,,

34.


35.

RSCurrentTable.Open SQL, Conn, 1, 2

36.


37.

For Each Field in RSCurrentTable.Fields

38.


39.

Response.Write "<H4>&nbsp;&nbsp;&nbsp;"

40.

Response.Write Field.Name & "</H4>" & vbcrlf

41.


42.

Next

43.


44.

RSCurrentTable.Close

45.


46.

RSTables.MoveNext

47.

Loop

48.


49.

RSTables.Close

50.

Conn.Close

51.

%>

52.

</BODY>

53.

</HTML>

Kod aplikacji

3U]\NáDGDVS

Z\NRU]\VWXMHNLONDLQWHUHVXMF\FKV]WXF]HNGRVWSQ\FK

Z $'2 3LHUZV] ] QLFK MHVW VSRVyE SREUDQLD OLVW\ WDEHO ]D SRPRF PHWRG\

Open

-

Schema()

, której wy

ZRáDQLH]RVWDáRXPLHV]F]RQHZOLQLL7DPHWRGDSRELHUDDUJX

PHQWNWyU\PPR*HE\üGRZROQDVSRUyG]QDF]QHMJUXS\ZDUWRFLLZZ\QLNX]ZUDFD

]ELyUUHNRUGyZ,VWQLHMWDN*HPR*OLZRüSRGDQLDGUXJLHJRDUJXPHQWXNWyU\SR]ZDODQD

ILOWURZDQLH]ZUDFDQ\FKUH]XOWDWyZ=ZUDFDQHPRJE\üEDUG]RUy*QHLQIRUPDFMHSR

F]ZV]\RGLQGHNVyZDVNRF]\ZV]\QDZL]DFKLQWHJUDlQRFLQLHPQLHMMHGQDNZW\P

SU]\NáDG]LHVNRQFHQWUXMHP\XZDJZ\áF]QLHQD]ZUyFHQLXWDEHO:DUWRüSU]HND]DQD
jako argument –

20

, zapisana w zmiennej

adSchemaTables

±SRZRGXMH*HPHWRGD

OpenSchema()

]DZUyFL]ELyUUHNRUGyZ]DZLHUDMF\ZV]\VWNLHWDEHOHED]\=HZ]JO

GXQDIDNW*H]ZUyFRQH]RVWDQWDN*HLQIRUPDFMHRZLHOXWDEHODFKV\VWHPRZ\FKNWyUH

ZZLNV]RFLZ\SDGNyZQLHEGSRWU]HEQHOLQLDZ\NRU]\VWXMHILOWURJUDQLczaMF\
zwracany zbiór rekordów, tylko do standardowych tabel bazy danych. To przefil-

WURZDQLHZ\QLNyZPRJáRE\]RVWDü]UHDOL]RZDQHWDN*HSRSU]H]SRGDQLHGUXJLHJRDUJX

PHQWXZZ\ZRáDQLXPHWRG\

OpenSchema()

.

3RSU]HILOWURZDQLX]ELRUXUHNRUGyZSWODOLQLH±DQDOL]XMHND*G\]UHNRUGyZ

D QDVWSQLH RWZLHUD ]ELyU UHNRUGyZ OLQLD Z\NRU]\VWXMF SU]\ W\P QD]Z WDEHOL
umie

V]F]RQ Z

RSTables

1DVWSQLH SRELHUDQH V SR NROHL ZV]\VWNLH HOHPHQW\

kolekcji

Fields

obiektu

Recordset

, na podstawie których jest tworzona lista kolumn

GDQHM WDEHOL 3U]HGVWDZLRQ\ NRG PR*H ]oVWDü ] áDWZRFL ]PRG\ILNRZDQ\ L Z\NR

U]\VWDQ\GRUy*Q\FKFHOyZ

3RGVXPRZDQLH

&HOHP $63 MHVW QLHPDO Z\áF]QLH SU]HQLHVLHQLH LQIRUPDFML ] ED] GDQ\FK QD VWURQ\

:::WHQFHOMHVWUHDOL]RZDQ\]DSRPRF$'2&RZLFHM$'2EDUG]RV]\ENRVWDMH

VLSRSXODUQ\PQDU]G]LHPREVáXJLED]GDQ\FKZ\NRU]\VW\ZDQ\PZZLHOXLQQ\FKUR

background image

5R]G]LDä

7ZRU]HQLHDSOLNDFMLED]GDQ\FKSU]\X\FLXRELHNWÑZGDQ\FK$FWLYH;

GRZLVNDFKSURJUDPLVW\F]Q\FKZW\PWDN*HZ9LVXDO%DVLFX:W\PUR]G]LDOHQDXF]\

áHVLZ\NRU]\VW\ZDü$'2LSUDFRZDü]ED]DPLGDQ\FKWZRU]FSU]\RND]MLV\VWHP

IRUXPX*\WNRZQLNyZ7ZRU]FWHQSU]\NáDGSR]QDáHRELHNW\

Connection

,

Command

oraz

Recordset

.

3\WDQLDLRGSRZLHG]L

'ODF]HJR QLHNWyUH ] SU]\NáDGyZ SU]HGVWDZLRQ\FK Z W\P UR]G]LDOH X*\ZDM

NU\WHULyZNWyUHQLJG\QLH]RVWDQVSHáQLRQHWDNLFKMDN

WHERE 1=2

)?

'RGDMF UHNRUG\ GR WDEHOL SU]\ Z\NRU]\VWDQLX PHWRG\ $GG1HZ ]ELyU UHNRUGyZ
mu

VL]RVWDüRWZRU]RQ\QDGDQHMWDEHOL=DGDQLHWRPRJáRE\VSHáQLüND*GH]DS\WDQLH

ED]XMFHQDZ\EUaQHMWDEHOLMHGQDNQLHFKFHV]DE\]DS\WDQLH]ZUDFDáRMDNLHNROZLHN

Z\QLNLJG\*QLHVRQHSRWU]HEQH8*\ZDMFZDUXQNXWDNLHJRMDN

1=2

PR*HV]E\ü

SHZQ\*HQLH]RVWDQ]ZUyFRQH*DGQHZ\QLNLJG\*ZDUXQHNWDNLQLJG\QLH]RVWDQLH

VSHáQLRQ\1LHPQLHMMHGQDN]ELyUUHNRrdów zostanie otworzony na wybranej tabeli.
.LHG\PR*QDX*\ZDüNROHNFML

Fields

obiektu

Recordset

?

Kolekcja Fields pozwala na operowanie na wszystkich polach tabeli jako elemen-

WDFKJUXS\0R*HV]MHMX*\ZDüMHOLFKFHV]SREUDüSRNROHLZV]\VWNLHMHMHOHPHQW\
i

Z\NRQDüQDQLFKWDNLHVDPHRSHUDFMH

'ODF]HJRZVNU\SWDFK$63QLHPR*QDX*\ZDü'$2"
:U]HF]\ZLVWRFLPR*QD$'2QLHMHVWMHG\Q\PQDU]G]LHPREVáXJLED]GDQ\FKMD
kie

JRPR*HV]X*\ZDüZVNU\SWDFK$63:\NRU]\VW\ZDüPR*QDQLHPDOZV]\VWNLH

na

U]G]LDSU]yVWRVRZDQHGRSUDF\Z9LVXDO%DVLFLHPMHGQDNZZLNV]RFLZ\SD

GNyZQLHEGRQHSU]yVWRVRZDQHGRSUDF\ZURGRZLVNXVNU\SWRZ\PG]LDáDMF\P
po stronie serwera. DAO wyko

U]\VW\ZDQHZDSOLNDFMDFK$63EG]LHG]LDáDüSRSUD

ZQLHMHGQDNHIHNW\ZQRüG]LDáDQLDEG]LH QL*V]DQL*ZSU]\SDGNX Zykorzystania

$'2DREFL*HQLHVHUZHUD±ZLNV]H
$UJXPHQW\ Z\ZRáDQLD PHWRG\

Recordset.Open

PR*QD RNUHOLü SRSU]H]

SU]\SLVDQLH ZDUWRFL RGSRZLHGQLP ZáDFLZRFLRP RELHNWX

Recordset

. Która

z tych metod jest lepsza?

2ELHPHWRG\VUyZQLHGREUH7HRUHW\F]QLHZLFHMF]DVXPR*H]DMüSU]\SLV\ZDQLH
war

WRFL ZáDFLZRFLRP MHGQDN MHVW WR Z\áF]QLH NZHVWLD HIHNW\ZQRFL G]LDáDQLD

2NUHODQLHSoszczególQ\FKZáDFLZRFLMHVWU]DG]LHMVWRVRZDQHOHF]EDUG]LHMF]\WHOQH

:DUV]WDW

3\WDQLD NZL]RZH RUD] üZLF]HQLD PDM VáX*\ü SRSUDZLHQLX ]UR]XPLHQLD RPDZLDQ\FK

]DJDGQLH 2GSRZLHG]L QD S\WDQLD ]QDOH(ü PR*QD Z GRGDWNX $ SW Ä2GSRZLHG]L QD

S\WDQLD´2GSRZLHG]LQD üZLF]HQLDPR*QD]QDOH(ü QD ZLWU\QLH ::: :\GDZQLFWZD
HELION.

background image

&]öè,,

.ZL]

1.

.WyUH]SRQL*V]\FKPHWRGVPHWRGDPLRELHNWX5HFRUGVHW"
D

Open

E

Execute

F

Seve

G

Close

2.

-DNLRELHNWXGRVWSQLDNROHNFM

Parameters

?

3.

Jaka jest rola kolekcji

Properties

?

4.

3UDZGD F]\ IDáV] :áDFLZRü

Recordset.Recordcount

zawsze zwraca

SRSUDZQLORüUHNRrdów.

5.

-DNLHGZLHU]HF]\SRZLQLHQHVSUDZG]LüDE\XSHZQLüVL*H]ELyUUHNRUGyZ

MHVWFDáNRZLFLHSXVW\"

6.

Jakiej metody obiektu

Connection

PR*HV]X*\üDE\Z\NRQDüQDED]LHGD

nych polecenie SQL?

7.

&RSRZRGXMHSRQL*V]DOLQLDNRGXSU]\]DáR*HQLX*H&RQQMHVWRELHNWHPW\SX
Connection:

Conn.Open "DNS=FooBar;uid=Fredzio;pwd=Bolo"

8.

3UDZGDF]\IDáV]-HOLRWZRU]\V]WU]\]ELRU\UHNRUGyZ]DND*G\PUD]HPX*\

ZDMF GR WHJR W\FK VDP\FK LQIRUPDFML R SRáF]HQLX ]DPLDVW RELHNWX

Con

-

nection

WR]ELRU\WHX*\MWHJRVDPHJRSRáF]HQLD

çZLF]HQLD

1.

Do strony

Forum.asp

GRGDMVNU\SWNWyU\]PXVLX*\WNRZQLNyZGR]DORgowa-

QLDVLGRV\sWHPXMHOLMHV]F]HWHJRQLH]URELOL

2.

3U]\NáDG V\VWHPX IRUXP X*\WNRZQLNyZ QLJG\ QLH XGRVWSQLá X*\WNRZQLNRP

PR*OLZRFLXVuZDQLDVZRLFKZáDVQ\FKZLDGRPRFL'RGDMWDNPR*OLZRüGR
strony

Wiadomosc.asp

]DSHZQLDMFMHGQRF]HQLHDE\ZLDGRPRüPyJáXVX

QüW\ONRWHQX*\WNRZQLNNWyU\MVWZoU]\á

3.

3\WDQLH NZL]RZH QXPHU ]DZLHUD Z\ZRáDQLH PHWRG\

Open

obiektu

Con

-

nection

. Zapisz ten sam kod na dwa inne sposoby.


Wyszukiwarka

Podobne podstrony:
MLP FIM Fanfic Wojna o Equestrię Rozdział 11
Rozdział 11, Choroby zakaźne i pasożytnicze - Zdzisław Dziubek
Rozdział 11, Giełda
Rozdział 11. bash, Kurs Linuxa, Linux
Bauman Zygmunt - Socjologia, Rozdział 11 - Jak sobie dajemy radę w życiu
rozdział 11
Rozdział 11
rozdzial 11 zadanie 03
(1995) WIEDZA KTÓRA PROWADZI DO ŻYCIA WIECZNEGO (DOC), rozdział 11, Rozdział 1
Prawdziwe barwy rozdział 11
12 rozdzial 11 c6lubhaczn3mh474 Nieznany
11 rozdzial 11 RFP26NVOB57TOXLU Nieznany
zintegrowane rozdzial 11
Bestia zachowuje się źle rozdział 11
Rozdział 11, Dni Mroku 1 - Nocny wędrowiec
opracowania z poprzednich lat, pietrasiński, 11,12,13, marzena, STRESZCZENIE- ROZWOJÓWKA: Pietrasińs
ps zarz robins 11, Robbins „Zachowania w organizacji” rozdział 11 - Władza i politykowan

więcej podobnych podstron