Skip to main content
Participant
September 4, 2013
Question

Invaild CFML construct

This code excutes on Coldfusion 10... However, Why does it not excute on Coldfusion 8.

The line in red is where it fails.

<cfscript>

if (IsDefined("FORM.fName") AND IsDefined("FORM.lName") AND IsDefined("FORM.email") AND IsDefined("FORM.lms") AND IsDefined("FORM.updated_lms")) {

if (FORM.fName NEQ "" AND FORM.lName NEQ "" AND FORM.email NEQ "" AND FORM.lms NEQ "" AND FORM.updated_lms NEQ "") {

if (IsNumeric(FORM.lms) AND IsNumeric(FORM.updated_lms)) {

  //If LMS Numbers are EQUAL THEN UPDATE OTHERWISE check to see if new LMS Number exists IF NOT THEN UPDATE

  if (FORM.lms EQ FORM.updated_lms) {

          try {

            runquery = updateTraineeUser();

          } catch(any excpt) {

            WriteOutput("<p class=""error"">The application was unable to perform a required operation. If this problem persists, contact Avant Vernon or Ward Scott and include the following information: #excpt.Message#</p>");

          }

  } else {

                      //Check for Existing LMS IDs

                    //query object

                    q_String0 = new Query(datasource=Application.dsn,name="q_ExistingTraineeInfo");

                    //query string

                    q_String0.setSQL("SELECT trainee_lmsID FROM dct_Trainees WHERE trainee_lmsID = :updated_lms UNION

                                                              SELECT employeeNumber FROM dct_Users  WHERE employeeNumber = :updated_lms");

                    //query parameters

                    q_String0.addParam(name="updated_lms",value=FORM.updated_lms,cfsqltype="cf_sql_int");

                    //query execution

                    q_Result0 = q_String0.execute();

                    foundLMS = q_Result0.getResult().recordcount;

                    if (foundLMS GT 0)

                  WriteOutput("<span class=""error"">LMS Number already exists!</span>");

                    else

                              runquery = updateTraineeUser();           

  }

} else {

          WriteOutput("<span class=""error"">LMS Number must be numeric!</span>");

}

} else {

          WriteOutput("<span class=""error"">Required Fields are empty!</span>");

}

} else {

          WriteOutput("<span class=""error"">Required Fields are undefined!</span>");

}

//Function to update tables

public void function updateTraineeUser() {

          //Update Trainee Table

            //query object

            q_String1 = new Query(datasource=Application.dsn,name="q_UpdateTraineeInfo1");

            //query string

            q_String1.setSQL("UPDATE dct_Trainees SET

                                                              trainee_lmsID = :updated_lms, fName = :fName, lName = :lName, email = :email

                                                            WHERE trainee_lmsID = :trainee_lmsID");

            //query parameters

            q_String1.addParam(name="fName",value=FORM.fName,cfsqltype="cf_sql_varchar");

            q_String1.addParam(name="lName",value=FORM.lName,cfsqltype="cf_sql_varchar");

            q_String1.addParam(name="email",value=FORM.email,cfsqltype="cf_sql_varchar");

            q_String1.addParam(name="trainee_lmsID",value=FORM.lms,cfsqltype="cf_sql_int");

            q_String1.addParam(name="updated_lms",value=FORM.updated_lms,cfsqltype="cf_sql_int");

            //query execution

            q_Result1 = q_String1.execute();

            //Update Users Table

            //query object

            q_String2 = new Query(datasource=Application.dsn,name="q_UpdateTraineeInfo2");

            //query string

            q_String2.setSQL("UPDATE dct_Users SET

                                                              employeeNumber = :updated_lms ,fName = :fName, lName = :lName, email = :email

                                                            WHERE employeeNumber = :trainee_lmsID");

            //query parameters

            q_String2.addParam(name="fName",value=FORM.fName,cfsqltype="cf_sql_varchar");

            q_String2.addParam(name="lName",value=FORM.lName,cfsqltype="cf_sql_varchar");

            q_String2.addParam(name="email",value=FORM.email,cfsqltype="cf_sql_varchar");

            q_String2.addParam(name="trainee_lmsID",value=FORM.lms,cfsqltype="cf_sql_int");

            q_String2.addParam(name="updated_lms",value=FORM.updated_lms,cfsqltype="cf_sql_int");

            //query execution

            q_Result2 = q_String2.execute();

            WriteOutput("<span class=""success"">" & FORM.fName &" "& FORM.lName & " record updated successfully!</span>");

}

</cfscript>

This topic is closed to new replies. Start a new post to keep the conversation going.

1 reply

Carl Von Stetten
Legend
September 9, 2013

Probably because the "new" keyword and script-based queries weren't introduced until ColdFusion 9, so they would be unavailable in ColdFusion 8.

-Carl V.

Translate