my_bool mysql_send_long_data(MYSQL_STMT *stmt,
          unsigned int parameter_number, const char *data, unsigned long
          length)
        
説明
          アプリケーションはこの関数を使用して、パラメータデータを個別に(または
          ``切り分けて'')サーバに送信できます。この関数を複数回呼び出すことによって、TEXT
          または BLOB
          のどちらかのデータ型のカラムの文字データ値またはバイナリデータ値を複数回に分けて送信することができます。
        
          parameter_number
          は、データを関連付けるパラメータを示す番号です。パラメータの番号は
          0 から始まります。data
          は送信データを含むバッファへのポインタを、length
          はバッファ内のデータのバイト数を示します。
        
戻り値
データをサーバに正常に送信できた場合は 0。エラーが発生した場合は 0 以外。
エラー
              CR_INVALID_PARAMETER_NO
            
無効なパラメータ番号が指定された。
              CR_COMMANDS_OUT_OF_SYNC
            
コマンドが正しい順序で実行されなかった。
              CR_SERVER_GONE_ERROR
            
MySQL サーバがいなくなった。
              CR_OUT_OF_MEMORY
            
メモリが不足していた。
              CR_UNKNOWN_ERROR
            
不明なエラーが発生した。
例
          以下の例では、TEXT
          型カラムのデータを切り分けて送信する方法を示します。ここでは、データ値
          'MySQL - The most popular open source
          database' を text_column
          カラムに挿入します。mysql
          変数は有効な接続ハンドルとします。
        
#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.

