Java - Ejecutar sp en sql server desde java.

   
Vista:

Ejecutar sp en sql server desde java.

Publicado por Delfino Morales (2 intervenciones) el 21/05/2016 05:51:05
Hola buenas tardes. Antes que nada espero todos estén bien de salud y ofrezco disculpas por mi mala ortografía y redacción.

El motivo por el cual acudo a este foro es porque estoy atorado en la ejecucion de un proceso almacenado en sql server desde java, he googleado y he utilizado todos los ejemplos que encuentro, pero todos me dan el siguiente error (com.microsoft.sqlserver.jdbc.SQLServerException: The error description is 'Invalid at the top level of the document.'.).

Sinceramente ya no se por donde puede estar el problema, cabe mencionar que el sp solo necesita un parametro de entrada. A continuacion les anexo el incio del sp, no podre todo el codigo ya que tienen 1126 lineas, y quiero aclarar que este sp no fue echo por mi, yo solo quiero utilizarlo desde un jframe.

1
2
3
4
PROCEDURE [dbo].[spRecibirCR]
@xml	text,
@NoAfectar bit = 1,
@Sesion	varchar(50) = NULL

Inicia con estos tres parametros, pero el que ocupa es el primero ya que es un archivo tipo xml el cual procesa y lo inserta un las bases de datos.

Mi codigo en java es el siguiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void bttSubirVentaActionPerformed(java.awt.event.ActionEvent evt) {
 
String SQL = "spRecibirCR'"+txaXml.getText()+"'";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
this.muestraData(rs);
}
 
public void muestraData(ResultSet r) throws Exception
{
ResultSetMetaData rmeta= r.getMetaData();
int numColumnas= rmeta.getColumnCount();//Cuántas columnas 
txaResultadoProceso.setText("");
for(int i=1; i<=numColumnas; ++i)
//obtiene nombre de columna
txaResultadoProceso.append(rmeta.getColumnName(i) + "\t");
txaResultadoProceso.append("\n");
while(r.next())
{ // hasta fin de archivo
for(int i=1;i<=numColumnas;++i)
{
txaResultadoProceso.append(r.getString(i) + "\t");
}
txaResultadoProceso.append("\n");
}
}

Lo estoy ejecutando de esta manera, lo que quiero es que si el xml es procedado correctamente el sp devuelve un Null, y si xml ya fue procesado devuelve Fecha Trabajo Incorrecta.

Quiero aclarar que me estoy inciando en el mundo de java con NetBeans IDE 8.1, siceramente estoy atorado en esto y agradeceria cualquier ayuda.

Saludos, y disculpen las molestias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder