<% ' Get and validate all inputs Dim printerid, modelid, serialnumber, ipaddress, fqdn, printercsfname, printerwindowsname, machineid, maptop, mapleft printerid = Trim(Request.Querystring("printerid")) modelid = Trim(Request.Form("modelid")) serialnumber = Trim(Request.Form("serialnumber")) ipaddress = Trim(Request.Form("ipaddress")) fqdn = Trim(Request.Form("fqdn")) printercsfname = Trim(Request.Form("printercsfname")) printerwindowsname = Trim(Request.Form("printerwindowsname")) machineid = Trim(Request.Form("machineid")) maptop = Trim(Request.Form("maptop")) mapleft = Trim(Request.Form("mapleft")) ' Get form inputs for new model Dim newmodelnumber, newvendorid, newmodelnotes, newmodeldocpath newmodelnumber = Trim(Request.Form("newmodelnumber")) newvendorid = Trim(Request.Form("newvendorid")) newmodelnotes = Trim(Request.Form("newmodelnotes")) newmodeldocpath = Trim(Request.Form("newmodeldocpath")) ' Get form inputs for new vendor Dim newvendorname newvendorname = Trim(Request.Form("newvendorname")) ' Validate required fields If Not IsNumeric(printerid) Or CLng(printerid) < 1 Then Response.Write("
Error: Invalid printer ID.
") Response.Write("Go back") objConn.Close Response.End End If If modelid <> "new" And (Not IsNumeric(modelid)) Then Response.Write("
Error: Invalid model ID.
") Response.Write("Go back") objConn.Close Response.End End If If Not IsNumeric(machineid) Then Response.Write("
Error: Invalid machine ID.
") Response.Write("Go back") objConn.Close Response.End End If ' Validate field lengths If Len(serialnumber) > 100 Or Len(fqdn) > 255 Or Len(printercsfname) > 50 Or Len(printerwindowsname) > 255 Then Response.Write("
Error: Field length exceeded.
") Response.Write("Go back") objConn.Close Response.End End If ' Handle new model creation If modelid = "new" Then If Len(newmodelnumber) = 0 Then Response.Write("
New model number is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newvendorid) = 0 Then Response.Write("
Vendor is required for new model
") Response.Write("Go back") objConn.Close Response.End End If If Len(newmodelnumber) > 255 Or Len(newmodelnotes) > 255 Or Len(newmodeldocpath) > 255 Then Response.Write("
Model field length exceeded
") Response.Write("Go back") objConn.Close Response.End End If ' Handle new vendor creation (nested) If newvendorid = "new" Then If Len(newvendorname) = 0 Then Response.Write("
New vendor name is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newvendorname) > 50 Then Response.Write("
Vendor name too long
") Response.Write("Go back") objConn.Close Response.End End If ' Escape single quotes Dim escapedVendorName escapedVendorName = Replace(newvendorname, "'", "''") ' Insert new vendor (with isprinter=1) Dim sqlNewVendor sqlNewVendor = "INSERT INTO vendors (vendor, isactive, isprinter, ispc, ismachine) " & _ "VALUES ('" & escapedVendorName & "', 1, 1, 0, 0)" On Error Resume Next objConn.Execute sqlNewVendor If Err.Number <> 0 Then Response.Write("
Error creating new vendor: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created vendor ID Dim rsNewVendor Set rsNewVendor = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") newvendorid = CLng(rsNewVendor("newid")) rsNewVendor.Close Set rsNewVendor = Nothing On Error Goto 0 End If ' Escape single quotes for model Dim escapedModelNumber, escapedModelNotes, escapedModelDocPath escapedModelNumber = Replace(newmodelnumber, "'", "''") escapedModelNotes = Replace(newmodelnotes, "'", "''") escapedModelDocPath = Replace(newmodeldocpath, "'", "''") ' Insert new model Dim sqlNewModel sqlNewModel = "INSERT INTO models (modelnumber, vendorid, notes, documentationpath, isactive) " & _ "VALUES ('" & escapedModelNumber & "', " & newvendorid & ", '" & escapedModelNotes & "', '" & escapedModelDocPath & "', 1)" On Error Resume Next objConn.Execute sqlNewModel If Err.Number <> 0 Then Response.Write("
Error creating new model: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created model ID Dim rsNewModel Set rsNewModel = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") modelid = CLng(rsNewModel("newid")) rsNewModel.Close Set rsNewModel = Nothing On Error Goto 0 End If ' Escape single quotes serialnumber = Replace(serialnumber, "'", "''") ipaddress = Replace(ipaddress, "'", "''") fqdn = Replace(fqdn, "'", "''") printercsfname = Replace(printercsfname, "'", "''") printerwindowsname = Replace(printerwindowsname, "'", "''") ' Handle map coordinates - default to 50 if not provided Dim maptopSQL, mapleftSQL If maptop <> "" And IsNumeric(maptop) Then maptopSQL = maptop Else maptopSQL = "50" End If If mapleft <> "" And IsNumeric(mapleft) Then mapleftSQL = mapleft Else mapleftSQL = "50" End If ' Build UPDATE statement Dim strSQL strSQL = "UPDATE printers SET " & _ "modelid = " & modelid & ", " & _ "serialnumber = '" & serialnumber & "', " & _ "ipaddress = '" & ipaddress & "', " & _ "fqdn = '" & fqdn & "', " & _ "printercsfname = '" & printercsfname & "', " & _ "printerwindowsname = '" & printerwindowsname & "', " & _ "machineid = " & machineid & ", " & _ "maptop = " & maptopSQL & ", " & _ "mapleft = " & mapleftSQL & " " & _ "WHERE printerid = " & printerid On Error Resume Next objConn.Execute strSQL If Err.Number <> 0 Then Response.Write("
Error: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If objConn.Close %>