DataReportの二回目以降の表示に関して

解決


moma  2004-01-13 22:28:56  No: 81409

DataRepotとDataEnvironmentを用いてデータベース内容の印字をしようとしています。
データベースに登録してある日付の期間を指定して印字を行いたいのですが、
一度目はきちんと表示されるのに、
別の期間を入力して二度目の表示をさせようとするとうまくいきません。
エラーメッセージにはSQLのシンタックスエラーと出ます。
日付の指定がうまく出来ていないようです。
参考書を見る限りでは、DataEnvironmentをCloseすれば2度目以降の表示が出来るとあるのですが、
結果は同じでした。
動作環境はVB6.0 MySQL 4.0.13を用い、接続にはMyODBC 3.51.06を用いています。
もしわかりましたらご返答お願いいたします。
自分でも下手な説明だと思うので不明な点は言っていただけるとありがたいです


岡田 之仁  2004-01-14 21:56:03  No: 81410

MySQL も増えてきましたネ〜・・・

その、1回目と2回目のSQL文を、投稿して頂けませんか?

文法的問題かと思いますが・・・

DataEnvironmentとかで、リソースの問題ですと、メモリリーク
しますので、仮にエラーしない場合、使用メモリが増加していく
現象が発生したりしますが・・・

明示的にシンタックスエラーと出ているので、SQL文のミス?

因みに、そのエラーを出しているのは、VB?MySQL?どちらです
か?

確認方法のひとつとしては、MySQLに対し発行しているSQL文を、
コマンドラインからMySQLを実行し、実際に直にSQL文を実行さ
せ、MySQL側の動作を確認する方法が、よいかと・・・

ご検討下さい。

以上。


moma  2004-01-16 22:59:48  No: 81411

ご返答ありがとうございます。
こちらの返信が遅れまして申し訳ございません^^;
直にコマンドラインからMySQLを実行した場合にはきちんと動作します。
DataEnvironmentで以下のようなSQL分を用いています。

SELECT * FROM money, outpast WHERE (outpast.daytime >= ?) AND 
(money.number = outpast.number) AND (outpast.daytime <= ?) AND
(money.number = ?)

?部には後ほどプログラムから値の入力をしています。
一回目の?部への値入力はうまくいき、正確な内容がDataReportに表示されます。
DataReportを閉じる際にDataEnvironmentをCloseして
もう一度別の内容を入力しようとするとシンタックスエラーメッセージが表示されます。
DataEnvironmentへ入力された値がクリアされていないのではないかと思いますが・・・・
お分かりになりましたらご返答お願いいたします・・・


moma  2004-01-16 23:34:10  No: 81412

追加です。
上記の状態はDataReportを閉じる際にDataEnvironmentをCloseして
再度値の入力をする前にDataEnvironmentをOpenすると起こります。

DataReportを閉じる際にDataEnvironmentをCloseしてOpenはせずに実行すると
DataReport実行の際に「現在の行セットの取得に失敗しました」と出て
さらにDataReportを閉じる際にDataEnvironmentをCloseするので
「オブジェクトが開いている間はこの動作は実行できません」と出ます。

DataReportを閉じる際にDataEnvironmentをCloseをしないで(openもしません)二回目を実行すると
1回目の内容がそのままDataReportに表示されます

よろしくお願いします


moma  2004-01-26 23:59:50  No: 81413

方法を変えてPrinterオブジェクト使用することで解決しました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加