Foro de elhacker.net

Programación => Java => Mensaje iniciado por: marc85 en 26 Noviembre 2014, 17:55 pm



Título: Enviar un arreglo desde netbeans a sql server
Publicado por: marc85 en 26 Noviembre 2014, 17:55 pm

Hola, estoy usando netbeans 8.0.1 y sql server 2000 deseo saber como puedo enviar un arreglo como parámetro a sql server, los valores del arreglo contienen los nombres de los campos de la tabla y los deseo usar en el select, están separados por comas (,) y si pudieran darme una idea de como separar de nuevo esos valores en sql server para ubicarlos en el select se los agradecería.

Gracias de antemano


Título: Re: Enviar un arreglo desde netbeans a sql server
Publicado por: Shell Root en 26 Noviembre 2014, 18:18 pm
El comando EXEC, puede servirte!
Código
  1. EXECUTE a CHARACTER string
  2. { EXEC | EXECUTE }
  3.    ( { @string_variable | [ N ]'tsql_string' } [ + ...n ] )
  4.    [ AS { LOGIN | USER } = ' name ' ]
  5. [;]

Por ejemplo,
Código
  1. DECLARE @sqlCommand VARCHAR(1000)
  2. DECLARE @columnList VARCHAR(75)
  3. DECLARE @city VARCHAR(75)
  4. SET @columnList = 'CustomerID, ContactName, City'
  5. SET @city = '''London'''
  6. SET @sqlCommand = 'SELECT ' + @columnList + ' FROM customers WHERE City = ' + @city
  7. EXEC (@sqlCommand)


Título: Re: Enviar un arreglo desde netbeans a sql server
Publicado por: marc85 en 26 Noviembre 2014, 18:39 pm
en la aplicación yo tengo esto:

//Agregando los campos select
        Object seleccion []= new String [27];
        for(int i=0; i < modelo.getSize(); i++)
        {
            if (i<modelo.size()-1)
            {
                seleccion=(String) modelo.getElementAt(i)+",";
            }
            else
            {
                seleccion=(String) modelo.getElementAt(i);
            }
        }

Con este código capturo los campos que el usuario desea ver, es decir que todos se almacenan en la variable "seleccion", ahora deseo agarrar esa variable y enviarla a sql server, el detalle es que la selección de los campos es dinámica no es estática, por eso debo enviar ese arreglo a sql server y ponerlos después del select, espero me puedas ayudar


Título: Re: Enviar un arreglo desde netbeans a sql server
Publicado por: marc85 en 26 Noviembre 2014, 18:44 pm
try
            {
                cst=con.prepareCall("{call buscar_solicitante(?,?,?)}");
                cst.setArray(1, seleccion);
                cst.setString(2,nombre);
                cst.setString(3,"");
                int rpta=cst.executeUpdate();
            }
            catch(Exception e)
            {
                JOptionPane.showMessageDialog(null, "No se pudo modificar el tipo de anestesia debido a: "+e);
            }

El problema, está en que al enviarlo de esta manera me manda error imagino que lo estoy haciendo mal pero no tengo ni idea de como enviarlo