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.