mysql:15375
From: Mikiya Okuno <Mikiya Okuno <mikiya.okuno@xxxxxxxxxx>>
Date: Thu, 19 Aug 2010 21:50:03 +0900
Subject: [mysql 15375] Re: int column への2147483648
奥野です。こんばんは。 bind[0].is_unsigned = 1にしましょう。 そうしないと符号付き32ビット整数の最大値=2147483647に 引っかかってしまいます。 ではでは。 On 08/19/2010 08:46 PM, Etsuo SUMIYA wrote: > sumiyaといいます。 > > mysql-5.1.47-winを使用していて、mysql_stmt_prepare()を使い、データ > ベースへ書き込むアプリケーションを開発していますが、添付のプログラ > ムを実行すると、 > > mysql> select * from t; > +------------+ > | c1 | > +------------+ > | 2147483647 | > | 0 | > +------------+ > 2 rows in set (0.03 sec) > > となり、2147483648が書き込まれずに、0になってしまいます。 > mysqlコマンドでは書き込めるのですが、プログラムインタフェースから > は上の結果となります。 > > 環境はWindows XP SP3 > Visual studio 2003 > を使用しております。 > > どなたか、情報をお持ちの方はアドバイスをお願いします。 > > --- テーブル --- > CREATE TABLE `t` ( > `c1` int(10) unsigned DEFAULT NULL > ) ENGINE=MyISAM DEFAULT CHARSET=sjis > --- ここまで --- > > --- プログラム --- > #include "stdafx.h" > #include<config-win.h> > #include<mysql.h> > > MYSQL *mysql; > > int mytest(); > > int _tmain(int argc, _TCHAR* argv[]) > { > mytest(); > return 0; > } > > int mytest() > { > static MYSQL_BIND bind[1]; > int result; > unsigned int stat; > my_bool statnull = 0; > char *insert = "INSERT INTO t (c1) values (?)"; > MYSQL_STMT *tstmt; > > MYSQL *mymysql; > mysql = mysql_init(NULL); > if(mysql) { > mymysql = mysql_real_connect(mysql, "192.168.48.15", "test", "", "test", 0, NULL, CLIENT_MULTI_STATEMENTS); > } else exit(-1); > > tstmt = mysql_stmt_init(mysql); > result = mysql_stmt_prepare(tstmt, insert, (unsigned long)strlen(insert)); > memset(bind, 0, sizeof(bind)); > bind[0].buffer_type = MYSQL_TYPE_LONG; > bind[0].buffer = (char *)&stat; > bind[0].length = 0; > bind[0].is_null =&statnull; > result = mysql_stmt_bind_param(tstmt, bind); > stat = 0x80000000-1; > result = mysql_stmt_execute(tstmt); > stat = 0x80000000; > result = mysql_stmt_execute(tstmt); > return(0); > } > --- ここまで --- >
15374 2010-08-19 20:46 [Etsuo SUMIYA <sumiya] int column への2147483648 -> 15375 2010-08-19 21:50 ┗[Mikiya Okuno <mikiya] 15376 2010-08-20 08:23 ┗[Etsuo SUMIYA <sumiya] 15377 2010-08-20 22:10 ┗[SAKAI Kei <sak2@xxxx] 15378 2010-08-21 10:39 ┗[Etsuo SUMIYA <sumiya] 15379 2010-08-21 18:31 ┗[SAKAI Kei <sak2@xxxx] 15381 2010-08-24 08:56 ┗["Watanabe Tomoyuki" ]