my_bool mysql_send_long_data(MYSQL_STMT *stmt,
          unsigned int parameter_number, const char *data, ulong
          length)
        
Descrição
          Permite que um aplicação envie os dados dos parâmetros para
          o servidor em partes (ou ``blocos''). Esta função pode ser
          chamada várias vezes parar enviar partes de valores de dados
          binários e caracteres para uma coluna, que deve do tipo
          TEXT ou BLOB.
        
          parameter_number indica a qual parâmetro o
          dado é associado. Os parâmetros são numerados começando
          com 0. data é um ponteiro para um buffer
          contendo dados a serem enviados, e length
          indica a quantidade de bytes no buffer.
        
Valor Retornado
Zero se os dados são enviados com sucesso para o servidir. Diferente de zero se ocorrer um erro.
Erros
              CR_INVALID_PARAMETER_NO
            
Número de parâmetro inválido
              CR_COMMANDS_OUT_OF_SYNC
            
Os comando foram executados em uma ordem inpropriada.
              CR_OUT_OF_MEMORY
            
Falta de memoria.
              CR_SERVER_GONE_ERROR
            
O servidor MySQL foi finalizado.
              CR_UNKNOWN_ERROR
            
Um erro desconhecido ocorreu.
Example
          O exemplo seguinte demonstra como enviar os dados para um
          coluna do tipo TEXT em blocos. Ele insere o
          dado ``MySQL - The most popular open source database'' na
          coluna text_column. A variável
          mysql é considerada como um handle de
          conexão válido.
        
#define INSERT_QUERY "INSERT INTO test_long_data(text_column) VALUES(?)"
MYSQL_BIND bind[1];
long       length;
if (!mysql_prepare(mysql, INSERT_QUERY, strlen(INSERT_QUERY))
{
  fprintf(stderr, "\n prepare failed");
  fprintf(stderr, "\n %s", mysql_error(mysql));
  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_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_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_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_execute(stmt))
  {
    fprintf(stderr, "\n mysql_execute failed");
    fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
    exit(0);
  }
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

