Q60:下記のinsert命令は、AccessやphpMyAdminからの実行は問題無く行えるのですが、MZPlatform上で実行するとエラーとなり実行できません。
Q60-1:
今回は、MZPlatform上でのinsert命令の実行について、質問があり連絡しました。
下記のinsert命令は、AccessやphpMyAdminからの実行は問題無く行えるのですが、MZPlatform上で実行するとエラーとなり実行できません。
AccessのSQL文
INSERT INTO T_受注 VALUES('Y','9999','Y9999','2623027',#2009/07/10#,'0','3241','KN','false',#2009/07/10#,#2009/07/10#,'FUJI');
エラー:抽出条件でデータ型が一致しません。
MySQLのSQL文
INSERT INTO T_受注 VALUES('Y','9999','Y9999','2623027','2009/07/10','0','3241','KN','false','2009/07/10','2009/07/10','FUJI');
エラー:Exception:Data truncation: Data too long for column '文字化け' at row 1
なにが原因なのでしょうか?
A60-1:
ACCESSのSQL文のほうは日付型データの「#」を取り、他のデータと同様「'」で囲んでお試し下さい。
MySQLのエラーの方は、メッセージ通りテーブルのカラム型の定義よりも長いデータが入っている場合もありますし、文字コードが関係している可能性も考えられます。
お手数ですが、カラム型の定義、また文字コードを今一度ご確認下さい。
Q60-2:
AccessのSQL文の日付型データの「#」を取り、他のデータと同様「'」で囲んで実行してみましたが、残念ながら同じエラーが表示されました。
MySQLのカラム型の定義は、「vercher(255)」、「datetime」、「bit(1)」の3種類です。
文字コードに関しては、現在このような設定になっています。
character set client utf8
(グローバル値) sjis
character set connection sjis
character set database sjis
character set filesystem binary
character set results utf8
(グローバル値) sjis
character set server sjis
character set system utf8
character sets dir C:\Program Files\xampp\mysql\share\charsets\
collation connection sjis_japanese_ci
collation database sjis_japanese_ci
collation server sjis_japanese_ci
同じ文字コードの設定で、別のテーブルに対して行う次のinsert命令は問題無く実行できます。
INSERT 工程情報登録(開始時間,作業者ID,作番,機械ID,状況) VALUES('2009/07/11 18:25:34',14,'R0001',149,1);
なにが問題となっているのでしょうか。
A60-2:
MySQLでbit(1)型となさっているカラムは何列目か、またACCESSではそのカラムはどんなデータ型となっているかお教え下さい。
Q60-3:
MySQLでbit(1)となっているカラムは、8列目の「false」が値となっている場所です。
INSERT INTO T_受注 VALUES('Y','9999','Y9999','2623027','2009/07/10','0','3241','KN','false','2009/07/10','2009/07/10','FUJI');
Accessではyes/no型で設定されています。
A60-3:
ACCESS、MySQL両方とも「false」が値として扱われるよう、「'」を取ってお試し下さい。