日期:2014-05-18  浏览次数:20812 次

关于MSSQL连接并删除、插入操做的问题!!!谢谢了,急啊
各位大虾大家好:
小弟刚学jsp,写了一个小程序,作用是把本地数据库中的数据取出,连接远程数据库,把条件相同的数据在远程删除,然后插入新的数据到远程数据库。可是我在自己的机器上给vm ware里装的win2k传数据时一切正常,拿到单位的局域网上就传输不了,不知道是为什么,请指教。下面的程序,只实现插入的功能。
运行时,错误被catch捕获,提示数据库操作错误,把try和catch去掉可以传,但提示http-500错误。不知道为什么,请指教。传输的机器为:win2k server+mssql2000,数据库结构完全一致。谢谢了
//////////////Datalink.java
package com.xfjssq;

import java.sql.*;

public class Datalink {
private Connection con;
private Statement st;
private ResultSet rs;
private CallableStatement cs;
private String sql;
private String classname="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url="jdbc:microsoft:sqlserver://localhost:1433;Database=xfjssq";
//private int i;
public Datalink(){
try{
Class.forName(classname);
}catch(Exception e){
e.printStackTrace(System.err);
System.out.println("111");
}
}
public Connection getCon(){
try{
con=DriverManager.getConnection(url,"sa","fssy_118");
con.setAutoCommit(true);
}catch(SQLException e){
e.printStackTrace(System.err);
System.out.println("222");
}
return con;
}

public Statement getSta(){
try{
getCon();
st=con.createStatement();
}catch(Exception e){
e.printStackTrace(System.err);
System.out.println("333");
}
return st;
}

public ResultSet getRes(String sql1){
try{
getCon();
//sql="exec sp_addlinkedserver 'sy_link','','SQLOLEDB','"+sql1+"'";
//sql+="exec sp_addlinkedsrvlogin 'sy_link','false',null,'sa','fssy_118'";
//System.out.println(sql);
//rs=st.executeQuery(sql);
sql="{CALL link('"+sql1+"')}";
cs=con.prepareCall(sql);
rs=cs.executeQuery();
}catch(Exception e){
e.printStackTrace(System.err);
System.out.println("444");
}
return rs;
}
}



/////////////////////////////////////////////////////////////////
//////////////////////csc.jsp////传输jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8" import="java.sql.*"%>
<%! ResultSet rs,rs1,rs2; String xzlx,qsrq,jzrq,ipaddress;Connection con1,con2;Statement st1,st2;String sql1,sql2;int i;%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="/img/bgimg.jpg">
<jsp:useBean id="data" class="com.xfjssq.Datalink" scope="page"/>
<jsp:useBean id="db" class="com.xfjssq.DB" scope="page"/>
<%
xzlx=String.valueOf(session.getAttribute("xzlx"));
ipaddress=String.valueOf(session.getAttribute("ipadress"));
qsrq=String.valueOf(session.getAttribute("qsrq"));
jzrq=String.valueOf(session.getAttribute("jzrq"));
///////数据链路通道定义
try{
rs=data.getRes(ipaddress);

}catch(Exception e){
e.printStackTrace(System.err);
out.println("连接远程数据库失败!!!");
}
//rs.close();
////////连接本地数据库
try{
con1=db.getCon();
con2=db.getCon();
st1=con1.createStatement();
st2=con2.createStatement();