Asp - adatbázisokkal való együttműködés
Talán komoly webhely nem tehet adatbázis nélkül. Függetlenül attól, hogy fórum, vendégkönyv vagy csevegés, az adatbázisok mindenhol megtalálhatók, kényelmesek és praktikusak, bár persze, mint mindenki a világunkban, hiányosságai vannak, de ez most nem a kérdés. Az adatbázisok kezeléséhez használt ASP (Active Server Page) az ADAC (ActiveX Data Objects) könyvtárat használja, amely az MDAC összetevőkészletében található (Microsoft Data Access Components - megtalálható a Microsoft honlapján). Ebben a cikkben beszélek az ADO használatáról ASP alkalmazások fejlesztésére.
Mielőtt közvetlenül az adatokkal dolgozna, először "csatlakoztatnia" kell az adatbázist. Az adatbázishoz való kapcsolatot az ADO könyvtár Csatlakozási objektuma végzi.
A Kiszolgáló objektum CreateObject metódusával létrehozhat egy Connection objektumot:
Dim Conn 'deklarálja a kapcsolatot a kapcsolathoz
'hozzon létre egy kapcsolat objektumot
Állítsa be a Conn = Server értéket. CreateObject ("ADODB.Connection")
A Conn változó harmadik sorában a Connection objektum tulajdonságai áthaladnak.
A Connection objektum létrehozása után ténylegesen meg kell nyitnia az adatbázist, ezt a Nyílt módszerrel kell végrehajtani:
dbpath = Szerver. MapPath ("my.mdb")
Conn. Nyissa meg a "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" dbpath
A 4. sorban a dbpath változót deklarálják, majd az 5. sorban az ASP oldal aktuális helyét a kiszolgálóhoz rendeli, és az adatbázis fájl neve az my.mdb.
És így, most az adatbázis kapcsolódik hozzánk, nyitott és készen áll a harcra. Az adatok feldolgozásához a Recordset objektumot használjuk. A Recordset létrehozása, valamint a Connection:
Dim RS 'deklarál egy változót a Recordset számára
'hoz létre Recordset objektumot
Állítsa be az RS = kiszolgálót. CreateObject ("ADODB.Recordset")
Az RS változó 9. sorában a Recordset objektum tulajdonságai elhaladnak.
Az adatbázis-műveleteket SQL-lekérdezések végzik. Az SQL (Strukturált lekérdezési nyelv) az adatbázisok feldolgozásával kapcsolatos strukturált lekérdezések univerzális nyelve, amelyről néhány cikket, sőt könyveket már nem írt. Ebben a cikkben az SQL csak a cikk hatálya alá tartozik.
A Csatlakozás mellett a Recordset-t is meg kell nyitni, ezért a Nyílt módszert is használják:
Dim strSQL "deklarálja a változót az SQL lekérdezéshez
strSQL = "SELECT * FROM tblMain" formázza az SQL lekérdezést
RS. Nyissa meg a strSQL-t, Nyissa meg a Recordset-t
A 10. sorban a strSQL változót deklaráljuk, szükségünk van egy SQL lekérdezés létrehozására, bár nélküle megtehetjük, de egyetértünk abban, hogy sokkal kényelmesebb, mint az SQL lekérdezés közvetlen beillesztése a nyílt módszerbe.
A 11. sorban valójában létezik a kérés. A SELECT parancs a leggyakrabban használt utasítás, amely lehetővé teszi, hogy adatokat kapjunk egy táblából, esetünkben az összes adat a táblázatban tblMain. A Recordset használatakor más SQL parancsokat általában nem használnak.
A 12. sorban az Open módszer megnyitja a Recordset-et a korábban definiált SQL lekérdezéssel a már megnyitott Conn adatbázisban.
Annak érdekében, hogy ellenőrizze az adatok rendelkezésre állását az adatbázisban, használhatja a Recordset objektum BOF módját és EOF-jét:
Ha RS. BOF = Igaz vagy RS. EOF = True Ezután nincs adat
Választ. Írás ("
adatok nem állnak rendelkezésre
„)
Egyéb adatok
RS. MoveLast "lépés az utolsó rekordra
RS. MoveFirst "megy az első rekordra
Választ. Írjon ("teljes rekord az adatbázisban:" _
RS. RecordCount "
„)
Do While nem RS. EOF "sort az összes rekordot
'ellenőrizze, hogy elérte-e az adatbázis végét
- Ha igen, akkor elhagyjuk a ciklust
Ha RS. BOF = Igaz vagy RS. EOF = Igaz, majd Exit Do
'kimeneti adatokat az id mezőből és a névből
Választ. Írás (RS-fájlok ("id") "
„)
Választ. Írás (RS mezők ("név") "
„)
'ne felejtsd el átfordítani az adatokat
A 13. sorban az adatbázistábla adatainak rendelkezésre állása be van jelölve. Abban az esetben, ha az érték igaz, akkor a 14. sorban a felirat: "adatok hiányzik" jelenik meg.
Írás igaz, elvileg nem szükséges, egyszerűen írj: "Ha RS.BOF vagy RS.EOF akkor" - az eredmény ugyanaz lesz.
Ha vannak adatok a táblában, akkor a 16-17 sorban a MoveLast és a MoveFirst segítségével a Recordset az utolsó és az első rekordra kerül. Ehhez pontosan meg kell határozni az adatbázisban lévő rekordok számát. A rekordok számát a RecordCount módszer 18-19 sorban adja vissza.
A 20. és 29. sorok között az "id" és a "name" mezők adatait eredményezi.
Különös figyelmet fordítsunk a 28. sorra. A MoveNext módszer hiányában végtelen hurok keletkezik, ami, mint megértett, az ASP program lefagyását okozza.
Ha a munka befejeződik az adattáblával, a Recordset, ha már nincs szükség rá, célszerű lezárni. A Recordset lezárja a Close módszerrel: