[前][次][番号順一覧][スレッド一覧]

mysql:9597

From: bon <bon <bon@xxxxxxxxxx>>
Date: Fri, 11 Jun 2004 11:25:01 +0900
Subject: [mysql 09597] 多段階の OLE DB の操作でエラー


bonです。

OS:Windows 2000 Server
MySQL:mysql-4.0.18-win.zip
ODBC:MyODBC-3.51.06.exe
を使用しています。
ODBCのオプションは
Don't optimize column width
Return matching rows
にチェックしています。

以下のテーブルとデータを使用し、
−−−−−ここから−−−−−
DROP TABLE IF EXISTS testtbl;
CREATE TABLE testtbl (
  did varchar(16) NOT NULL default '',
  msg text,
  PRIMARY KEY  (did)
) TYPE=MyISAM;

INSERT INTO testtbl VALUES ('1',NULL);
INSERT INTO testtbl VALUES ('2','');
INSERT INTO testtbl VALUES ('3','msg');
−−−−−ここまで−−−−−

データを放り込んだ結果は
mysql> desc testtbl;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| did   | varchar(16) |      | PRI |         |       |
| msg   | text        | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

mysql> select * from testtbl;
+-----+------+
| did | msg  |
+-----+------+
| 1   | NULL |
| 2   |      |
| 3   | msg  |
+-----+------+
3 rows in set (0.00 sec)
です。

そして、以下を拡張子vbsで保存し
−−−−−ここから−−−−−
Const C_ActConn	= "dsn=hoge;uid=hogeuser;pwd=hogepass"

MsgBox ChgData(1),,"1"
MsgBox ChgData(2),,"2"
MsgBox ChgData(3),,"3"

Function ChgData(a_did)

	ChgData = "Not Found"
On Error Resume Next
	Set rs = CreateObject("ADODB.Recordset")
	strSql = "select * from testtbl where did='" & a_did & "'"
	rs.Open strSql, C_ActConn
	If rs.EOF <> True Then
		strWork = rs.Fields("msg")
		If Err Then
			ChgData = "ERR=" & strWork
		Else
			ChgData = "OK=" & strWork
		End If
	End If
	rs.Close
	Set rs = Nothing
End Function
−−−−−ここまで−−−−−
実行すると、
did=2の時、つまりmsgが''の時にERRとなります。

エラーの内容は
多段階の OLE DB の操作でエラーが発生しました。
各 OLE DB の状態の値をチェックしてください。作業は終了しませんでした。
です。

http://dev.mysql.com/doc/mysql/ja/BLOB.html
にはtextに空文字はいれてはいけないみたいな記述は見つかりません。

これは何が悪いのでしょうか?
On Error Resume Nextして
Errなら空文字とみなすのが正しい処理なのでしょうか?


よろしくお願いします。



-----------------
bon@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

->    9597 2004-06-11 11:25 [bon <bon@xxxxxxxxxx>] 多段階の OLE DB  の操作でエラー         
      9629 2004-06-14 04:56 ┗[bon <bon@xxxxxxxxxx>]