私はC++でMySQL C APIを使用してデータベースに接続しています。私はこのようにしてデータベースからいくつかの番号を選択してみてください。MySQL C APIを使用して直接数値を取得する
INTEGERやDOUBLEのような数値型を、intやdoubleのようなネイティブC型に直接文字列から解析することなくフェッチする方法はありますか?
EDIT: ENUMについてはどうですか?私はスイッチを使用する代わりに毎回strcmpを行うのが嫌いです。
私はC++でMySQL C APIを使用してデータベースに接続しています。私はこのようにしてデータベースからいくつかの番号を選択してみてください。MySQL C APIを使用して直接数値を取得する
INTEGERやDOUBLEのような数値型を、intやdoubleのようなネイティブC型に直接文字列から解析することなくフェッチする方法はありますか?
EDIT: ENUMについてはどうですか?私はスイッチを使用する代わりに毎回strcmpを行うのが嫌いです。
ありがとうございましたが、実際に私は別の何かを探している間、私はちょうど方法を見つけた...
プリペアドステートメントは、仕事をすることができると思います。データを選択するとき、結果はプリペアドステートメント引数と同様にMYSQL_BINDに格納されます。 MYSQL_BINDでは、値はネイティブCタイプとして保存されます。私はこれらのリンクが役に立つと思う:
http://lgallardo.com/en/2011/06/23/sentencias-preparadas-de-mysql-en-c-ejemplo-completo/ http://dev.mysql.com/doc/refman/5.5/en/mysql-stmt-fetch.html#id1363684
私はそれを信じていません - 私が知っている限り、すべてがあなたに解釈するchar *として返されます。あなたが列挙型に関連する値を取得している場合
その後、char *型から変換するためには、strtodのようなものを()を使用し、ダブルスについて
int res = atoi(row[0])
その後、
switch(res)
{
case ENUM_VAL_1:
break;
}
を使用しています。 (これは、あまりにも非番号をチェック)