Page inserting blank

Hi All,

i am trying to insert some records through ASP. In order to insert new
record, i have a link "Add New". Problem is when i click on link "Add
New" and go back to the view page, without saving any data, my page
still inserts blank data into the database. i am using the below code:

<%
' *** Begin DB Setup ***
Dim strConnString
Dim RSConn
Dim DBConn
' Sample access OLEDB CONN String.
'strConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
' Server.MapPath("acsdata.mdb") & ";"
Dim strDBPath
strDBPath=Server.MapPath("acsdata.mdb")

Set DBConn = Server.CreateObject("ADODB.Connection")
DBConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
strDBPath & ";"
Set RSConn=Server.CreateObject("ADODB.Recordset")

Dim strSQL ' String in which to build our SQL command

Dim weekTitle ' Title
Dim weekPath ' Path
Dim weekName ' Week
Dim Validate_Form
Dim msg_Disp

'If Request.Form("action") <> "Save Form Data" Then
' Response.Redirect("hps_supp_add.html")
' Show the form

weekTitle = Trim(Request.Form("mtitle"))
weekPath = Trim(Request.Form("mpath"))
weekname = Trim(Request.Form("mWeek"))

Validate_Form=true

If weekTitle = "" or weekPath = "" Then
msg_disp="AAA"
end if

IF NOT Validate_Form THEN

%>
<HTML>
<BODY>
<!-- Error. Click back in your browser, and fill it out properly!-->
<% Response.Write(msg_Disp)
%>

</HTML>
</BODY>
<%


Else

strSQL = ""
strSQL = strSQL & "INSERT INTO metricsLink "
strSQL = strSQL & "(metricsTitle, metricsPath, metricsWeek) " &
vbCrLf
strSQL = strSQL & "VALUES ("
strSQL = strSQL & "'" & weekTitle & "'"
strSQL = strSQL & ", "
strSQL = strSQL & "'" & weekPath & "\'"
strSQL = strSQL & ", "
strSQL = strSQL & "'Metrics Wk " & weekname & "'"
strSQL = strSQL & ");"

RSConn.CursorType=2
RSConn.LockType=3
RSConn.Open strSQL,DBConn

DBConn.Close
Set DBConn = Nothing

' Display a verification message and we're done!

End IF

%>

<form action="AddMetrics.asp" method="post">
<input type="hidden" name="action" value="Save Form Data" />
<table border="0" id="table1" align=center>
<tr>
<td align="right" colspan="2">
<table border="0" width="100%" id="table2">
<tr>
<td>
<p align="center"><u><b>Upload Metrics</b></u></td>
<td width="87">Back To List</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="right"><strong>Metrics Title:</strong></td>
<td align="left"><input type="text" name="mtitle" maxlength="50" /></
td>
</tr>
<tr>
<td align="right"><strong>Metrics Path:</strong></td>
<td align="left"><input type="text" name="mpath" maxlenght="50" /></
td>
</tr>
<tr>
<td align="right"><strong>Metrics Week:</strong></td>
<td align="left"><select size="1" name="mweek">
<%
Dim weekNanme
for weekName = 1 to 52 %>

<option> <%= weekName %> </option>
<% Next %>
</select></td>
</tr>
<tr>
<td> </td>
<td>
   
</td>
</tr>
<tr>
<td colspan="2" align="center">    
<input type="submit" value="Save" style="font-weight: 700" />
<input type="reset" value="Clear" style="font-weight: 700" /></td>
</tr>
</table>

</form>


</div>

</body>

</html>

Please help.

thanks,
navin
navin [ Sa, 13 Oktober 2007 15:57 ] [ ID #1844097 ]

Re: Page inserting blank

validate your sql statement with a Response.Write to verify you have it correct before the sql is executed.
Jon Paal [ Sa, 13 Oktober 2007 17:45 ] [ ID #1844098 ]

Re: Page inserting blank

navin wrote on Sat, 13 Oct 2007 06:57:28 -0700:

> Hi All,

> i am trying to insert some records through ASP. In order to insert new
> record, i have a link "Add New". Problem is when i click on link "Add
> New" and go back to the view page, without saving any data, my page
> still inserts blank data into the database. i am using the below code:

Are you sure you're using that code? It's missing some <% and %> tags so
won't compile, let alone run. More comments inline, including the reason why
it inserts blank rows.

> weekTitle = Trim(Request.Form("mtitle"))
> weekPath = Trim(Request.Form("mpath"))
> weekname = Trim(Request.Form("mWeek"))

> Validate_Form=true

> If weekTitle = "" or weekPath = "" Then
> msg_disp="AAA"
> end if

> IF NOT Validate_Form THEN

This part of the logic never gets run, because you set it to True earlier
and didn't set Validate_Form to False in your little validation check above.
So the next bit always runs, even if weekTitle or weekPath are blank ...

> Else

> strSQL = ""
> strSQL = strSQL & "INSERT INTO metricsLink "
> strSQL = strSQL & "(metricsTitle, metricsPath, metricsWeek) " &
> vbCrLf
> strSQL = strSQL & "VALUES ("
> strSQL = strSQL & "'" & weekTitle & "'"
> strSQL = strSQL & ", "
> strSQL = strSQL & "'" & weekPath & "\'"
> strSQL = strSQL & ", "
> strSQL = strSQL & "'Metrics Wk " & weekname & "'"
> strSQL = strSQL & ");"

> RSConn.CursorType=2
> RSConn.LockType=3
> RSConn.Open strSQL,DBConn

> DBConn.Close
> Set DBConn = Nothing

When you request the page, the weekTitle and weekPath values are blank
(because you don't have those form variables filled in), and there's no
validation (you just force the validation variable value to True and never
change it), so voila! you get a blank row inserted.

--
Dan
Daniel Crichton [ Mo, 15 Oktober 2007 12:31 ] [ ID #1845401 ]
Webserver » microsoft.public.inetserver.asp.db » Page inserting blank

Vorheriges Thema: Drop down list
Nächstes Thema: (0x80004005) Data source name not found