1

netbeans で sqlserver 関数を呼び出すためのヘルプが必要です..まず、英語が下手で初心者で申し訳ありません..

私はnetbeansでこのコードを使用しました:

public void generateNoOrder()
{
    ResultSet rset = null;
    con = conf.makeConnection();
    //String result="";
    try{
        CallableStatement cs = con.prepareCall("{call get_date()}");
        cs.registerOutParameter(1, java.sql.Types.CHAR);
        rset = cs.executeQuery();
        //while(rset.next())
        //{
         String result = cs.getString(1);
        //}
        System.out.println(result);
    }
    catch (Exception ex){
        System.out.println(ex.getMessage());
        //return null;
    }
    finally {
        conf.closeConnection(con, s, rset);
    }
}

この関数は入力パラメータを必要とせず、この関数は char[12] 型を返します

エラー メッセージは次のとおりです。無効なパラメーター インデックス 1。

助けてください、前にありがとう!

4

1 に答える 1

0

入力パラメーターが不要で、それが呼び出している関数である場合は、() なしで試してください。

CallableStatement cs = con.prepareCall("{call get_date}")

http://www.java2s.com/Code/JavaAPI/java.sql/ConnectionprepareCallStringsql.htmで見られるように

また、出力パラメーターを取得しようとしているため、出力パラメーターも登録する必要があります。次のようになります。

// Call a function with no parameters; the function returns a VARCHAR
// Prepare the callable statement
cs = connection.prepareCall("{? = call get_date}");

// Register the type of the return value
cs.registerOutParameter(1, java.sql.Types.CHAR);

// Execute and retrieve the returned value
cs.execute();
String result = cs.getString(1);

MySQL関数を呼び出すときにうまくいきました.SQL Server IMAOで動作するはずです。

于 2012-05-18T16:46:14.090 に答える