/ Forside/ Teknologi / Udvikling / ASP / Tip
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Insert/Update Statements
Thrakath har modtaget 25 point for dette tip
Fra : Thrakath
Vist : 1062 gange

Dato : 26-01-01 12:41

Her er to SQL statements til henholdsvis Update og Insert. De to scripts fungerer således at hver gang en bruger skal sende en form der skal lægges ind, eller opdateres, i en tabel så henvises der fra formen til et script. Således kan du have flere forskellige formularer på dit site, der henviser til et script.

Bemærk at de to scriptets kun kan indsætte data i en tabel.
Koden er kommenteret.

GLOBAL
'Database Connect
sub openDatabaseConnection()
      set Connection=server.createobject("adodb.connection")
   path="DBQ=" & server.mappath("database/database.mdb")
   Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & path, 1, 3
   end sub

   'Database Close
   sub closeDatabaseConnection()
       Connection.close
       Set Connection = Nothing
   end sub



Insert Statement -------------------------------------------------------

HTML Form:
   <table>
   <form action="_include_insert.asp" method="post">
   <!--Denne Hidden skal altid indsættes med name="tableName"
    Værdien angiver den tabel hvor formdataene skal indsættes-->
   <input type="hidden" name="tableName" value="Tabel2">
      <tr>
         <td>Feltnavn1:</td>
         <td><input type="text" name="feltnavn1"></td>
      </tr>
      <tr>
         <td>Feltnavn2:</td>
         <td><input type="text" name="feltnavn2"></td>
      </tr>
      <tr>
         <td>Feltnavn3:</td>
         <td><input type="text" name="feltnavn3"></td>
      </tr>
      <tr>
         <td>Feltnavn4:</td>
         <td><input type="text" name="feltnavn4"></td>
      </tr>
      <tr>
         <td></td>
         <td><input type="submit" value="Send"></td>
      </tr>
   </form>
   </table

ASP Script:
<%
   'Insert Method Version 1.0
   'Insætter alle formfelter i en tabel, der har det tilsvarende antal kolonner
   'Bemærk at tabellen skal indeholde et unikt ID og denne skal være den første kolonne
   
   if Request.ServerVariables("REQUEST_METHOD") = "POST" then
      Call openDatabaseConnection
         SqlQ = "Select * From " & request("tableName")
         Set retur_SqlQ = Connection.execute(SqlQ)
         Set addRec = Server.CreateObject("ADODB.Recordset")
         addRec.CursorLocation = 3
         addRec.Open "" & request("tableName") & "", Connection, 1, 3
         addRec.AddNew
         'Tæller hvor mange kolonner der er i tabellen
         for each x in retur_SqlQ.fields
            count_x = count_x+1
         next
         'Tæller antal requests
         for each i in Request.Form
            count_i = count_i+1
            if count_i = 1 then
               seperation = ""
            else
               seperation = "~"
            end if
            if Request.Form(i) = "" then
               value_i = " "
            else
               value_i = Request.Form(i)
            end if
            formField = formField & replace(value_i, "" & request("tableName") & "", "") & seperation
         Next
         'Verificer at count_x og count_i er lig med hinanden.
         if count_x-1 = count_i-1 then
            'Indlæser lortet ind i tabellen
            for each z in retur_SqlQ.fields
               count_z = count_z+1
               if count_z <> 1 then
                  if temp_formField <> "" then
                     if Len(temp_formField) = 2 then
                        formField = right(formField, len(formField)-2)
                     else
                        formField = replace(formField, "" & temp_formField & "", "")
                     end if
                  end if
                  n = 0
                  n = n + 1
               varlength = InStr(n, formField, "~", 0)
                  tempvarlengt = varlength
                found = True
                     temp_formField = left(formField, tempvarlengt)                     
                     addRec(z.name) = replace(temp_formField, "~", "")
               end if
            next
         end if
         addRec.Update
         addRec.Close
         Set addRec = Nothing
      Call closeDatabaseConnection
   end if
%>


UPDATE Statement -------------------------------------------------------

HTML Form:
<%
   Call openDatabaseConnection
      SqlQ = "Select * From Tabel1"
      Set retur_SqlQ = Connection.execute(SqlQ)
         ID        = retur_SqlQ("ID")
         feltNavn1 = retur_SqlQ("feltNavn1")
         feltNavn2 = retur_SqlQ("feltNavn2")
         feltNavn3 = retur_SqlQ("feltNavn3")
         feltNavn4 = retur_SqlQ("feltNavn4")
   Call closeDatabaseConnection
