DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info.gz) mysql_stmt_send_long_data

Info Catalog (mysql.info.gz) mysql_stmt_row_tell (mysql.info.gz) C API Prepared statement functions (mysql.info.gz) 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.
 
 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()'.  mysql_stmt_reset.
 
 This function was added in MySQL 4.1.2.
 
 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.gz) mysql_stmt_row_tell (mysql.info.gz) C API Prepared statement functions (mysql.info.gz) mysql_stmt_sqlstate
automatically generated byinfo2html