Hi

Instead of use two INSERT statements, try something like this:

INSERT INTO Table table1 VALUES (list of values1), (list of values2) ....



-----Original Message-----
From: Jeremiah Gowdy [mailto:[EMAIL PROTECTED] 
Sent: 06 May 2005 17:19
To: [EMAIL PROTECTED]; mysql@lists.mysql.com
Subject: Re: C API : Problem using multi-statements

Answer is simple.  Can't do that.

----- Original Message ----- 
From: <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Friday, May 06, 2005 5:40 AM
Subject: C API : Problem using multi-statements


Hello,

I have some problems using multiple queries in a databased driven project, 
therefore I wrote a little testprogram which
causes the same problems.

I am using the C-API of MySQL 4.1.11 on a Gentoo Linux 3.3.2-r5, 
propolice-3.3-7 with 2.4.27 kernel.
I connect to the server (on localhost) with mysql_real_connect and the flag 
CLIENT_MULTI_STATEMENTS,
I submit multiple queries (two INSERTS seperated by ";") on the existing 
connection.
Executing the multistatement with mysql_query in a loop (i.e. 10 times),
I get a lot of "lost connection during query" errors, but sending a single 
INSERT query in a loop causes no errors !!!

Thanks in advance for help
regards Tinosch Ganjineh


The following program operates on a simple table structure created with the 
following statement :
CREATE TABLE BIGTABLE (myoid char(40), mykey char(40), myval char(40), myint

bigint) TYPE = InnoDB;

/********************************** mysqltest.cpp 
*************************************/
#include <iostream>
#include <mysql.h>
#include <sstream>
#include <string>

using namespace std;

string itos(long long i) {
ostringstream sstream;
sstream << i;
return sstream.str();
}

int main(int argc, char** argv) {
MYSQL* conn;
if(conn = mysql_init(NULL)) {
if(mysql_real_connect(conn, "localhost", "root", "xxxxx", "test", 0, NULL, 
CLIENT_MULTI_STATEMENTS )) {
int loop=100;
for(int i=0; i<loop; ++i) {
int e=0;
string query;
query = string("INSERT INTO BIGTABLE VALUES (") + "'object-" +itos(i)+"', 
'foo', 'bar', NULL);\
INSERT INTO BIGTABLE VALUES (" + "'object-" +itos(i+1000)+"', 'bar, 'foo', 
NULL)";
e = mysql_query(conn, query.c_str());
if(e) {
cerr << "*********Query failed*****: " << e << " - " << mysql_error(conn) <<

endl;
} else {
MYSQL_RES* result = mysql_store_result(conn);
if(result) {
// .. parse result set ...
} else {
//cerr << "Could not fetch Results from DB: " << mysql_error(conn);
}
mysql_free_result(result);
}
}
} else {
cerr << "Could not connect to MySQL database: " << mysql_error(conn) << 
endl;
}
} else {
cerr << "Could not initialize MySQL: " << mysql_error(conn) << endl;
}
}
/********************************** mysqltest.cpp 
*************************************/

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]


**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to