Enviar un arreglo desde netbeans a sql server

Iniciado por marc85, 26 Noviembre 2014, 17:55 PM

0 Miembros y 1 Visitante están viendo este tema.

marc85


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

Shell Root

El comando EXEC, puede servirte!
Código (sql) [Seleccionar]
Execute a character string
{ EXEC | EXECUTE }
    ( { @string_variable | [ N ]'tsql_string' } [ + ...n ] )
    [ AS { LOGIN | USER } = ' name ' ]
[;]


Por ejemplo,
Código (sql) [Seleccionar]
DECLARE @sqlCommand varchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)
SET @columnList = 'CustomerID, ContactName, City'
SET @city = '''London'''
SET @sqlCommand = 'SELECT ' + @columnList + ' FROM customers WHERE City = ' + @city
EXEC (@sqlCommand)
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

marc85

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

marc85

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