DBバージョン:MySQL5 ODBCバージョン:ODBC3.51 言語:VB2003
を利用し VBからSQLを発行した際、1バイト文字の場合は問題はなく SQL文内に日本語を含むとハンドルされていない旨のシステムエラーが出てしまいます
SQLAdminからStatusコマンドDBのキャラクタセット情報を確認してもSJISとして設定されており
またコンソールから直接SQL文を打ち込んでも正常に動作いたします
My.iniファイルも文字コードはSJISに置き換えてあり 何が原因かつかめません
*VBコード
Dim MyConString As String
Dim MyConnection As OdbcConnection
Dim strSQL As String
Dim myOdbcCommand As OdbcCommand
Dim iRet As String
MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + _
"SERVER=localhost;" + _
"PORT=3306;" + _
"DATABASE=kanri_db;" + _
"UID=xxxx;" + _
"PASSWORD=xxxx;" + _
"OPTION=3;" + _
"CHARSETENCODING=sjis"
'Connection
MyConnection = New OdbcConnection(MyConString)
'myConn.Open()
MyConnection.Open()
Console.WriteLine("Connection State::" & MyConnection.State.ToString)
'SQL
strSQL = "select csv_subitem from tbl_readtempcsv where csv_subitem='ワークグループ';"
myOdbcCommand = MyConnection.CreateCommand
myOdbcCommand = New OdbcCommand
myOdbcCommand.Connection = MyConnection
myOdbcCommand.CommandType = CommandType.Text
myOdbcCommand.CommandText = strSQL
iRet = myOdbcCommand.ExecuteNonQuery
どなたかご教示いただけないでしょうか 宜しくお願いいたします
No.1ベストアンサー
- 回答日時:
my.iniのCLIENT SECTIONのdefault-character-setはMySQLが提供するクライアントアプリケーションのための設定です。
そのため、ユーザ独自のクライアントアプリケーションは初期化時にキャラクタセットを設定する必要があります。質問者さんのコードでは、CHARSETENCODINGというパラメータを指定していますが、マニュアルを読む限りMySQLのODBCにはそのパラメータは存在しません。
MySQLのODBCには STMT というパラメータがあり、ここに接続後に実行するステートメントを指定することができます。キャラクタセットを指定するステートメントは
set names sjis (もしくは set character set sjis)
です。
コードの変更点としては
"CHARSETENCODING=sjis"
を
"STMT=set names sjis"
と変更することになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
my.cnf と my.ini の違い
-
接続ができません
-
ユーザ追加して、パスワード無...
-
UTF-8にしても文字化けが直らない
-
Float型の時の計算結果がおかしい
-
mysqldが実行できない
-
MySQLサーバのコンピュータ名変...
-
VBAで変数内に保持された二次配...
-
【MySQL】時間を格納したり計算...
-
INT型は金額の型に使用するべき...
-
SQLのVARCHARとVARCHAR2の違い
-
DECIMALの範囲について
-
列数が多いと結果が行単位に改...
-
ログイン履歴について
-
MySQL エラー Duplicate entry...
-
cseデータ閲覧時に文字化け
-
ADOのバージョンを確認する方法
-
さくらのレンタルサーバで文字...
-
MySQLのエラーコード1064の見方
-
ORACLE6でバージョンの表示方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
like句を使って日本語を検索す...
-
my.cnf と my.ini の違い
-
windows上のphpにおける全角ハ...
-
ODBC接続で全角文字が文字化け
-
netscreen remoteに関して
-
phpMyadminでのMySQLの文字セット
-
「表」の文字入りのレコードがi...
-
sjisを使いたい!
-
エクセルで連勤チェックをした...
-
文字コードが有効にならない
-
VBからのODBC接続でSQLエラー
-
XAMPPでsjisを使いたいのですが
-
phpMyAdmin最新版で文字化け
-
MySQL Connector C++について
-
emacs の日本語入力2
-
MySQL4.1 文字コードについて
-
Windows環境でのPHP+MySQL+Apac...
-
MySQL5.0の文字コードが変更で...
-
Shift-JIS文字化けについて
-
MySQL4.1.11の漢字がAccessで文...
おすすめ情報