• 締切済み

Varchar(10) Binary型のデータ取得方法

Win2K+MySQL+ASPでデータプログラムを組んでいます。 Fieldを検索するときの大文字と小文字を区別して検索するために、VarCharの属性にBinaryを加えました。しかしこれによってASPでFieldの値を取得すると、「????」になってしまいます。Binary属性を解除するすと「abc」としてちゃんと出ます。 おそらくBinaryデータとして扱われるみたいですが、これの解決方法がありませんでしょうか。その方法が分かるから教えて下さい。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 あやふやだが、BYTEの配列としてデータを取ってきて、StrConv関数かなんかで文字列に直すのかな? あやふやすぎて申し訳ないが、Byte型の配列とかStrConv関数とかそういうキーワードから色々調べてみてくれたまい。 多分Byteの配列はそのままStringを引数にとる所にそのまま食わせられるはず。 Dim str As String Dim byt() As Byte ' ・・・この辺りでbyt()に何らかのバイナリパックド文字列が入る・・・ str = StrConv(byt()) MsgBox str VBでのサンプル(しかも空想)だが、ASPに直してやってくれ。なんとかうまくできる事を祈る。

関連するQ&A

  • テーブルのフィールドの一番長いデータの取得

    たとえばvarchar属性のフィールドがあるとします、格納されているデータから一番長いものを抽出するクエリーはどうすればいいのでしょうか? 最長値から長さ(値)を調整したいのですが、他に方法があれば教えていただきたいのですが、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • varcharフィールドのデータ取得

    varcharフィールドをphpで取得したいのですが255byteしかmssql_queryでは取得できません。 それ以上のデータを取得する方法、もしくはそれに変わる取得方法を教えてください。 環境 SQLsever 2005 PHP ver5.0

    • 締切済み
    • PHP
  • MySQLでvarchar型のデータの最大値を取得する方法

    お世話になります。 どなたかご回答&アドバイスをよろしくお願い致します。 MySQLで、以下のように登録されているデータがあるとします。 ID(varchar) | name(varchar) 0000001 | ああああ 0000002 | いいいい 0000004 | ううううう それで、登録されているIDの最大値+1を取得したいのです。 IDのカラムのデータ型がIntならmaxで取得できると思うのですが、データ型がvarcharなので…。 レコードの数+1というのは、IDが必ずしも1から飛びがなく登録されているとは限らないので、 その方法は危ないのでできません。 上の例だと、「0000005」を取得したいです。 どうぞご教授お願い致します。

    • ベストアンサー
    • PHP
  • MySQLのvarcharについて

    今までPostgreSQLを利用していたのですが、MySQLもテストで一回使ってみよと思い触ってみたところ・・・ varchar(20)のカラムに、文字列型で「4571170731101」という値を登録するとDB上では「2147483647」となってしまいます。 int型?とかに解釈されてるんでしょうか。意味がわかりません。 どなたか助けてください。

    • ベストアンサー
    • MySQL
  • 大文字、小文字のバイナリ型について

    Mysqlで大文字と小文字を区別するように、特定のカラムにBINARYを設定しましたが、逆に、それを解除(削除)する方法はありますでしょうか? BINARYの設定の方法は多くのサイトで見つけられましたが、削除の方法は分かりませんでした。 どなたかよろしくお願いします。

    • ベストアンサー
    • MySQL
  • mysql_field_lenの返り値がvarcharで3倍になる

    PHPの関数「mysql_field_len」で、わからない点がありました。 $id = mysql_list_fields ( 'DbName', 'TableName' ); $num = mysql_num_fields ( $id ); for ( $i=0; $i<$num; $i++ ) { print mysql_field_name ( $id, $i ) ."<BR>\n"; print mysql_field_len ( $id, $i ) ."<BR>\n"; print mysql_field_type ( $id, $i ) ."<BR>\n"; print mysql_field_flags ( $id, $i ) ."<BR><BR>\n"; } として、各フィールドの情報を表示させました。 すると、mysql_field_typeが「string」(実際にはvarchar)の時、 mysql_field_lenの返す値が3倍になって返ってきます。 例:varchar(8)→24 これは何の値を返しているのか、また設定の問題なのか、 ご存知の方はいらっしゃいますでしょうか。 よろしくお願いいたします。 環境: PHP4.3.10 MySQL4.1.10

    • 締切済み
    • PHP
  • 1つのVARCHAR属性のフィールドに対して、SQL文のLIKE等を

    1つのVARCHAR属性のフィールドに対して、SQL文のLIKE等を 利用して、”全角文字”が1つ以上存在しているレコードのみを、 SELECTで抽出する方法をご存知の方がいらっしゃいましたら、 ぜひ教えてください。 お世話になります。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • MySQL 5.0.41 のvarcharの文字数について(utf8の場合)

    MySQL 5.0.41を使っております。正確には、Mac OS X上でMAMP ver 1.7を導入しております。この環境で、以下の文を実行すると、 show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | +--------------------------+--------+ です。ここで、質問なのですが、 フィールドの型としてvarchar(50)とすると、 全角文字が16文字しか入りません。 つまり、UTF8の全角1文字に対して3バイトとカウントしているためと思われます。つまりvarchar(50)と設定すると、 50/3=16.66.. なので、このvarchar(50)は、50バイトまでと設定していることになります。MySQL4.1以降は()の中身は文字数と聞いていたのに、 実際とは異なり、しっくりきません。この結果は正しいのでしょうか?

  • 「VARCHAR(255)」を「text」に。種別変更

    MySQL 4.0.27を利用しております。 操作はphpMyAdminで行っております。 1つの項目がかなりの文字数になりつつあり、 VARCHAR(255)では、入りきらないデータがでてきました。 そこで「VARCHAR(255)」を「text」に変更しようと 思います。 この時、データが入ったまま種別変更を行っても データが消えたりすることはないでしょうか? もしよければ「text」にした場合のデメリットも お教えください。よろしくお願いします。

    • ベストアンサー
    • MySQL
  • レジストリの値の取得のデータ型について…

    いつも大変お世話になっています。 今回は、APIのRegQueryValueExを使用してレジストリの値を取得しようとしているのですが、 レジストリのデータ型に対応するVBのデータ型がわからないものがあったので 質問させていただきます。 REG_EXPAND_SZ 展開可能フィールド(%USERNAME% %SystemRoot%など)を含んだ文字列 REG_MULTI_SZ 連続したゼロで終わる文字列(Str1\0Str2\0Str3\0... REG_BINARY バイナリデータ (最大1Mバイト) の3つなんですが、REG_BINARYはByte型でもエラーは出なかったのですが、値がレジストリのものと 違いました。(レジストリ:00 00 01 00 のデータに対して 取得データ:0 が取得されたのです) 他の2つは文字列型、数値型、バリアント型で試しましたが、すべて、メモリの参照エラーになってしまうのです。 どうかよろしくお願いします。

専門家に質問してみよう