dポイントプレゼントキャンペーン実施中!

ASPで(DBと連結)登録画面を作っています。
登録フォームから「登録」ボタンを押したあとのDBへデータを入力(更新)する時のSQL文で手間取っています。

「パラメータが少なすぎます。1 を指定してください。
」とエラーが出ます。フィールド名は間違っていません。

cateid付近のシングル・ダブルクオーテーションの書き方がおかしいのかなとも思いますが長時間見てますがどこがおかしいか分かりません。
--------------
StrSQL = "insert into contents ("
StrSQL = StrSQL & " title, "
StrSQL = StrSQL & " naiyou, "
StrSQL = StrSQL & " hiduke, "
StrSQL = StrSQL & " cateid "
StrSQL = StrSQL & ") values ("
StrSQL = StrSQL & "'" & title & "',"
StrSQL = StrSQL & "'" & naiyou & "',"
StrSQL = StrSQL & "#" & hiduke & "#,"
StrSQL = StrSQL & " cateid "
StrSQL = StrSQL & ")"
--------------
cateidは入力フォームのセレクトボックスからの値で数値型です。
ご助言頂ければ助かります。

あとなぜinsert文、update、delete文のときはStrSQL = "・・・"と「""」で囲むのでしょうか。
長文すみません。宜しくお願いします。

A 回答 (4件)

こんにちは。



cateidが数値型でしたら、
StrSQL & cateid
になるかなと思います。
(ASPあまりさわったことないので間違えてたらすいません)

実際に画面にStrSQLの内容を表示してみるとデバックしやすいですよ。

>あとなぜinsert文、update、delete文のときはStrSQL= "・・・"と「""」で囲むのでしょうか。

SQL「文」というだけあって、queryとして実行される
SQLは単純な文字列の集合なので
囲む必要があります。
    • good
    • 0
この回答へのお礼

早速StrSQL & cateidでしてみました。
動くようになりました!
またStrSQLの内容を表示してデバックも試してみました。前のだと
--------
insert into contents ( title, naiyou, hiduke, cateid ) values
('reponse','write',#2005/02/16#,cateid)
--------
とcateidの部分の値が「1」等入らずおかしかったです。

SQL「文」というだけあって・・の部分も参考になりました。
大変感謝です。ありがとうございました。

お礼日時:2005/02/16 14:23

#3です。



"cateid"という「文字」ではなく、"cateid"という「ファンクションの返り値」ですね。

SQL文として、cateid の中身の数値でなく、cateid という文字が書かれているので、cateid というストアドファンクションを探しに行っているものと思われます。
    • good
    • 0
この回答へのお礼

cateid というストアドファンクションを探しに行っている・・等大変参考になりました。
補足込みいただき、ありがとうございました。これでSQL文から開放されて次のステップに進めます。

お礼日時:2005/02/16 14:29

このSQL文ですと、cateid に、"cateid" という文字をいれようとします。


このばあい、#1の方が言っているとおり、

StrSQL = StrSQL & cateid

と書くのが正解ですね。
    • good
    • 0

>StrSQL = StrSQL & " cateid "



ですが、cateid というのが変数でしたら
間違ってますね

StrSQL = StrSQL & cateid

でよろしいのでは?
    • good
    • 0
この回答へのお礼

やはりcateid の部分でした。数時間のSQL文の悩みとイライラが解決できて良かったです。本当にありがとうございました。

お礼日時:2005/02/16 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!