DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) mysql-stmt-send-long-data

Info Catalog (mysql.info) mysql-stmt-row-tell (mysql.info) c-api-prepared-statement-functions (mysql.info) mysql-stmt-sqlstate
 
 22.2.7.25 `mysql_stmt_send_long_data()'
 .......................................
 
 `my_bool mysql_stmt_send_long_data(MYSQL_STMT *stmt, unsigned int
 parameter_number, const char *data, unsigned long length)'
 
 *Description*
 
 Allows an application to send parameter data to the server in pieces
 (or `chunks'). This function can be called multiple times to send the
 parts of a character or binary data value for a column, which must be
 one of the `TEXT' or `BLOB' data types.
 
 `parameter_number' indicates which parameter to associate the data
 with. Parameters are numbered beginning with 0. `data' is a pointer to
 a buffer containing data to be sent, and `length' indicates the number
 of bytes in the buffer.
 
 for all parameters that have been used with
 `mysql_stmt_send_long_data()' since last `mysql_stmt_execute()' or
 `mysql_stmt_reset()'.
 
 If you want to reset/forget the sent data, you can do it with
 `mysql_stmt_reset()'. See  mysql-stmt-reset.
 
 *Return Values*
 
 Zero if the data is sent successfully to server. Non-zero if an error
 occurred.
 
 *Errors*
 
    * `CR_COMMANDS_OUT_OF_SYNC'
 
      Commands were executed in an improper order.
 
    * `CR_SERVER_GONE_ERROR'
 
      The MySQL server has gone away.
 
    * `CR_OUT_OF_MEMORY'
 
      Out of memory.
 
    * `CR_UNKNOWN_ERROR'
 
      An unknown error occurred.
 
 *Example*
 
 The following example demonstrates how to send the data for a `TEXT'
 column in chunks. It inserts the data value `'MySQL - The most popular
 Open Source database'' into the `text_column' column. The `mysql'
 variable is assumed to be a valid connection handle.
 
      #define INSERT_QUERY "INSERT INTO test_long_data(text_column) VALUES(?)"
 
      MYSQL_BIND bind[1];
      long       length;
 
      smtt = mysql_stmt_init(mysql);
      if (!stmt)
      {
        fprintf(stderr, " mysql_stmt_init(), out of memory\n");
        exit(0);
      }
      if (mysql_stmt_prepare(stmt, INSERT_QUERY, strlen(INSERT_QUERY)))
      {
        fprintf(stderr, "\n mysql_stmt_prepare(), INSERT failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
      }
       memset(bind, 0, sizeof(bind));
       bind[0].buffer_type= MYSQL_TYPE_STRING;
       bind[0].length= &length;
       bind[0].is_null= 0;
 
      /* Bind the buffers */
      if (mysql_stmt_bind_param(stmt, bind))
      {
        fprintf(stderr, "\n param bind failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
      }
 
       /* Supply data in chunks to server */
       if (!mysql_stmt_send_long_data(stmt,0,"MySQL",5))
      {
        fprintf(stderr, "\n send_long_data failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
      }
 
       /* Supply the next piece of data */
       if (mysql_stmt_send_long_data(stmt,0," - The most popular Open Source database",40))
      {
        fprintf(stderr, "\n send_long_data failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
      }
 
       /* Now, execute the query */
       if (mysql_stmt_execute(stmt))
      {
        fprintf(stderr, "\n mysql_stmt_execute failed");
        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
        exit(0);
      }
 
Info Catalog (mysql.info) mysql-stmt-row-tell (mysql.info) c-api-prepared-statement-functions (mysql.info) mysql-stmt-sqlstate
automatically generated byinfo2html