Chcete si otevřít vlastní elektronický obchod a nevíte jak ho vytvořit? Nechcete používat mnohdy drahé a nevariabilní systémy? Tento seriál přináší návod, jak vytvořit elektronický obchod v ASP.

Vzniklý elektronický obchod bude obsahovat katalog a ceník zboží, nákupní košík a objednávkový systém. Uživatelé se budou moci zaregistrovat tak, aby nemuseli při každém nákupu vyplňovat všechny údaje znovu. Databáze produktů a kategorií se bude upravovat pomocí webového rozhraní.

Informace o produktech a kategoriích budou uloženy v databázích. Jako databázový systém je použit MS SQL Server. MS Access lze využít také. Není ale pro tento účel nejvhodnější, v případě vyšší návštěvnosti se totiž začnou objevovat problémy. Všechny skripty ASP jsou napsány tak, aby bez problémů fungovaly na IIS 4 a 5.

Adresářová struktura

Soubory hotového elektronického obchodu budou rozčleněny pro přehlednost do několika adresářů:

Adresář Účel
Admin Adresář pro stránky a funkce administračního rozhraní
Data Adresář pro datové soubory (v případě databází Access soubory MDB; statistické soubory přístupu)
Includes Adresář pro soubory s funkcemi

V kořenovém adresáři e-shopu budou stránky zajišťující jeho funkci.

Databáze

Databáze, potřebná pro náš elektronický obchod, bude obsahovat dvě tabulky: tabulku kategorií a tabulku produktů. V tabulce kategorií bude uloženo číslo kategorie, název kategorie, popis kategorie a číslo nadřazené kategorie:

Název pole Typ MS-SQL Typ Access
ID int aut. číslo
Nazev char (50) text
Popis char (250) text
Nadrazena int číslo

Pro vygenerování tabulky na SQL Serveru můžete použít následující příkaz:

  CREATE TABLE [dbo].[Kategorie]
  (
    [ID] [int] IDENTITY (1,1) NOT NULL ,
    [Nazev] [char] (50) NOT NULL ,
    [Popis] [char] (250) NULL ,
    [Nadrazena] [int] NULL
  ) ON [PRIMARY]

V tabulce produktů budou uloženy následující informace: číslo produktu, název produktu, výrobce, kategorie, popis, cena bez DPH, DPH, sleva, jestli je produkt na prodej:

Název pole Typ MS-SQL Typ Access
ID int aut. číslo
Nazev char (50) text
Vyrobce char (50) text
Kategorie int číslo
Popis text memo
Cena int číslo
DPH int číslo
Sleva int číslo
Prodavat bit ano/ne

Příkaz pro vytvoření tabulky na SQL Serveru:

  CREATE TABLE [dbo].[Produkty]
  (
    [ID] [int] IDENTITY (1,1) NOT NULL ,
    [Nazev] [char] (50) NOT NULL ,
    [Vyrobce] [char] (50) NOT NULL ,
    [Kategorie] [int] NOT NULL ,
    [Popis] NULL ,
    [Cena] [int] NOT NULL ,
    [DPH] [int] NOT NULL ,
    [Sleva] [int] NULL,
    [Prodavat] [bit] DEFAULT 1
  ) ON [PRIMARY]

Přístup do databáze (connect.asp)

Tímto je databáze potřebná pro náš e-shop pro tuto chvíli hotova. Jak k ní ale pomocí ASP přistupovat? Pro přístup do databáze si vytvoříme soubor connect.asp v adresáří Includes, který budeme vkládat do každého skriptu. Tento skript je poměrně univerzální, stačí jen doplnit potřebné proměnné.

Skript nejdříve kontroluje hodnotu proměnné intTyp, která určuje, zda použít připojovací řetězec pro SQL Server nebo pro databázi Access. Je-li hodnota této proměnné 0, pokusí se skript připojit k SQL Serveru, je-li hodnota proměnné 1, připojí se (pomocí souborového DSN) k databázi Access. Připojení by se také dalo realizovat pomocí ODBC, ale podle mého názoru je výkonnější připojení přes OLE DB / ADO. U většiny webhostingů je registrace ODBC doplňková placená služba, tedy pokud vůbec tuto službu nabízejí, proto je většinou výhodnější používat OLE DB.

Pro připojení k SQL serveru je ještě nutné nastavit proměnné strServer – IP adresa nebo název serveru SQL; strDatabaze – jaká databáze na SQL serveru se má použít; strUzivatel – uživatelské jméno pro přístup k databázi a strHeslo – heslo. Chcete-li použít připojení k databázi Access, je potřeba zadat hodnotu proměnné strDatabaze. Tato hodnota musí být virtuální cestou k souboru MDB.

Příklad nastavení proměnných:

Proměnná SQL Server Access
intTyp 0 1
strServer interval.cz - není potřeba -
strDatabaze Eshop data/eshop.mdb
strUzivatel eshopadmin - není potřeba -
strHeslo heslo - není potřeba -

Celý skript se skládá ze dvou funkcí. Funkce, která otevře databázi, a funkce, která otevřenou relaci uzavře:

  <%
  Dim objDatabaze
  Sub PripojDatabazi
    Dim strPripojeni, strServer, strDatabaze, strUzivatel, strHeslo, intTyp
    'deklarace proměnných
    intTyp = 0
    'typ připojení: 0 = SQL Server; 1 = Databáze Access
    strServer = "server.cz"
    'server SQL
    strDatabaze = "Pubs"
    'databáze na serveru SQL / virtuální cesta k souboru s databází MS Access
    strUzivatel = "uzivatel"
    'přihlašovací jméno k SQL Serveru
    strHeslo = "heslo"
    'heslo pro přihlášení k SQL Serveru
    If intTyp = 0 Then
    'když připojení k SQL Serveru
      strPripojeni = "Provider=SQLOLEDB; Data Source=" & strServer & "; UID=" & strUzivatel & "; Pwd=" & strHeslo & "; Database=" & strDatabaze
      'vytvoř připojovací řetězec
    ElseIf intTyp = 1 Then
    'když připojení k databázi Access
      strPripojeni = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(strDatabaze)
      'vytvoř připojovací řetězec
    End If
    set objDatabaze = Server.CreateObject("ADODB.Connection")
    'vytvoření objektu ADODB.Connection pro komunikaci s databází
    objDatabaze.Open strPripojeni
    'inicializace databázového objektu
  End Sub
  Sub OdpojDatabazi
    objDatabaze.Close
    Set objDatabaze = nothing
  End Sub
  %>

Na závěr si ještě můžete stáhnout dnes použité kódy - cast1.zip (obsahuje tabulky.sql – příkazy pro SQL Server, databázi Access v. 2000 – e-shop.mdb a soubor connect.asp pro připojení k databázi). Příště vytvoříme pro náš e-obchod katalog.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět