質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

Q&A

解決済

1回答

854閲覧

ASPでのストアド実行について

takataka

総合スコア6

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

0グッド

0クリップ

投稿2015/01/13 08:32

初めまして。
クラシックASPにて、ページを作成しています。

ASPでストアドを実行しているのですが、うまくいきません。
サーバー側で以下のように記載しています。

sscheckkekka = split(scheckkekka, ",") 'チェック結果のリスト

For i = 0 To UBound(sscheckkekka)

Set rsgyousya = connectDB.Execute("gyousyacopy '" & sCompanyID & "','" & sshiirecode & "','" & skana & "','" & skanji & "','" & stel & "','" & sfax & "','" & snaibu & "','" & sscheckkekka(i) & "'", updcnt, adCmdText)

Next

「gyousyacopy」がストアド名です。
問題なのは、'" & sscheckkekka(i) & "'の部分で、
ここに例えば、'" & 9000 & "'などと入れて実行すると、問題なくストアドは実行されます。

試しにFor ~ Next部分も省略して、
sscheckkekkaも配列番号を入れた以下のようなものを試しましたが、

Set rsgyousya = connectDB.Execute("gyousyacopy '" & sCompanyID & "','" & sshiirecode & "','" & skana & "','" & skanji & "','" & stel & "','" & sfax & "','" & snaibu & "','" & sscheckkekka(0) & "'", updcnt, adCmdText)

やはりストアドは実行されませんでした。
'" & sscheckkekka(0) & "' ここ部分の「'」か「"」の数の問題だと思い、いろいろ試してみましたが、うまくいきませんでした。

もしご存知の方がいらしゃいましたら、ご助言いただけると助かります。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

やみくもにコードを変更して実行してみるのではなく、画面なりにSQL文を出力してその文が正しいか、値が問題ないかなどを切り分けてみてはどうでしょうか。
例えば、以下のようにSQL文を変数に格納して画面に出力したり、、、

lang

1' 変数にSQL文を格納 2sql = "gyousyacopy '" & sCompanyID & "','" & sshiirecode & "','" _ 3 & skana & "','" & skanji & "','" & stel & "','" & sfax & "','" _ 4 & snaibu & "','" & sscheckkekka(0) & "'" 5 6' 画面に出力 7Response.Write sql & "<br />" 8 9' SQLを実行 10Set rsgyousya = connectDB.Execute(sql, updcnt, adCmdText)

そして、画面なりに出力されたSQL文を直接実行してみて、エラーがないかを確認したり、値を変えてみたりすると解決するかも。

投稿2015/01/14 02:18

harmar229

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takataka

2015/01/14 06:03

コメントありがとうございました。 まとめてでは、なかったのですが、 1つ1つは出力して、値が入ってので、大丈夫と思ってました。 よくよく見ると、split(scheckkekka, ",")のせいか、 前にスペースが入ってたことが判明しました。 insertする項目が、char(4)だったのに、スペースが入ったせいで、5桁のデータが送信されていたようです。 sql分にて、スペースを削除することでs、うまくいきました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問