3 messages in com.mysql.lists.plusplusRe: query.execute not working
FromSent OnAttachments
Chuck Haines24 Jan 2006 12:04 
Warren Young24 Jan 2006 21:50 
Chuck Haines25 Jan 2006 03:32 
Subject:Re: query.execute not working
From:Chuck Haines (chai@gmail.com)
Date:01/25/2006 03:32:19 AM
List:com.mysql.lists.plusplus

I had a brain cramp yesterday. I have since figured everything out. I haven't had to program in C++ for about 6 years and have been thrown into this project. Also, I can't use SSQL because I'm compiling on QNX and it doesn't work. So I've got to do it the old fashion way. Also, I've figure out my other email as well.

On 1/25/06, Warren Young <mysq@etr-usa.com> wrote:

Chuck Haines wrote:

query = conn.query(); ttime = time( NULL ); sprintf( dTime, "%d000", ttime ); sql = "insert into Survey values ('"; sql += dTime; sql += "', '"; sql += dTime; sql += "', 'Information', 'Information')"; query << sql;

*Dude*.... Please read a book that covers C++ idioms. This looks like it's trying to be Perl or BASIC. I'm not trying to pick on you. It's just that if you write C++ as though it were some other language, it will not work very well. Rewriting it into proper C++:

query = conn.query(); snprintf( dTime, sizeof(dTime), "%d000", time(0) ); query << "insert into Survey values (" << mysqlpp::quote << dTime << ", " << mysqlpp::quote << dTime << ", 'Information', 'Information')"; query.execute();

Notice that I changed your sprintf() to snprintf(). sprintf() should not be used any more; it is a prime candidate for buffer overflow errors. snprintf() is new in C99, and most compilers offer something like it, if not exactly like it. (Microsoft prefers _snprintf(), for instance.) My rewrite assumes that dTime is an array, and not a pointer to dynamically-allocated memory.

Also, I think you could profit from looking into MySQL++'s SSQLS feature. It reduces the drudgery in the code above.

cout << "Error: " << query.error() << endl;

Unless I'm missing something, this won't ever give you anything useful. Any true errors will be signaled with exceptions, totally bypassing this code.

-- Chuck Haines chai@gmail.com http://www.maxslack.com

------------------------------------------- Tau Kappa Epsilon Fraternity Fraternity For Life Alumni

------------------------------------------- AIM: CyberGrex YIM: CyberGrex_27 ICQ: 3707881

------------------------------------------- GPG Fingerprint: 303A AB50 4EA9 70ED 2E30 2368 C9CD CCB5 4BD7 0989 GPG Key: http://www.maxslack.com/gpgkey.txt