Abort an operation

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mangler

    Abort an operation

    Does anyone have some good advice for the following situation?

    If a condition is true, an insert is restricted ( aborted ) otherwise
    the insert is allowed. I have been killing myself on this for a week
    with no success. I just need some advise at this point. Currently I
    am running a stored proc that returns yes or no based on the variables
    that a user is inputting. If the sp result is yes ( a record already
    exists ) the insert isnt allowed and the user is forced to update the
    existing record.

    I am not much of a coder yet ( still learning ) and dreamweaver code is
    confusing me!!!!

  • Dave Anderson

    #2
    Re: Abort an operation

    Mangler wrote:
    If a condition is true, an insert is restricted ( aborted ) otherwise
    the insert is allowed. I have been killing myself on this for a week
    with no success. I just need some advise at this point. Currently I
    am running a stored proc that returns yes or no based on the variables
    that a user is inputting. If the sp result is yes ( a record already
    exists ) the insert isnt allowed and the user is forced to update the
    existing record.
    I often use Add/Update procedures for this type of thing -- that is, one
    procedure that can do either. You can structure them in several ways. Here
    is the simplest form:

    IF EXISTS (SELECT * FROM myTable WHERE ...) BEGIN
    UPDATE ...
    END
    ELSE BEGIN
    INSERT ...
    END

    Depending on your DB constraints, you can do it this way, too:

    IF NOT EXISTS (SELECT ...) BEGIN
    INSERT ... -- new record, empty except for key
    END

    UPDATE ... -- unconditionally



    --
    Dave Anderson

    Unsolicited commercial email will be read at a cost of $500 per message. Use
    of this email address implies consent to these terms.


    Comment

    • Mangler

      #3
      Re: Abort an operation


      Dave Anderson wrote:
      I often use Add/Update procedures for this type of thing -- that is, one
      procedure that can do either. You can structure them in several ways. Here
      is the simplest form:
      >
      IF EXISTS (SELECT * FROM myTable WHERE ...) BEGIN
      UPDATE ...
      END
      ELSE BEGIN
      INSERT ...
      END
      >
      Depending on your DB constraints, you can do it this way, too:
      >
      IF NOT EXISTS (SELECT ...) BEGIN
      INSERT ... -- new record, empty except for key
      END
      >
      UPDATE ... -- unconditionally
      >
      >
      >
      --
      Dave Anderson
      >
      Unsolicited commercial email will be read at a cost of $500 per message. Use
      of this email address implies consent to these terms.

      I can see where that goes....I just have to figure out all of the
      syntax and what not but thanks for the idea.

      Quick question if you dont mind. In my existing page, I have
      everything working except the abort edit script. I was told that it
      doesnt matter where in the code you put that script. I find that hard
      to believe because when I place it anywhere other that where it is now,
      everything doesnt work, including the SP. But when I put it in the
      place its at now, all inserts are aborted. This has me confued, do you
      have any insight on why this is happening?

      Comment

      • Dave Anderson

        #4
        Re: Abort an operation

        Mangler wrote:
        In my existing page, I have everything working except the
        abort edit script. I was told that it doesnt matter where
        in the code you put that script. I find that hard to believe
        because when I place it anywhere other that where it is now,
        everything doesnt work, including the SP. But when I put it
        in the place its at now, all inserts are aborted. This has
        me confued, do you have any insight on why this is happening?
        Without seeing what you are doing, there is no way to guess. Can you provide
        a little bit of code to highlight the issue?




        --
        Dave Anderson

        Unsolicited commercial email will be read at a cost of $500 per message. Use
        of this email address implies consent to these terms.


        Comment

        • Mangler

          #5
          Re: Abort an operation


          Dave Anderson wrote:
          >
          Without seeing what you are doing, there is no way to guess. Can you provide
          a little bit of code to highlight the issue?
          >
          --
          Dave Anderson
          Again, sorry about the dreamweaver code......

          <CODE>

          If (MM_i <LBound(MM_fiel ds)) Then
          MM_tableValues = MM_tableValues & ","
          MM_dbValues = MM_dbValues & ","
          End If
          MM_tableValues = MM_tableValues & MM_columns(MM_i )
          MM_dbValues = MM_dbValues & MM_formVal
          Next
          MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues
          & ") values (" & MM_dbValues & ")"
          If spDupresult = "YES" Then '************** ******Problem Area
          MM_abortEdit = true '************** ******If I put this
          here, all inserts are aborted but everything else
          '************** ******works
          fine, if I move it; everything goes nuts
          If (Not MM_abortEdit) Then
          ' execute the insert
          Set MM_editCmd = Server.CreateOb ject("ADODB.Com mand")
          MM_editCmd.Acti veConnection = MM_editConnecti on
          MM_editCmd.Comm andText = MM_editQuery
          MM_editCmd.Exec ute
          MM_editCmd.Acti veConnection.Cl ose

          If (MM_editRedirec tUrl <"") Then
          Response.Redire ct(MM_editRedir ectUrl)
          End If
          End If
          End If
          End If

          </CODE>

          Comment

          • Mike Brind

            #6
            Re: Abort an operation


            "Mangler" <dwaldman@direc twireless.comwr ote in message
            news:1168894778 .288517.248720@ m58g2000cwm.goo glegroups.com.. .
            >
            Dave Anderson wrote:
            >>
            >Without seeing what you are doing, there is no way to guess. Can you
            >provide
            >a little bit of code to highlight the issue?
            >>
            >--
            >Dave Anderson
            >
            Again, sorry about the dreamweaver code......
            >
            <CODE>
            >
            If (MM_i <LBound(MM_fiel ds)) Then
            MM_tableValues = MM_tableValues & ","
            MM_dbValues = MM_dbValues & ","
            End If
            MM_tableValues = MM_tableValues & MM_columns(MM_i )
            MM_dbValues = MM_dbValues & MM_formVal
            Next
            MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues
            & ") values (" & MM_dbValues & ")"
            If spDupresult = "YES" Then '************** ******Problem Area
            MM_abortEdit = true '************** ******If I put this
            here, all inserts are aborted but everything else
            '************** ******works
            fine, if I move it; everything goes nuts
            If (Not MM_abortEdit) Then
            ' execute the insert
            Set MM_editCmd = Server.CreateOb ject("ADODB.Com mand")
            MM_editCmd.Acti veConnection = MM_editConnecti on
            MM_editCmd.Comm andText = MM_editQuery
            MM_editCmd.Exec ute
            MM_editCmd.Acti veConnection.Cl ose
            >
            If (MM_editRedirec tUrl <"") Then
            Response.Redire ct(MM_editRedir ectUrl)
            End If
            End If
            End If
            End If
            >
            </CODE>
            >
            That would rather suggest that MM_abortEdit is always false. Have you done
            a Response.write MM_AbortEdit to check its value ? And/Or a Response.Write
            for spDupresult to check its value? And have you found the Find-and-Replace
            thingy in Dreamweaver that allows you to select the current folder and
            replace all the instances of MM_ with ""? :-)

            --
            Mike Brind


            Comment

            • Mangler

              #7
              Re: Abort an operation


              Mike Brind wrote:

              That would rather suggest that MM_abortEdit is always false. Have you done
              a Response.write MM_AbortEdit to check its value ? And/Or a Response.Write
              for spDupresult to check its value?
              Yes, that is how I confirmed spDupresult is working

              <% IF (spDupresult) = "YES" Then Response.Write( "The requested insert
              has been denied. A record already exsists, please scroll down and
              update the respective part.") END IF %>

              As for MM_AbortEdit- like you said, always seems to stay false.
              And have you found the Find-and-Replace
              thingy in Dreamweaver that allows you to select the current folder and
              replace all the instances of MM_ with ""? :-)
              No, looking now......

              I a lost as to how to get this last part working. Very frustrated :(

              Comment

              • Dave Anderson

                #8
                Re: Abort an operation

                Mangler wrote:
                If spDupresult = "YES" Then '************** ******Problem Area
                MM_abortEdit = true '************** ******If I put this
                here, all inserts are aborted but everything else
                '************** ******works
                fine, if I move it; everything goes nuts
                If (Not MM_abortEdit) Then
                Why are you assuming (Not MM_abortEdit) is true in the absence of assigning
                a value to MM_abortEdit? Remember, (Not Null) is (Null), and not (True):




                --
                Dave Anderson

                Unsolicited commercial email will be read at a cost of $500 per message. Use
                of this email address implies consent to these terms.


                Comment

                • Mangler

                  #9
                  Re: Abort an operation


                  Dave Anderson wrote:
                  Why are you assuming (Not MM_abortEdit) is true in the absence of assigning
                  a value to MM_abortEdit? Remember, (Not Null) is (Null), and not (True):
                  http://msdn.microsoft.com/library/en...f2675227d3.asp
                  Thats easy... inexperience! But, because of people like you ( who set
                  me straight ) I am learning. I will re-look at the code with my new
                  found knowlege and see what happens.

                  Thanks....

                  Respectfully,

                  Danny

                  Comment

                  • Mangler

                    #10
                    Re: Abort an operation


                    Hi guys,

                    Still not having luck here......


                    With the understanding that false = true and true = false I have this:

                    If spDupresult = "YES" Then
                    MM_abortEdit = false
                    Else

                    If MM_abortEdit = true Then
                    ' execute the insert


                    Got any more suggestions?

                    Respectfully,
                    Danny

                    Comment

                    • Dave Anderson

                      #11
                      Re: Abort an operation

                      Mangler wrote:
                      Still not having luck here......
                      >
                      >
                      With the understanding that false = true and true = false I have this:
                      >
                      If spDupresult = "YES" Then
                      MM_abortEdit = false
                      Else
                      >
                      If MM_abortEdit = true Then
                      ' execute the insert
                      >
                      >
                      Got any more suggestions?
                      I'm not sure you saw my point. In your example, you never show what
                      the initial value of MM_abortEdit is. If it is Null, then consider the
                      following:

                      Sub WrongWay(spDupr esult)
                      Dim MM_abortEdit
                      MM_abortEdit = Null
                      If spDupresult = "YES" Then MM_abortEdit = True
                      Response.Write( MM_abortEdit & ":" & Not MM_abortEdit)
                      If MM_abortEdit Then Response.Write( ":Yes")
                      If Not MM_abortEdit Then Response.Write( ":No")
                      Sub

                      Sub RightWay(spDupr esult)
                      Dim MM_abortEdit
                      If spDupresult = "YES" Then
                      MM_abortEdit = True
                      Else
                      MM_abortEdit = False
                      End If
                      Response.Write( MM_abortEdit & ":" & Not MM_abortEdit)
                      If MM_abortEdit Then Response.Write( ":Yes")
                      If Not MM_abortEdit Then Response.Write( ":No")
                      Sub

                      Call WrongWay("YES") ' True:False:Yes
                      Call WrongWay("NO") ' :
                      Call RightWay("YES") ' True:False:Yes
                      Call RightWay("NO") ' False:True:No

                      As you can see, your code example "fits" the WrongWay model. You assigned
                      one possible boolean value (True), but then tested for (Not False), never
                      considering that there might be a (Not Null) alternative that does nothing.

                      It is worth asking why you don't simply use the inequality operator directly
                      and skip the extra variable:

                      If spDupresult <"YES" Then
                      ' execute the insert
                      ...
                      End If



                      --
                      Dave Anderson

                      Unsolicited commercial email will be read at a cost of $500 per message. Use
                      of this email address implies consent to these terms.


                      Comment

                      • Mike Brind

                        #12
                        Re: Abort an operation


                        "Mangler" <dwaldman@aspde vil.comwrote in message
                        news:1169072191 .372106.287080@ 38g2000cwa.goog legroups.com...
                        >
                        Hi guys,
                        >
                        Still not having luck here......
                        >
                        >
                        With the understanding that false = true and true = false I have this:
                        >
                        If spDupresult = "YES" Then
                        MM_abortEdit = false
                        Else
                        >
                        If MM_abortEdit = true Then
                        ' execute the insert
                        >
                        >
                        Got any more suggestions?
                        >
                        Only the same one as before: use Response.Write to test the value of all the
                        variables as you go through the code. It is an invaluable way to catch
                        logical errors.

                        Also, as Dave pointed out, an uninitialised variable will be null or empty.
                        You should set a default value for MM_abortEdit, which in your case is true.

                        Actually, as Dave also pointed out in his latest post, If spDupresult <>
                        "YES" Then 'execute the insert will bypass the additional unnecessary
                        MM_abortEdit variable.

                        --
                        Mike Brind


                        Comment

                        • Mangler

                          #13
                          Re: Abort an operation

                          Thanks guys, its working now. Appreciate the help.

                          Comment

                          Working...