Windows 2000 Server環境でIISにて次のような問題に遭遇しています。
~calendar.asp~
If Request("year") <> "" Then
Session("STR_DATE") = Request("year") & "/" & Request("mon") & "/" & Request("day")
End If
と、上記のような記述があり、STR_DATEの値が代入されています。
にも関わらず、SQLを実行するとSTR_DATEがNullになってしまいます。
SQL = "INSERT INTO SCHEDULE([DATE],[CATEGORY],[NAME],[COMMENT]) VALUES ('" & Session("STR_DATE") & "','" &Request("category") & "','" &Request("name") & "','" & Request("comment") & "')"
OBJ.Execute(SQL)
結果、日付(DATE)がNullでレコード追加されてしまいます。
ASP全文を掲載すると長文になってしまうので、一部抜粋して掲載しました。
情報不足は承知しておりますが、お知恵をお借りできませんでしょうか。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにゃくは。
>>と、上記のような記述があり、STR_DATEの値が代入されています。
If Request("year") <> "" Then
Session("STR_DATE") = Request("year") & "/" & Request("mon") & "/" & Request("day")
End If
response.write("セッション確認:" & Session("STR_DATE"))
とやって、画面上に、Session("STR_DATE")の値が目視により確認できるか。(もし、画面表示されるページでなくても無理矢理出す。(でないと確認できないため。
JavaScriptのAlert使ってでも、もし自動遷移するような画面の構成でも、無理矢理とめて、格納直後に、確実に格納できていることを確認します。
次に。。。
response.write("挿入するセッション確認:" & Session("STR_DATE")
SQL = "INSERT INTO SCHEDULE([DATE],[CATEGORY],[NAME],[COMMENT]) VALUES ('" & Session("STR_DATE") & "','" &Request("category") & "','" &Request("name") & "','" & Request("comment") & "')"
'OBJ.Execute(SQL)コメント化
として、SQL文実行する直前に、確実にそのSessionの値があるのかどうかを確認します。
これも、AlertでもResponse.writeでも何でも構わないので確実に出す必要があります。(じゃないと確認が出来ないので。
response.write("セッション確認:" & Session("STR_DATE"))
こっちじゃ表示されるのに
response.write("挿入するセッション確認:" & Session("STR_DATE")
こっちじゃ表示されない
のだったら、まぁ、そこまでのルーチンの間で消えてるんでしょうね。。。
初期化するような命令文があるのか無いのか、がんばって追いましょう。
現状では、
>>STR_DATEの値が代入されています。
本当に値が代入されてんの??
ってのを疑うしかできません。
この回答への補足
原因がわかりました。
サーバーのホスト名に"_(アンダーバー)"が含まれていることが原因のようです。
http://pasofaq.jp/development/asp/session.htm
やはり、Session変数の値を違う形で引き継がせる必要があるようです。
これについて何かお知恵をお貸しいただけませんでしょうか。
宜しくお願いいたします。
回答、ありがとうございます。
やはり、挿入するセッション確認:では表示されませんでした。
この間に何か問題があるのだと思います。
がんばって追ってみます。
ありがとうございました。
No.2
- 回答日時:
これだけ見ると、Request("year")をそもそも受け取れてないのじゃないかととも思えますが、全体が分からないので、このような時はSQLを実行する前に書き出してみましょう。
Response.Write Session("STR_DATE")
でちゃんと値がSessionに格納されているか確認してみてください。
色々人により違うかも知れませんが、私はSessionやRequestメソッドで得た値は一度変数に代入してから文字列の連結をすべきだと思います。
あとSQLでシングルクォーテーションで括ってあればNullではなくて空文字で格納されるはずですが...
この回答への補足
回答、ありがとうございます。
Response.Writeで途中までは、Sessionに値が格納されていることは判明しました。
しかし、SQL実行時には空の状態になっているようです。
そこでお伺いしたいのですが、Sessionで得た値を変数に代入するにはどのような方法を取ればよいのでしょうか。
程度の低い質問で申し訳ございません。
何卒お教えいただければ幸いです。
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
「%」を使って、偶数か奇数かを...
-
[VBS]変数を定数に変換する方法...
-
テキストボックスの値を変数に...
-
整数xxxが大き過ぎますというエ...
-
Accessコンボボックスにレコー...
-
ExcelのVBAでをA列に第0〜19項...
-
EXCEL/VBA 変数の値をクリップ...
-
構造体からレコードセットへの代入
-
python の 連鎖代入の文法
-
変数にオフセットが付いている...
-
processing エラーで、 "cannot...
-
プログラミングで変数と関数の...
-
切り上げ
-
i++と++i ってどう違うのですか?
-
vba 最大値 条件分岐
-
インクリメント演算子の前置(+...
-
JavaScriptをURLから直接実行し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
EXCEL/VBA 変数の値をクリップ...
-
C言語 列挙型(enum型)変数について
-
テキストボックスの値を変数に...
-
Variant型で宣言してるのにEmpt...
-
[VBS]変数を定数に変換する方法...
-
python の 連鎖代入の文法
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
-
整数xxxが大き過ぎますというエ...
-
プログラミングで変数と関数の...
-
構造体からレコードセットへの代入
-
コマンドプロンプト バッチ|結...
-
stdpicture型の変数に、、
-
無名関数のメリットがよくわか...
-
i++と++i ってどう違うのですか?
-
DataTableの値を変数に代入したい
-
Accessコンボボックスにレコー...
-
VBA 1行で複数の代入を行った...
おすすめ情報