Användarhandbok Avbryt

Förändra en databas med hjälp av ASP-kommandon i Dreamweaver

 

 

Lär dig hur du använder ASP-kommandon i Dreamweaver för att ändra en databas och lägga till och köra en sparad procedur.

Obs!

Användargränssnittet i Dreamweaver och senare har förenklats. Det kan därför hända att du inte hittar vissa av alternativen i den här artikeln i Dreamweaver och senare. Mer information finns i den här artikeln.

Om ASP-kommandoobjekt

Ett ASP-kommandoobjekt är ett serverobjekt som utför en åtgärd i en databas. Objektet kan innehålla valfri giltig SQL-sats, till exempel en sats som returnerar en postmängd eller en sats som infogar, uppdaterar eller tar bort poster i en databas. Ett kommandoobjekt kan förändra databasens struktur om SQL-satsen lägger till eller tar bort en kolumn i en tabell. Du kan även köra lagrade procedurer i en databas med hjälp av kommandoobjekt.

Ett kommandoobjekt kan återanvändas, i den mening att programservern kan återanvända en enda kompilerad version av objektet för att utföra kommandot flera gånger. Du gör ett kommando återanvändbart genom att ge egenskapen Förberedd för objektet Kommando värdet true, som i följande VBScript-sats:

mycommand.Prepared = true
mycommand.Prepared = true
mycommand.Prepared = true

Om du vet att kommandot kommer att utföras mer än ett fåtal gånger, kan du effektivisera databasåtgärderna genom att använda en enda kompilerad version av objektet.

Obs!

Alla databas-providers har inte stöd för förberedda kommandon. Om det inte stöds av databasen kan den returnera ett fel när du anger värdet true för egenskapen. Den kanske till och med ignorerar din begäran om att förbereda kommandot och ge egenskapen Förberedd värdet false.

Kommandoobjekt skapas med skript på en ASP-sida, men med hjälp av Dreamweaver kan du skapa kommandoobjekt utan att behöva skriva en ASP-kodrad.

Förändra en databas med hjälp av ASP-kommandon

Med hjälp av Dreamweaver kan du skapa ASP-kommandoobjekt som infogar, uppdaterar eller tar bort poster i en databas. Du förser kommandoobjektet med den SQL-sats eller den lagrade procedur som utför åtgärden i databasen.

  1. Öppna den ASP-sida som ska köra kommandot i Dreamweaver.
  2. Öppna panelen Serverfunktioner (Fönster > Serverfunktioner), klicka på plustecknet (+) och välj sedan Kommando.
  3. Ge kommandot ett namn, markera en anslutning till den databas som innehåller posterna som du vill redigera och markera den redigeringsåtgärd som du vill att kommandot ska utföra: Infoga, Uppdatera eller Ta bort.

    Dreamweaver påbörjar SQL-satsen åt dig, baserat på den typ av åtgärd som du har markerat. Om du till exempel väljer Infoga ser dialogrutan ut som i följande exempel:

    Ange ASP-kommandot
    Ange ASP-kommandot

  4. Slutför SQL-satsen.

    Information om hur du skriver SQL-satser som förändrar databaser finns i handböcker om Transact-SQL.

  5. Använd området Variabler om du vill definiera några SQL-variabler. Ange namnet och värdet vid körning. Genom att ange varje variabels typ och storlek förhindras injektionsangrepp.

    Följande exempel visar en Infoga-sats med tre SQL-variabler. Variablernas värden kommer från URL-parametrar som skickas till sidan, enligt definitionen i kolumnen Körtidsvärde i området Variabler.

    En Infoga-sats som innehåller tre SQL-variabler
    En Infoga-sats som innehåller tre SQL-variabler

    Ta reda på värdet på Storlek på panelen Databaser i Dreamweaver. Leta reda på databasen på panelen Databaser och expandera den. Leta sedan reda på tabellen som du arbetar med och expandera den. Tabellen innehåller uppgifter om fältens storlek. Det kan till exempel stå ADDRESS (WChar 50). I det här exemplet är storleken 50. Du hittar även storleken i databasprogrammet.

    Obs!

    Numeriska, booleska och datum/tid-datatyper har alltid storleken -1.

    Ta reda på typvärdet genom att läsa följande tabell:

    Typ i databasen

    Typ i Dreamweaver

    Storlek

    Numerisk (MS Access, MS SQL Server, MySQL)

    Double

    -1

    Boolesk, Ja/Nej (MS Access, MS SQL Server, MySQL)

    Double

    -1

    Datum/tid (MS Access, MS SQL Server, MySQL)

    DBTimeStamp

    -1

    Alla övriga typer av textfält, bland annat MySQL-textdatatyperna char, varchar och longtext

    LongVarChar

    se databastabell

    Text (MS Access) eller nvarchar, nchar (MS SQL Server)

    VarWChar

    se databastabell

    Memo (MS Access), ntext (MS SQL Server) eller fält som stödjer stora textmängder

    LongVarWChar

    1073741823

    Mer information om SQL-variablers typ och storlek finns på adressen www.adobe.com/go/4e6b330a.

  6. Stäng dialogrutan.

    Dreamweaver infogar ASP-kod på sidan som skapar ett kommando som infogar, uppdaterar eller tar bort poster i databasen då sidan körs på servern.

    Koden ställer in värdet på egenskapen Förberedd hos objektet Kommando till true, vilket innebär att programservern återanvänder samma kompilerade version av objektet varje gång som kommandot körs. Vill du ändra den inställningen växlar du till kodvyn och ändrar egenskapen Prepared till false.

  7. Skapa en sida med ett HTML-formulär så att användare kan mata in postdata. Infoga tre textfält (txtCity, txtAddress och txtPhone) och en Skicka-knapp i HTML-formuläret. Formuläret använder metoden GET och skickar textfältens värden till den sida där kommandot finns.

