Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

problem updating SQL bit field? No error, but isn't updating?

LEGEND ,
Sep 23, 2006 Sep 23, 2006
Hi,

I used the DW Update wizard to create an Update form which updates one
field, a bit field in an SQL database table.
Problem is, it isn't changing the field value! The bit field is initially
"True" and I want to update it to be "False".

Here's the code:

<%
Dim MM_editAction
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" &
Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
' IIf implementation
Function MM_IIf(condition, ifTrue, ifFalse)
If condition = "" Then
MM_IIf = ifFalse
Else
MM_IIf = ifTrue
End If
End Function
%>
<%
If (CStr(Request("MM_update")) = "form1") Then
If (Not MM_abortEdit) Then
' execute the update
Dim MM_editCmd

Set MM_editCmd = Server.CreateObject ("ADODB.Command")
MM_editCmd.ActiveConnection = MM_connNAME_STRING
MM_editCmd.CommandText = "UPDATE dbo.tblOrders SET liveorder = ? WHERE
orderID = ?"
MM_editCmd.Prepared = true
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 5,
1, -1, MM_IIF(Request.Form("liveorder"), -1, 0)) ' adDouble
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 5,
1, -1, MM_IIF(Request.Form("MM_recordId"), Request.Form("MM_recordId"),
null)) ' adDouble
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

' append the query string to the redirect URL
Dim MM_editRedirectUrl
MM_editRedirectUrl = "confirmdelete.asp"
If (Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
Response.Redirect(MM_editRedirectUrl)
End If
End If
%>

And this is the form that I'm using:

<form method="POST" action="<%=MM_editAction%>" name="form1">
<input type="hidden" name="liveorder" value=0 />
<input type="submit" value="Update record" />
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="MM_recordId" value="<%=
rsOrders.Fields.Item("orderID").Value %>">
</form>

The only thing I've changed is to make the "liveorder" form field hidden.
But even if I don't do that, it still doesn't work.
Hope someone can spot something I've obviously missed.

Regards
Nath.


TOPICS
Server side applications
415
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Sep 23, 2006 Sep 23, 2006
LATEST
It appears that you can't use this:

MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 5, 1, -1,
MM_IIF(Request.Form("liveorder"), -1, 0)) ' adDouble

...with an SQL bit field. It has to be numeric, like this:

MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 5, 1, -1,
MM_IIF(Request.Form("liveorder"), Request.Form("liveorder"), null)) '
adDouble

..and it works! Weird!

Nath.

"tradmusic.com" <sales@NOSHPAMtradmusic.com> wrote in message
news:ef3bpq$kof$1@forums.macromedia.com...
> Hi,
>
> I used the DW Update wizard to create an Update form which updates one
> field, a bit field in an SQL database table.
> Problem is, it isn't changing the field value! The bit field is
> initially "True" and I want to update it to be "False".
>
> Here's the code:
>
> <%
> Dim MM_editAction
> MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
> If (Request.QueryString <> "") Then
> MM_editAction = MM_editAction & "?" &
> Server.HTMLEncode(Request.QueryString)
> End If
>
> ' boolean to abort record edit
> Dim MM_abortEdit
> MM_abortEdit = false
> %>
> <%
> ' IIf implementation
> Function MM_IIf(condition, ifTrue, ifFalse)
> If condition = "" Then
> MM_IIf = ifFalse
> Else
> MM_IIf = ifTrue
> End If
> End Function
> %>
> <%
> If (CStr(Request("MM_update")) = "form1") Then
> If (Not MM_abortEdit) Then
> ' execute the update
> Dim MM_editCmd
>
> Set MM_editCmd = Server.CreateObject ("ADODB.Command")
> MM_editCmd.ActiveConnection = MM_connNAME_STRING
> MM_editCmd.CommandText = "UPDATE dbo.tblOrders SET liveorder = ? WHERE
> orderID = ?"
> MM_editCmd.Prepared = true
> MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 5,
> 1, -1, MM_IIF(Request.Form("liveorder"), -1, 0)) ' adDouble
> MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 5,
> 1, -1, MM_IIF(Request.Form("MM_recordId"), Request.Form("MM_recordId"),
> null)) ' adDouble
> MM_editCmd.Execute
> MM_editCmd.ActiveConnection.Close
>
> ' append the query string to the redirect URL
> Dim MM_editRedirectUrl
> MM_editRedirectUrl = "confirmdelete.asp"
> If (Request.QueryString <> "") Then
> If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
> MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
> Else
> MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
> End If
> End If
> Response.Redirect(MM_editRedirectUrl)
> End If
> End If
> %>
>
> And this is the form that I'm using:
>
> <form method="POST" action="<%=MM_editAction%>" name="form1">
> <input type="hidden" name="liveorder" value=0 />
> <input type="submit" value="Update record" />
> <input type="hidden" name="MM_update" value="form1">
> <input type="hidden" name="MM_recordId" value="<%=
> rsOrders.Fields.Item("orderID").Value %>">
> </form>
>
> The only thing I've changed is to make the "liveorder" form field hidden.
> But even if I don't do that, it still doesn't work.
> Hope someone can spot something I've obviously missed.
>
> Regards
> Nath.
>


Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines