Hello!
I tried to insert one row to mysql database (ver. 3.23) via myodbc
(ver.2.50.39.00).
I made test program (vc6) which look like this:
#include <windows.h>
#include <stdio.h>
#include <sql.h>
#include <sqlext.h>
int main(int argc, char* argv[])
{
SQLSMALLINT nCols;
SQLHENV m_SQLEnvironment;
SQLHDBC m_SQLConnection;
SQLHSTMT m_SQLStatement;
SQLRETURN iReturn;
SQLCHAR theNumeric2[50];
SQLINTEGER theNumeric3;
SQLINTEGER cbNumeric2;
strcpy((char*)theNumeric2, "Jonson");
cbNumeric2 = SQL_NTS;
theNumeric3 = 12345;
//Allocate Environment Handle
iReturn = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,
&m_SQLEnvironment);
//Set environment to ODBC_3
iReturn = SQLSetEnvAttr(m_SQLEnvironment, SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3, 0);
//Allocate connection handle
iReturn = SQLAllocHandle(SQL_HANDLE_DBC, m_SQLEnvironment,
&m_SQLConnection);
//Connect to the database.
iReturn = SQLConnect(m_SQLConnection, (SQLCHAR*)"xxxxxxxxxxxx", 11,
(SQLCHAR*)"xxxxxxxx", 8, (SQLCHAR*)"xxxxxxxxxxx", 10);
//Allocate the statement handle
iReturn = SQLAllocHandle(SQL_HANDLE_STMT, m_SQLConnection,
&m_SQLStatement);
iReturn = SQLPrepare(m_SQLStatement, (unsigned char*)"INSERT INTO
user_customers (user_id,user_surname, user_firstname) Values (?,?, 'Jon')",
SQL_NTS);
/* do the binding for parameter 1, id */
iReturn = SQLBindParameter(m_SQLStatement, 1, SQL_PARAM_INPUT,
SQL_C_SLONG, SQL_INTEGER, 0, 0, &theNumeric3, 6, &cbNumeric2);
/* Now do the bindings for parameter 2, name */
iReturn = SQLBindParameter(m_SQLStatement, 2, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_VARCHAR, 50, 0, theNumeric2, 7, &cbNumeric2);
iReturn = SQLNumResultCols( m_SQLStatement, &nCols);
iReturn = SQLExecute(m_SQLStatement);
/* Free param buffer resources */
iReturn = SQLFreeStmt(m_SQLStatement, SQL_RESET_PARAMS);
return 1;
}
It works fine except it insert that row in database twice (first time when
SQLNumResultCols function is called and second when SQLExecute is called)
I tried this program in win2000 platform.
It look like if I do not use binding it works fine.
Is this bug or what?
-Mika-
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php