ModelValueByClass.asp

Use the following sample ASP to test retrieving data for the Class Allocation view.

<%@ EnableSessionState=False Language=VBScript %>

<% option explicit %>

<%

Dim Conn

Dim SQL

Dim R

Dim F

Dim RecsAffected

Dim aConnectionString


aConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _

  & "Data Source=C:\Inetpub\ibd\mdb.mdb"


Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Mode = 3

Conn.ConnectionString = aConnectionString

Conn.CursorLocation = 3

Conn.Open

SQL="SELECT * from ModelValueByClass"

Set R=Server.CreateObject("ADODB.Recordset")



dim v

dim fs

dim ts

dim sReq

Dim aPath 

Dim aLogFile

dim item



aPath = Request.ServerVariables("PATH_TRANSLATED") 

'Response.Write aPath



' strip the file name from the path 

aPath = Left(aPath, instrRev(aPath, "\")) 

' add the log file name

aLogFile = aPath & "\log\ModelValueByClass.txt"



set fs = Server.CreateObject("Scripting.FileSystemObject")

set ts = fs.OpenTextFile(aLogFile, 8, True, 0)

for each item in Request.ServerVariables

  ts.write item

  ts.write Request.ServerVariables(item)

next



dim domDoc

dim aFilename

set domDoc = Server.CreateObject("MSXML.DOMDocument")

domDoc.async = false

'domDoc.setProperty("ServerHTTPRequest")=true

domDoc.load(Request)



dim node

dim nodes

dim mainNode

dim mainNodes

dim matchNode

dim matchNodes

dim attribs

dim attrib

dim SQLwhere

Dim root

dim SQLinsert

dim SQLfields

dim SQLvalues

dim sWhere

dim x

dim y

dim sFields

dim sValues

set root = domDoc.documentElement



dim nName

dim inputText

dim data



'inputText = Request.Form("textInput")

nName = root.nodeName

ts.write nName

ts.close



Select Case nName



Case "siebel-xmlext-fields-req"

R.Open SQL, Conn, 3, 1, &H0001

domDoc.save (server.MapPath("init1.xml"))

Response.Write "<?xml version= ""1.0"" encoding=""UTF-8""?>"

Response.Write "<siebel-xmlext-fields-ret>"

For Each F in R.Fields

  Response.Write "<support field='"& F.Name &"'/>"

Next

Response.Write "</siebel-xmlext-fields-ret>"

R.Close



Case "siebel-xmlext-query-req"


'This section of SelectCase is for the Query Request

dim attVal1(25)

dim attName1(25)

'set mainNodes = root.childNodes

set matchNodes = domDoc.SelectNodes("siebel-xmlext-query-req/match")

For each matchNode in matchNodes

  attVal1(x) = matchNode.text

  set attribs = matchNode.attributes

  set attrib = attribs(0)

  attName1(x) = attrib.nodeValue

x = x +1

next

x = x - 1

for y=0 to x

  if not ((x-y)>0) then

     sWhere = sWhere & attName1(y) & " = " & """" & attVal1(y) & """"

  else

     sWhere = sWhere & attName1(y) & " = " & """" & attVal1(y) & """ AND"

  end if

next



'setting the WHERE clause in order to query the correct recordset


if  sWhere="" then

SQLwhere = SQL

else

SQLwhere = " WHERE " & sWhere

SQLwhere = SQL + SQLwhere

end if

'Response.Write SQLwhere

R.Open SQLwhere, Conn, 3, 1, &H0001


'for debugging

domDoc.save (server.MapPath("init2.xml"))


'build response stream by iterating through the recordset

Response.Write "<?xml version= ""1.0"" encoding=""UTF-8""?>"

Response.Write "<siebel-xmlext-query-ret>"

'ts.write "<?xml version="1.0" encoding="UTF-8"?>"

'ts.write "<siebel-xmlext-query-ret>"



While Not R.EOF

  Response.Write "<row>"

  'ts.write "<row>"

For Each F in R.Fields

  Response.Write "<value field="""& F.Name &""">"& F.Value &"</value>"

  'ts.write "<value field="""& F.Name &""">"& F.Value &"</value>"

Next

Response.Write "</row>"

'ts.write "</row>"

R.MoveNext

Wend

Response.Write "</siebel-xmlext-query-ret>"

'ts.write "</siebel-xmlext-query-ret>"

R.Close



Case "siebel-xmlext-preinsert-req"

'Section for PreInsert



Response.Write "<siebel-xmlext-preinsert-ret>"

Response.Write "<row></row>"

Response.Write "</siebel-xmlext-preinsert-ret>"

Case "siebel-xmlext-insert-req"



'Section for Insert



R.Open SQL, Conn, 3, 3, &H0001

dim attVal(25)

dim attName(25)

set mainNodes = root.childNodes

set matchNodes = domDoc.SelectNodes("siebel-xmlext-insert-req/row/value")

For each matchNode in matchNodes

attVal(x) = matchNode.text



set attribs = matchNode.attributes

set attrib = attribs(0)

attName(x) = attrib.nodeValue



x = x +1

next



x = x - 1

for y=0 to x

if not ((x-y)>0) then

sFields = sFields & """" & attName(y) & """"

sValues = sValues & """" & attVal(y) & """"

else

sFields = sFields & """" & attName(y) & """, "

sValues = sValues & """" & attVal(y) & """, "

end if

next

'ts.write sFields

'ts.write sValues

if (R.Supports(&H01000400)) then

R.AddNew Array(sFields), Array(sValues)

end if



R.Update

R.Close



Case "siebel-xmlext-delete-req"

'Section for Delete



End Select



'cleaning up the objects in memory

'ts.close

set root = Nothing

set domDoc = Nothing

set ts = Nothing

set fs = Nothing

Set R = Nothing

Conn.Close

Set Conn = Nothing

%>