要求在oracle服务器中使用Java编写的存储过程去连接一个SQLServer数据库服务器并要得到相应的记录集返回给调用该存储过程的客户程序。现在我已经完成了连接到SQL Server数据库,并可以得到数据,单是现在我无法返回一个记录集到客户程序。你可以参考如下的资源。
http://www.oracle.com/technology//oramag/code/tips2002/021002.html(该文章实现了,连接到其他的数据库服务器,并返回了取得值。但是并不是返回的记录集)。
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/refcur/index.html(这个是我要的效果,但是他连的是数据库服务器是一个Oracle的。我想连的是Sql Server)。
http://www.oracle.com/technology//oramag/code/tips2002/021002.html(该文章实现了,连接到其他的数据库服务器,并返回了取得值。但是并不是返回的记录集)。
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/refcur/index.html(这个是我要的效果,但是他连的是数据库服务器是一个Oracle的。我想连的是Sql Server)。
CREATE PROCEDURE DINYA_TEST AS
BEGIN
SELECT * FROM T_USER
RETURN
END
GO--当然数据库中要有表T_USER,测试表
--C#中:
using System.Data;
using System.Data.SqlClient;private string connectsql="Data Source=roma113;Integrated Security=SSPI;Initial Catalog=roma_data";private SqlConnection ConnectSqlServer()
{
SqlConnection connSql=new SqlConnection();
connSql.ConnectionString=connectsql;
connSql.Open();
return connSql;
}private void button1_Click(object sender, System.EventArgs e)
{
DataSet ds=new DataSet();
SqlCommand cmd=new SqlCommand();
cmd.CommandText="DINYA_TEST";
cmd.CommandType=CommandType.StoredProcedure;
cmd.Connection=new Form1().ConnectSqlServer();
SqlDataAdapter da=new SqlDataAdapter(cmd);;
da.Fill(ds,"t");
MessageBox.Show(ds.Tables["t"].Rows[0][1].ToString());
}
--已经.net2003+sql server 2000中测试通过.
这里就会把从表中得到的数据填充记录集.然后就可以对记录集进行处理了.