VIDTAKER.COM

Q&A

JavaサーブレットからMS SQLはストアドプロシージャを実行する - Microsoft SQL Serverが応答


私は、フォームを処理するサーブレットを使用して、そのデータを送信しようとしている
SQLサーバーストアドプロシージャを。私は、WebLogic 8アプリケーションを使用しています。サーバー。
私はデータベースの情報を取得することができるので、私は自分のアプリケーションを知っている
サーバーはデータベースに話すことができます。
私は失敗を決定したときに次のステートメントは、発生
実行:cstmt.execute();(printlnのステートメントの障害のために
その後)配置されます。私が実行しようとした後、次のエラーを取得する
ストアドプロシージャの呼び出し:
の[Microsoft] [ODBC SQL Serverのドライバ] [SQL Server]のは、ストアドが見つかりませんでした
プロシージャ'insertTheForm'

ユーザー名とパスワードは私が接続するために使用しているWindowsユーザです
管理者権限。また、ODBC接続に関連付けられて - と
コースは完全な権限を持つデータベースユーザー..です。私は実行可能
ストアドプロシージャのアクセス許可も設定します。私は、マイクロソフトをした
推奨されるレジストリなど(の修正前の
エラー: http://support.microsoft.com/default...en-us; Q238971) 。
私は何かが欠けかな?私は以下の私のサーブレットのコードを掲載した。

任意のヘルプをありがとう!
ディネッシュ

formHandlingServlet.class

-------------------------
パッケージショーミ;
/ *
* formHandlingServlet.java
*
* 2003年7月6日、7時01時作成
* /
インポートのjavax.servlet .*;
輸入javax.servlet.http .*;
なります。import java.io. *;
インポートjava.sqlの.*;
輸入java.text.DateFormatに。


/ **
*
* @著者管理者
* /
パブリッククラスformHandlingServletはHttpServletを(拡張

プライベート静的最終列email1 ="電子メール";
プライベート静的最終列password1 ="password1";
プライベート静的最終列password2は="パスワード2";
プライベート静的最後の文字列のdisplayname ="displaynameは";

接続dbConn = nullを。

/ / SQLサーバーへの持続的connecitonを作成する

ボイドのinit()を公開ServletExceptionががスローされます

文字列jdbcDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
文字列dbURL =は"jdbc:odbcで:Con2";
文字列usernameDbConn ="ディネッシュ";
文字列passwordDbConn ="werty6969";

試みる

Class.forNameの(jdbcDriver)のnewInstance();
dbConn =したDriverManager.getConnection(usernameDbConn dbURL、
passwordDbConn);

(ClassNotFoundExceptionが電子)キャッチ

("JDBCドライバの新しいUnavailableExceptionを投げるが見つかりません:"+ dbURL);

(例外:SQLException e)のキャッチ

("エラー:"+新規UnavailableExceptionを投げる電子);

(例外e)のキャッチ

("エラー:"+新規UnavailableExceptionを投げる電子);



します。public void doPostメソッド(HttpServletRequestを要求、をHttpServletResponse
応答は)ServletExceptionが、IOExceptionがスローされます

response.setContentType("テキスト/プレーン");
PrintWriterを出力= response.getWriter();

/ / register.jspからパラメータ情報を抽出する

文字列email1 = request.getParameter("email1");
文字列password1 = request.getParameter("password1");
文字列password2は= request.getParameter("password2は");
文字列のdisplayname = request.getParameter("displaynameは");

試みる

/ /ストアドプロシージャの呼び出し可能なステートメントを確認します。
/ /これは、4つのパラメータを持つ

のCallableStatement cstmt = dbConn.prepareCall(
"(コードinsertTheForm(?、?、?、?)}");

/ストアドプロシージャの入力パラメータの値を設定/

out.println(以下、"ストアドプロシージャを呼び出す。。。。");
(1、email1)cstmt.setString;
(2、password1)がcstmt.setString;
(3、password2)をcstmt.setString;
(4、displaynameは)cstmt.setString;
/ /ここでは、入力パラメータが設定されて、我々は実行するために進むことができます
ストアドプロシージャをinsertTheForm

()cstmt.execute;
out.println("ストアドプロシージャ")が実行される。


(例外:SQLException e)のキャッチ

("エラー:"+新規UnavailableExceptionを投げる電子);









0 Replies