%>
   <table>
   <form action="_include_update.asp" method="post">
   <!--Denne Hidden skal altid indsættes med name="tableName"
    Værdien angiver den tabel hvor formdataene skal indsættes-->
   <input type="hidden" name="tableName" value="Tabel1">
   <!--Denne Hidden skal altid indsættes med name="ID"
    Værdien angiver udtrækkets ID som anvendes ved opdatering-->
   <input type="hidden" name="ID" value="<%= ID %>">
      <tr>
         <td>Feltnavn1:</td>
         <td><input type="text" name="feltnavn1" value="<%= feltNavn1 %>"></td>
      </tr>
      <tr>
         <td>Feltnavn2:</td>
         <td><input type="text" name="feltnavn2" value="<%= feltNavn2 %>"></td>
      </tr>
      <tr>
         <td>Feltnavn3:</td>
         <td><input type="text" name="feltnavn3" value="<%= feltNavn3 %>"></td>
      </tr>
      <tr>
         <td>Feltnavn4:</td>
         <td><input type="text" name="feltnavn4" value="<%= feltNavn4 %>"></td>
      </tr>
      <tr>
         <td></td>
         <td><input type="submit" value="Send"></td>
      </tr>
   </form>
   </table>

ASP Script:

<%
   'Update Method Version 1.0
   'Erstatter alle formfelter i en tabel, der har det tilsvarende antal kolonner
   'Bemærk at tabellen skal indeholde et unikt ID og denne skal være den første kolonne
   
   if Request.ServerVariables("REQUEST_METHOD") = "POST" then
      Call openDatabaseConnection
         SqlQ = "Select * From " & request("tableName")
         Set retur_SqlQ = Connection.execute(SqlQ)
         'Tæller hvor mange kolonner der er i tabellen og læser ID feltet
         for each x in retur_SqlQ.fields
            count_x = count_x+1
            if count_x = 1 then
               fieldID = (x.name)
            end if
         next
         Set updateRec = Server.CreateObject("ADODB.Recordset")
         updateRec.CursorLocation = 3
         updateRec.Filter = "" & fieldID & " = " & request("ID") & ""
         updateRec.Open "" & request("tableName") & "", Connection, 1, 3
         updateRec.Update
         'Tæller antal requests
         for each i in Request.Form
            count_i = count_i+1
            if count_i = 1 then
               seperation = ""
            else
               seperation = "~"
            end if
            if Request.Form(i) = "" then
               value_i = " "
            else
               value_i = Request.Form(i)
            end if
            formField = formField & replace(value_i, "" & request("tableName") & "", "") & seperation
            'response.write formField & "<br><br>"
         Next
         'Her fjerner vi ID'et - det er lidt tricky he he
         n = 0
         n = n + 1
      varIDLenght = InStr(n, formField, "~", 0)
            tempVarIDLenght = varIDLenght
         found = True
            formFieldID = left(formField, tempVarIDLenght)
            formField = mid(formField, len(formFieldID)+1, len(formField)-len(formFieldID))
         'Verificer at count_x og count_i er lig med hinanden.
         if count_x-1 = count_i-2 then
            'Indlæser lortet ind i tabellen
            for each z in retur_SqlQ.fields
               count_z = count_z+1
               if count_z <> 1 then
                  if temp_formField <> "" then
                     if Len(temp_formField) = 2 then
                        formField = right(formField, len(formField)-2)
                     else
                        formField = replace(formField, "" & temp_formField & "", "")
                     end if
                  end if
                  n = 0
                  n = n + 1
               varlength = InStr(n, formField, "~", 0)
                   tempvarlengt = varlength
                found = True
                     temp_formField = left(formField, tempvarlengt)
                     updateRec(z.name) = replace(temp_formField, "~", "")
               end if
            next
         end if
         updateRec.Update
         updateRec.Close
         Set updateRec = Nothing
      Call closeDatabaseConnection
   end if
%>



 
 
Bedømmelse

Fra : gandalf


Dato : 26-01-01 15:35



Bedømmelse

Fra : gandalf


Dato : 26-01-01 15:35



Bedømmelse

Fra : gandalf


Dato : 26-01-01 15:36



Bedømmelse

Fra : gandalf


Dato : 26-01-01 14:09



Bedømmelse

Fra : gandalf


Dato : 26-01-01 14:09



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke lave en bedømmelse til dette tip.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste