my_bool mysql_stmt_send_long_data(MYSQL_STMT *stmt,
          unsigned int parameter_number, const char *data, unsigned long
          length)
        
Beschreibung
          Ermöglicht es einer Anwendung, Parameterdaten in Stücken
          (oder „Chunks“) an den Server zu schicken. Diese
          Funktion kann mehrmals aufgerufen werden, um die Teile eines
          Zeichen- oder Binärdatenwerts für eine Spalte zu übergeben.
          Die Werte müssen den Datentyp TEXT oder
          BLOB haben.
        
          parameter_number gibt an, mit welchem
          Parameter die Daten verbunden werden sollen. Die Parameter
          werden beginnend mit 0 nummeriert. data ist
          ein Zeiger auf einen Puffer, der die zu übermittelnden Daten
          enthält, und length ist die Anzahl der
          Bytes im Puffer.
        
          Hinweis: Der nächste Aufruf
          von mysql_stmt_execute() ignoriert den
          Bind-Puffer für alle Parameter, die seit dem letzten
          mysql_stmt_execute() oder
          mysql_stmt_reset() mit
          mysql_stmt_send_long_data() benutzt worden
          sind.
        
          Wenn Sie die gesendeten Daten zurücksetzen/vergessen
          möchten, tun Sie dies mit
          mysql_stmt_reset(). Siehe
          Abschnitt 24.2.7.21, „mysql_stmt_reset()“.
        
Rückgabewerte
Null, wenn die Daten erfolgreich an den Server gesandt wurden. Ein von null verschiedener Wert, wenn ein Fehler auftrat.
Fehler
              CR_COMMANDS_OUT_OF_SYNC
            
Befehle wurden in der falschen Reihenfolge ausgeführt.
              CR_SERVER_GONE_ERROR
            
Der MySQL Server ist nicht mehr verfügbar.
              CR_OUT_OF_MEMORY
            
Speicherüberlauf.
              CR_UNKNOWN_ERROR
            
Ein unbekannter Fehler ist aufgetreten.
Beispiel
          Das folgende Beispiel zeigt, wie die Daten für eine
          TEXT-Spalte stückchenweise übermittelt
          werden. Es fügt den Datenwert 'MySQL - The most
          popular Open Source database' in die Spalte
          text_column ein. Die Variable
          mysql sei ein gültiger Verbindungs-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;
/* Binde die Puffer */
if (mysql_stmt_bind_param(stmt, bind))
{
  fprintf(stderr, "\n param bind failed");
  fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
  exit(0);
}
 /* Liefere Daten stückweise an den 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);
}
 /* Sende das nächste Datenstück */
 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);
}
 /* Führe nun die Anfrage aus */
 if (mysql_stmt_execute(stmt))
{
  fprintf(stderr, "\n mysql_stmt_execute failed");
  fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
  exit(0);
}
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

