Hej alle.
 
 Inspireret af en del spørgsmål om SQL osv, samt den funktion som Leif Neland
 henviste i en tidligere post, har nu lavet 1. udkast til en generel
 parameterized query funktion.
 
 Den kan bruges til både select og update/insert m.m.
 
 Hvis det er en select, returneres resultsættet, og hvis det er andet
 returneres rowsaffected.
 
 End umiddelbar test med select og update ser ud til at virke fint.
 Funktionen kommer her, hvis der er nogen der har lyst til at teste:
 ...... fil: sql.inc.asp
 <%
 Function query(connection, SQL, parameters)
   Dim cmd, Counter , isSelect
   Set cmd = Server.CreateObject("ADODB.Command")
   Set cmd.ActiveConnection = connection
   cmd.CommandType = adCmdText
   cmd.CommandText = SQL
   IF lcase(left(ltrim(SQL),6)) = "select" then
      isSelect = true
   else
      isSelect = false
   end if
 
   For Counter = 0 To UBound(parameters)
     cmd(Counter).value = parameters(Counter)
   Next
   if isSelect then
      Set query = cmd.Execute
   else
      cmd.Execute , Counter
      query = Counter
   end if
 End Function
 %>
 ...... slut fil.
 
 Den benytter en anden includefil adovbs.inc, som definerer bla adCmdText.
 Ellers skal man bare bruge de numeriske værdier.
 
 Eksempel på SELECT:
 .....
    Set oRs = query(oConn,"SELECT * FROM Databases WHERE
 databasename=?",Array(Databasename))
    if (Not oRs.eof) then
 .....
 Eksempel på UPDATE (SQL er bygget med UPDATE osv):
       Response.Write "<br/>Rows affected " +
 cStr(query(oConn,SQL,Array(NotesId)))
 
 oConn er her en åben database connection.
 
 Når den er testet lidt mere finder jeg et sted at lægge den til download.
 
 Have fun.
 
 --
 Med venlig hilsen/Best regards
 Stig Johansen
 
 
 
  
            
             |