Om lagrade procedurer

Sidor som förändrar databaser kan du bygga med hjälp av serverfunktioner, men de kan också byggas med hjälp av databasmanipuleringsobjekt som lagrade procedurer eller ASP-kommandoobjekt.

En lagrad procedur är ett återanvändbart databasobjekt som utför en åtgärd i databasen. En lagrad procedur innehåller SQL-kod som bland annat kan användas för att infoga, uppdatera och ta bort poster. Lagrade procedurer kan utöver det även ändra databasens struktur. Med hjälp av en lagrad procedur kan du till exempel lägga till en tabellkolumn eller ta bort en hel tabell.

En lagrad procedur kan dessutom anropa en annan lagrad procedur, samt acceptera indataparametrar och returnera flera värden till den anropande proceduren i form av utdataparametrar.

Lagrade procedurer kan återanvändas i den mening att du, med hjälp av en enda kompilerad version av en procedur, kan utföra en databasåtgärd flera gånger. Om du vet om att en databasåtgärd kommer att utföras mer än ett fåtal gånger, eller att samma åtgärd kommer att utföras av olika program, kan du effektivisera databasåtgärderna genom att använda en lagrad procedur.

Obs!

MySQL- och Microsoft Access-databaser saknar stöd för lagrade procedurer.

Lägga till en lagrad procedur (ColdFusion) (CS6)

Med hjälp av en lagrad procedur kan du förändra en databas. En lagrad procedur är ett återanvändbart databasobjekt som utför en åtgärd i databasen.

Innan du kan förändra en databas med hjälp av en lagrad procedur, måste den lagrade proceduren innehålla SQL-kod som förändrar databasen på något vis. Mer information om att skapa lagrade procedurer och lagra dem i din databas finns i dokumentationen till din databas och i bra handböcker om Transact-SQL.

  1. Öppna den sida som ska köra den lagrade proceduren i Dreamweaver.
  2. Klicka på plusknappen (+) i panelen Bindningar (Fönster > Bindningar) och välj Lagrad procedur.
  3. Markera en anslutning till den databas som innehåller den lagrade proceduren på snabbmenyn Datakälla.
  4. Ange användarnamnet och lösenordet till ColdFusion-datakällan.
  5. Välj en lagrad procedur på snabbmenyn Lagrade procedurer.

    Eventuella parametrar fylls automatiskt i av Dreamweaver.

  6. Markera en parameter och klicka på Redigera om du vill ändra den.

    Dialogrutan Redigera lagrad procedurvariabel visas. Namnet på den variabel du redigerar visas i rutan Namn.

    Obs!

    Eventuella indataparametrar för den lagrade proceduren måste du ange testvärden för.

  7. Gör de ändringar som krävs:
    • Välj en riktning på snabbmenyn. En lagrad procedur kan ha indatavärden, utdatavärden eller både in- och utdatavärden.

    • Markera en SQL-typ på snabbmenyn. Ange ett returvärde, ett körtidsvärde och ett testvärde.

  8. Om den lagrade proceduren tar emot en parameter, lägger du till sidparametrar genom att klicka på plusknappen (+).
    Obs!

    Du måste ange motsvarande sidparametrar för den lagrade procedurens samtliga parameterreturvärden. Lägg inte till sidparametrar om det inte finns något motsvarande returvärde.

    Behöver du lägga till fler sidparametrar, klickar du på plusknappen (+).

  9. Markera sidparameter och klicka på minusknappen om du vill ta bort den eller på Redigera om du vill förändra den.
  10. Markera alternativet Returnerar postmängd med namnet och ange sedan ett namn för postmängden. Returnerar den lagrade proceduren en postmängd kan du visa den genom att klicka på Testa.

    Dreamweaver kör den lagrade proceduren och visar postmängden, om någon sådan finns.

    Obs!

    Om den lagrade proceduren returnerar en postmängd och tar parametrar, och du vill testa den, måste du ange ett värde i kolumnen Standardvärde i textrutan Variabler.

    Obs!

    Du kan generera olika postmängder med hjälp av olika testvärden. Om du vill byta testvärden klickar du på Redigera för Parameter och ändrar testvärdet eller klickar på Redigera för Sidparameter och ändrar standardvärdet.

  11. Om den lagrade proceduren returnerar en statuskod, markerar du alternativet Returnerar statuskod med namnet och anger statuskodens namn. Klicka på OK.

    När du stänger rutan infogar Dreamweaver ColdFusion-kod på sidan, som anropar en lagrad procedur i databasen när koden körs på servern. Den lagrade proceduren utför i sin tur en databasåtgärd, till exempel att infoga en post.

    Tar den lagrade proceduren parametrar kan du skapa en sida som samlar parametervärdena och skickar dem till sidan med den lagrade proceduren. Du kan till exempel skapa en sida som samlar parametervärden från användarna med hjälp av URL-parametrar eller ett HTML-formulär.

Köra en lagrad procedur (ASP) (CS6)

På ASP-sidor måste du lägga till ett kommandoobjekt för att kunna köra en lagrad procedur. Mer information om kommandoobjekt finns i Om ASP-kommandoobjekt.

  1. Öppna den sida som ska köra den lagrade proceduren i Dreamweaver.
  2. Klicka på plusknappen (+) i panelen Bindningar (Fönster > Bindningar) och välj Kommando (Lagrad procedur).

    Dialogrutan Kommando visas.

  3. Ange ett namn för kommandot, markera en anslutning till databasen med den lagrade proceduren och markera därefter Lagrad procedur på snabbmenyn Typ.
  4. Markera din lagrade procedur genom att utöka grenen Lagrade procedurer i rutan Databasposter, markera den lagrade proceduren i listan och sedan klicka på Procedur.
  5. Ange eventuella parametrar i tabellen Variabler.

    Du behöver inte ange några parametrar för eventuella RETURN_VALUE-variabler.

  6. Klicka på OK.

    När du har stängt dialogrutan infogas ASP-koden på sidan. När koden körs på servern skapar koden ett kommandoobjekt som kör en lagrad procedur i databasen. Den lagrade proceduren utför i sin tur en databasåtgärd, till exempel att infoga en post.

    Koden ställer in värdet true för egenskapen Förberedd hos objektet Kommando, vilket innebär att programservern återanvänder samma kompilerade version av objektet varje gång den lagrade proceduren körs. Om du vet att kommandot kommer att utföras mer än ett fåtal gånger, kan du effektivisera databasåtgärderna genom att använda en enda kompilerad version av objektet. Om kommandot bara kommer att köras en eller två gånger kan återanvändning tvärtom betyda att webbprogrammet blir långsammare, eftersom systemet måste göra ett avbrott för att kompilera kommandot. Om du vill ändra inställningen växlar du till kodvyn och ändrar egenskapen Prepared till false.

    Obs!

    Alla databas-providers har inte stöd för förberedda kommandon. Om din databas hör till dem, kan ett felmeddelande visas när du kör sidan. Växla till kodvyn och ändra egenskapen Förberedd till false.

    Tar den lagrade proceduren parametrar, kan du skapa en sida som samlar parametervärdena och skickar dem till sidan med den lagrade proceduren. Du kan till exempel skapa en sida som samlar parametervärden från användarna med hjälp av URL-parametrar eller ett HTML-formulär.

Få hjälp snabbare och enklare

Ny användare?