ct_send

Description

Sends a request to the server.

Syntax

CS_RETCODE ct_send (command);
CS_COMMAND     *command;

Parameters

command

(I) Handle for this client/server operation. This handle is defined in the associated ct_cmd_alloc call.

Returns

ct_send returns one of the following values:

Value

Meaning

CS_SUCCEED (-1)

The routine completed successfully.

CS_FAIL (-2)

The routine failed.

This result can indicate that SNA sessions cannot be established.

CS_CANCELLED (-202)

The routine was canceled.

NoteThis value is returned by SNA sessions only, and is never returned when sending a request to another CICS region.

Examples

Example 1

The following code fragment demonstrates the use of ct_send. It is taken from the sample program SYCTSAR6 in Appendix B, “Sample RPC Application.”

  	/*------------------------------------------------------------*/
  	/* Prepare the command (an RPC request)                       */
  	/*------------------------------------------------------------*/
         buf_len = 4;
         rc = ct_command(cmd, (long) CS_RPC_CMD, rpc_cmd,
                         buf_len, (long) CS_UNUSED);
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_COMMAND failed", msg_size);
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  /*------------------------------------------------------------*/
  /*                                                            */
  /* Setup a return parameter for NUM_OF_ROWS                   */
  /* Describe the first parameter (NUM_OF_ROWS)                 */
  /*                                                            */
  /*------------------------------------------------------------*/
         strcpy (datafmt.name, "@parm1");
         datafmt.namelen      = 6;
         datafmt.datatype     = CS_INT_TYPE;
         datafmt.format       = CS_FMT_UNUSED;
         datafmt.maxlength    = CS_UNUSED;
         datafmt.status       = CS_RETURN;
         datafmt.usertype     = CS_UNUSED;
  
         buf_len   = sizeof(param1);
         rc = ct_param (cmd, datafmt, param1, buf_len, nullind);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_PARAM CS_INT_TYPE parm1 failed",
            msg_size) ;
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  /*------------------------------------------------------------*/
  /*                                                            */
  /* Describe the second parameter (DEPTNO)                     */
  /*                                                            */
  /*------------------------------------------------------------*/
         strcpy (datafmt.name, "@parm2");
         datafmt.namelen      = 6;
         datafmt.datatype     = CS_VARCHAR_TYPE;
         datafmt.format       = CS_FMT_UNUSED;
         datafmt.maxlength    = CS_UNUSED;
         datafmt.status       = CS_INPUTVALUE;
         datafmt.usertype     = CS_UNUSED;
  
         buf_len   = sizeof(param2);
  
         rc = ct_param (cmd, datafmt, param2, buf_len, nullind);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_PARAM CS_VARCHAR_TYPE parm2 failed", 
            msg_size)
 ;
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  /*------------------------------------------------------------*/
  /* Send the command                                           */
  /*------------------------------------------------------------*/
         rc = ct_send (cmd);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_SEND failed", msg_size);
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  }   /* end send_command */

Example 2

The following code fragment demonstrates the use of ct_send. It is taken from the sample program SYCTSAA6 in Appendix A, “Sample Language Application.”

  	/*------------------------------------------------------------*/
  	/* Open connection to the server or CICS region               */
  	/*------------------------------------------------------------*/
  
         rc = ct_connect (connection, servname, server_size);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_CONNECT failed", msg_size);
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  /*------------------------------------------------------------*/
  /* Invokes SEND_COMMAND routine                               */
  /*------------------------------------------------------------*/
         if (no_errors_sw)
            send_command ();
  /*------------------------------------------------------------*/
  /* Process the results of the command                         */
  /*------------------------------------------------------------*/
         if (no_errors_sw)
         {
            while (no_more_results == FALSE)
               proces_results ();
         }
  }   /* end proces_input */
  /********************************************************************/
  /*                                                                  */
  /* Subroutine to allocate, send, and process commands               */
  /*                                                                  */
  /********************************************************************/
  void send_command ()
  
  {
   CS_INT        rc;
   CS_INT        *outlen;
   CS_INT        buf_len;
   CS_CHAR       sql_cmd[45];
  
  /*------------------------------------------------------------*/
  /* Find out what the maximum number of connections is         */
  /*------------------------------------------------------------*/
  
         rc = ct_config (context, CS_GET, CS_MAX_CONNECT,
                         &maxconnect, CS_FALSE, outlen);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_CONFIG failed", msg_size);
            strncpy (msgtext2, "Please press return to 
            continue!", text_size);
            error_out(rc);
  
            /* reset program flags to move on with the task */
            print_once = TRUE;
            diag_msgs_initialized = TRUE;
            strncpy(msgtext2, "Press Clear To Exit", text_size);
         }
  
 /*-------------------------------------------------------------*/
 /* Allocate a command handle                                   */
 /*-------------------------------------------------------------*/
         rc = ct_cmd_alloc (connection, &cmd);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_CMDALLOC failed", msg_size);
            no_errors_sw = FALSE ;
            error_out(rc);
         }
  /*------------------------------------------------------------*/
  /* Prepare the language request                               */
  /*------------------------------------------------------------*/
         strcpy(sql_cmd,
                 "SELECT FIRSTNME, EDUCLVL FROM SYBASE.SAMPLETB");
         buf_len = sizeof(sql_cmd);
         rc = ct_command(cmd, (long) CS_LANG_CMD, sql_cmd,
                         buf_len, (long) CS_UNUSED);
  
         if (rc != CS_SUCCEED)
         {
            strncpy (msgstr, "CT_COMMAND failed", msg_size);
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  /*------------------------------------------------------------*/
  /* Send the language request                                  */
  /*------------------------------------------------------------*/
         rc = ct_send (cmd);
  
         if (rc != CS_SUCCEED)
         {
            strcpy (msgstr, "CT_SEND failed", msg_size);
            no_errors_sw = FALSE ;
            error_out (rc);
         }
  }   /* end send_command */

Usage

See also

Related functions