2012-05-11 6 views
2

を変換するのCallableStatementこんにちは、私はC#のJavaコードを変換する方法を理解しようとしています、私は、Javaに関するいくつかのチュートリアルを読んで、私はこのコードの行を変換する方法で方法を見つけるいけない:のJava -

CallableStatement cstmt = con.prepareCall("?=CALL 
cstmt.registerOutParameter(1, Types.JAVA_OBJECT); 
cstmt.execute(); 
ResultSet rs = (ResultSet) cstmt.getObject(1); 

私はどのように私はそれを翻訳することができ、

CUBRIDConnection con = new CUBRIDConnection(ConnectionString); 
    CUBRIDCommand com = new CUBRIDCommand(); 
    com.CommandType = CommandType.StoredProcedure; 
    com.Connection = con; 
    com.CommandText = "call mySP();"; 
    com.Parameters.Add("?=p", CUBRIDDataType.CCI_U_TYPE_RESULTSET).Direction = 
     ParameterDirection.Output; 
    con.Open(); 
    DbDataReader df = com.ExecuteReader(CommandBehavior.SingleResult); 
    //some stuff 
    con.Close(); 

このいけない仕事をしてみてください?

+0

あなたは* C#でコーディングされたものに、Javaでコーディングされた*アルゴリズムを翻訳することがあります。 JavaやC#の基礎となるライブラリの大きな違いは、アプリケーションで使用する必要があるためです。 –

+0

は、SQL ServerまたはOracleデータベースを指すJavaアプリケーションですか? –

+0

@Luiggi Mendoza:[CUBRID](http://www.cubrid.org/)データベース: "** CUBRIDConnection **" – Eye

答えて

1

私はそれが仕事を助けるために改善することができ、次の行概説しているこの

SqlConnection con = new SqlConnection("your connection string"); 
    SqlCommand com = new SqlCommand(); 
    com.CommandType = CommandType.StoredProcedure; 
    com.Connection = con; 
    com.CommandText = "yourstoredprocedurename"; //no paranthesis or call key word just procedure name 
    SqlParameter parameter = new SqlParameter("yourparametername", SqlDbType.Binary); //just parameter name no questionmark 
    parameter.Direction= ParameterDirection.Output; 
    com.Parameters.Add(parameter); 
    con.Open(); 
    var df = com.ExecuteReader(CommandBehavior.SingleResult); 
    //some stuff 
    con.Close(); 
1

してみてください:しない限り、あなたはあなたのたconnectionStringに「ValidConnectionString」を交換する必要があります(:

SqlConnection con = new SqlConnection("ValidConnectionString");  

com.CommandText = "storedProcedureName"; // You need to give the command the actual SP name, call mySP(); is invalid. 

com.Parameters.Add("@ParameterName", SqlDbType.Binary).Direction = ParameterDirection.Output; // Parameters are usually prefixed with @ParameterName (some people omit the @) however this is preference amongst developers. 

注意をConnectionStringはこの情報を保持する変数です)。接続文字列は次のようになります。Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;これはSQL Server 2008データベースに接続します。私は次のように使用してそれを解決

http://www.connectionstrings.com/

関連する問題