JDBC调用Sql server 2005 存储过程出现的问题
环境:JDK1.5
数据库:Sql server 2005 +sp2
JDBC驱动:sqljdbc.jar
测试类代码如下:
import java.sql.*;
public class test {
/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://192.168.1.168:1433;SelectMethod=cursor;DatabaseName=DBName", "sa", "sa");
//PreparedStatement ps = con.prepareCall("exec Proc_checkPDDateTime '00','00'"); --使用PreparedStatement也可以
CallableStatement ps = con.prepareCall("{call dbo.Proc_checkPDDateTime('1602327','20100526162514')}");
//{第一种方式} 两种方式调用存储过程的返回值都可以
// ResultSet rs= ps.executeQuery();
// if(rs.next()){
// System.out.println("--"+rs.getString(1)+"--");
// }
//{第二种方式}
if(ps.execute()){ --如果ps执行后返回的是ResultSet,那么ps.execute返回True ,且必须要通过ps.getResultSet()方法获得结果集
if(ps.getResultSet().next()){
System.out.println("--"+ps.getResultSet().getString(1)+"--");
}
}
}
}
运行时,提示如下错误:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 无法在给定的语句中打开服务器游标。请使用默认结果集或客户端游标。
at com.microsoft.sqlserver.jdbc.SQLServerException.makefromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPrepa
相关文档:
本文章原创于www.yafeilinux.com 转载请注明出处。
接着上一篇教程。
二,在SQL语句中使用变量。
我们先看下面的一个例子,将“查询”按钮的槽函数更改如下:
void Widget::on_pushButton_clicked()
{
QSqlQuery query;
query.prepare(“insert i ......
sql server 2005 简单运用函数
1.null 函数
用法与oracle中nvl()类似,处理函数为isnull(),
例如:
select ename,sal+isnull(comm,0)
from emp
go
isnull(comm,0)的用法是: comm为null 则返回0 否则为 comm的值。
2.V ......
一、分页写法小例:
SELECT FIRST 10 templateid,code,name from template ;
SELECT FIRST 10 SKIP 10 templateid,code,name from template ;
SELECT * from shop ROWS 1 TO 10; –firebird2.0支持这种写法
二、显示表名和表结构
SHOW TABLES;
SHOW TABLE tablename;
四、更新字段注释
......
sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:
-------------------------------------------- ......