`
123003473
  • 浏览: 1064611 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

sysbase过程调用方式

 
阅读更多
package minusyhd;

import java.io.UnsupportedEncodingException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
public class CopyOfMinusYHD {
    private static String driverName= "com.sybase.jdbc4.jdbc.SybDataSource";
    //192.168.40.159,4018
    private static String url = "jdbc:sybase:Tds:127.0.0.1:7001/card?charset=cp850";
    private static String username = "sa";
    private static String password = "";
    static
    {
        try{
            Class.forName(driverName);
        }catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
    }
    public Connection getConnection()
    {
        Connection myConnection  = null;
        try {
            myConnection  = DriverManager.getConnection(url, username, password);
        }catch (Exception ex) {
            ex.printStackTrace();
        }
        return myConnection;
    }
    
    
    /**
     * 释放数据库连接
     */
    public static void release(Connection conn, Statement cs, ResultSet rs){
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(cs != null){
            try {
                cs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * @param args
     * @throws UnsupportedEncodingException 
     */
    public static void main(String[] args) throws UnsupportedEncodingException {
        getDataFromMasterMultiResultSet();
    }
/**
    IF OBJECT_ID ('dbo.Pro_getSudent') IS NOT NULL
    DROP PROCEDURE dbo.Pro_getSudent
GO

create procedure Pro_getSudent    
(
@startIndex INT,
@endIndex INT ,
@errorCode INT output,
@errorMsg VARCHAR(255) output
) 
as     
begin     
    PRINT 'create temp table'
    create table #pageTemp       
    (       
    ID numeric(15,0) IDENTITY,
    nid int 
    ) 
    set rowcount @endIndex
    insert into #pageTemp(nid) select ID from T_STUDENT ORDER BY ID
    select @errorCode=1,@errorMsg='用于测试的error message 信息'           
    select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
    and t.ID>=@startIndex 
end     
GO
     */
    public static void getDataFromMasterInBetweenOutAndSelect() throws UnsupportedEncodingException
    {
        CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
        Connection conn = null;
        CallableStatement cs = null;
        ResultSet rs = null;
        try
        {
            conn = mySybaseTest.getConnection();
            cs = conn.prepareCall("{call Pro_getSudent(?,?,?,?)}");
            cs.setInt(1, 1);
            cs.setInt(2, 5);
            cs.registerOutParameter(3, Types.INTEGER);
            cs.registerOutParameter(4, Types.VARCHAR);
            cs.execute();
            System.out.println("3:"+cs.getInt(3));
            System.out.println("4:"+new String(cs.getString(4).getBytes("ISO-8859-1")));
            rs = cs.executeQuery();
            while(rs.next())
            {
                System.out.println(new String(rs.getString(2).getBytes("ISO-8859-1")));
            }
        }
        catch (SQLException ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            release(conn,cs,rs);
        }
    }
 
    
    
/**
    IF OBJECT_ID ('dbo.Pro_getSudent2') IS NOT NULL
    DROP PROCEDURE dbo.Pro_getSudent2
GO

create procedure Pro_getSudent2    
(
@startIndex INT,
@endIndex INT ,
@errorCode INT output,
@errorMsg VARCHAR(255) output
) 
as     
DECLARE
@aaa VARCHAR(1)
begin     
    PRINT 'create temp table'
    
    create table #pageTemp       
    (       
    ID numeric(15,0) IDENTITY,
    nid int 
    ) 
    --SELECT @aaa = @startIndex
    set rowcount @endIndex
    insert into #pageTemp(nid) select ID from T_STUDENT ORDER BY ID
     
    select @errorCode=1,@errorMsg='用于测试的error message 信息'           

    select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
    and t.ID>=@startIndex 
     
    select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
    and t.ID>=@startIndex  ORDER BY O.name DESC
end     
GO
     */
    public static void getDataFromMasterMultiResultSet() throws UnsupportedEncodingException
    {
        CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
        Connection conn = null;
        CallableStatement cs = null;
        ResultSet rs = null;
        try
        {
            conn = mySybaseTest.getConnection();
            cs = conn.prepareCall("{call Pro_getSudent2(?,?,?,?)}");
            cs.setInt(1, 1);
            cs.setInt(2, 5);
            cs.registerOutParameter(3, Types.INTEGER);
            cs.registerOutParameter(4, Types.VARCHAR);
//            cs.execute();
            cs.executeQuery();//或者cs.execute();
            System.out.println("ee:"+cs.getInt(3));
            System.out.println("ff:"+cs.getString(4));
            rs = cs.executeQuery();
            while(rs.next())
            {
                System.out.println(rs.getInt(1));
                System.out.println(rs.getString(2));
            }
            System.out.println("=================");
            if(cs.getMoreResults())
            {
                System.out.println("ddd");
                rs = cs.getResultSet();
                while(rs.next())
                {
                    System.out.println(rs.getInt(1));
                    System.out.println(rs.getString(2));
                }
            }
        }
        catch (SQLException ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            release(conn,cs,rs);
        }
    }
 
    
    public static void getStudent()
    {
        CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        try
        {
            conn =  mySybaseTest.getConnection();
            st = conn.createStatement();
            rs = st.executeQuery("SELECT * FROM T_STUDENT");
            while(rs.next())
            {
                System.out.println(rs.getInt(1));
                if(null==rs.getString(2))
                {
                    System.out.println("dddddddddddd");
                }
                System.out.println(rs.getString(2));
                System.out.println(rs.getString(3));
            }
        }
        catch(Exception e)
        {
            System.out.println("搬数据异常");
            e.printStackTrace();
        }
        finally
        {
            release(conn,st,rs);
        }
    }
}



http://blog.csdn.net/rubyzhudragon/article/details/5049571
分享到:
评论

相关推荐

    sybase数据库存储过程调用外部JAVA

    总之,Sybase数据库支持通过存储过程调用外部Java程序,提供了一种灵活的方式来实现数据库中的复杂计算和任务调度。正确配置数据库环境,导入Java类,创建适当的SQL包装器,是实现这一功能的关键步骤。理解JNI调用...

    Sybase数据库存储过程的建立和使用

    Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由 SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理,指示调用成功或失败;...

    sybase 实现分页的存储过程

    ### Sybase 中实现分页技术的存储过程 #### 背景介绍 Sybase 是一款高性能的关系型数据库管理系统,广泛应用于金融、电信等对数据处理性能有极高要求的领域。在实际的应用场景中,常常需要从数据库中获取大量的数据...

    Sybase存储过程的建立和使用

    ### Sybase存储过程的建立和使用 #### 一、存储过程概述 Sybase的存储过程是一种预先定义并编译好的SQL脚本,集中存储在SQL Server数据库中。它结合了SQL语句和流程控制语句,能够实现复杂的业务逻辑处理。存储...

    sybase存储过程

    存储过程是由一个或多个SQL语句组成的程序,它们在Sybase数据库中存储并由用户通过SQL命令调用执行。与单独的SQL语句相比,存储过程具有可重用性,可以减少网络流量,提高系统性能,并且能够更好地封装数据库操作,...

    Sybase数据库SQL过程详解

    这种方式扩展了SQL语言的功能范围,使开发者能够在存储过程中实现更复杂的逻辑。例如: - **文件操作**:读写文件或目录的操作。 - **网络通信**:发送电子邮件、连接到其他数据库系统等。 - **数据处理**:执行...

    Java调用带参数的存储过程并返回集合

    本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle存储过程是一种预编译的SQL语句集合,它可以在数据库服务器端执行,提高性能,减少网络传输。`PROCEDURE.sql`...

    sybase 存储过程,视图 ,触发器等语法大全

    存储过程是在数据库中预编译的一系列SQL指令,能够通过单一的调用来执行复杂的操作,提高了性能并简化了应用程序的设计。 ##### 创建存储过程 创建存储过程使用`CREATE PROCEDURE`语句: ```sql CREATE PROCEDURE ...

    SYBASEIQ存储过程学习笔记中文最新版本

    本文旨在整理和分享关于SYBASE IQ存储过程的学习心得。存储过程允许我们将过程化的SQL语句存储于数据库内部,以便各类程序能够调用。这些存储过程不仅能够执行SQL操作,还能嵌入控制流语句,例如循环(LOOP)、条件...

    sybase数据库的使用文档,包括命令,函数,存储过程,错误等.zip

    在Sybase中,创建存储过程使用`CREATE PROCEDURE`语句,调用时只需给出其名称和参数。存储过程提高了代码的复用性和安全性,降低了网络通信成本。 4. **错误处理**: 在使用Sybase时,可能会遇到各种错误。Sybase...

    SybaseIQ存储过程学习笔记

    【Sybase IQ 存储过程详解】 Sybase IQ 是一种高效的数据仓库系统,它支持存储过程,这是一种在数据库中预编译的SQL语句集合,能够提升应用性能并简化复杂操作。存储过程允许用户将一系列操作封装起来,方便重复...

    sybase stored procedure

    Sybase 存储过程是 Sybase 数据库管理系统中的一个重要特性,它允许开发人员将一系列 SQL 语句、控制流程语句和其他数据库操作封装到一个可重用的单元中。存储过程可以提高应用程序的性能,增强安全性,并简化复杂的...

    SYBASE IQ存储过程学习笔记

    - 有三种方式传递存储过程的返回值:通过OUT或INOUT参数,返回结果集,或者使用RETURN语句。例如,创建一个计算平均薪资的存储过程: ```sql CREATE PROCEDURE AverageSalary(OUT avgsal NUMERIC (20,3)) BEGIN ...

    Sybase ASE ODBC Driver 下载

    **Sybase ASE ODBC ...总的来说,Sybase ASE ODBC驱动是连接到Sybase数据库的重要工具,它为开发者提供了方便、灵活和高效的数据访问方式。正确配置和使用ODBC驱动,可以确保应用程序与Sybase ASE数据库的无缝集成。

    pb程序恢复sybase数据库

    ### PowerBuilder中的存储过程调用 在PowerBuilder程序设计中,存储过程是预编译的SQL代码块,存储在数据库服务器上,可以被多次执行而无需重新编译。这不仅提高了执行效率,还简化了数据库操作的复杂性。PB提供了...

    sybase内部培训教材

    Sybase数据库作为一款历史...综上所述,Sybase内部培训教材通过深入浅出的方式,不仅提供了Sybase数据库的基础理论知识,还覆盖了实际操作中的各种细节和技巧,是IT从业者学习和掌握Sybase数据库不可或缺的宝贵资源。

    Sybase数据库最新dll sybase32位和64位.net的程序集

    在解压后,开发者需要将对应的32位或64位DLL添加到他们的.NET项目引用中,以便于编译和运行时能正确调用Sybase的数据库功能。 使用这些DLL时,开发者需要注意以下几点: 1. 选择正确的版本:根据应用程序的平台(32...

    sybase客户端封装源码

    8. **性能优化**:为了提高效率,客户端可能包含批量操作的支持,例如批量INSERT或批处理存储过程调用,以减少网络往返次数。 9. **安全性**:在实际应用中,客户端需要考虑数据安全,如使用预编译的SQL语句防止SQL...

Global site tag (gtag.js) - Google Analytics