Software Guru Conference & Expo 2014

conexion de SQL Server 2005

necesito hacer una conexion a SQL Server 2005 desde Jdeveloper, ya realicé ñp siguiente
1.-agregué el la ruta del archivo sqljdbc.jar al Classpath
2.-revise el contenido del orden de las carpetas y es el mismo donde busco la clase
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

como puedo verificar que mi CLASSPATH está correcto?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

Utiliza las properties

pon la siguiente línea en tu clase que carga el driver:

System.out.println("Classpath: " + System.getProperty("java.class.path"));

te va a decir el contenido de tu classpath y checas que este el jar del jdbc. Si esta el jar entonces significa que tu package está incorrecto (asumiendo que te esté marcando error).

sobres

Si me ejecutó

Ok, si me dió la ruta del Classpath, pero puse el .jar en la ruta y no me corria, lo descomprimi y puse la carpeta COM, y asi si me corrió

Muchas Gracias.!

Imagen de ezamudio

jTDS

Te recomiendo usar el driver jTDS para SQL Server en vez del de microsoft. A menos que MS ya haya mejorado su driver seriamente, éste corre mejor (y sabes que MS odia Java, por lo que no creo que hagan que su driver de JDBC sea tan bueno como el de .NET por ejemplo).

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Java Sources

desde un JavaSources de PL/SQL no me da esa opción con las properties, desde ahi quiero hacer una conexión a un Bd de SQL Server, alguien me podrá ayudar?

Java Sources

Por qué quisieras acceder SQL Server directamente desde un stored procedure Java está fuera de mi entendimiento. ¿Qué problema hay con establecer un dblink hacia SQL Server con Heterogeneous Services de Oracle y acceder a las tablas de SQL Server como si estuvieran dentro de tu instancia Oracle?

Saludos

Javier Castañón

jTDS

Ya tiene tiempo que Microsoft relanzó sus drivers JDBC y tiene disponible un muy controlador tipo 4 ¡con soporte para JDBC 4.0! (¿Alguien podría mencionar algún otro driver que soporte JDBC 4.0?) Limitantes: requieres JDK 5 y soporta sólo SQL Server 7 en adelante. No debería haber problema con ello, AFAIK JDK 1.4 y SQL Server 7 ya no son soportados por sus respectivos fabricantes. Muy buen driver el de Microsoft.

jTDS

(Creo que mi anterior respuesta se perdió)
¿Por qué? El driver de Microsoft es muy bueno, soporta JDBC 4.0, cosa que el driver jTDS dudo que haga. Y la mejora no es reciente, tiene al menos unos dos años. No le resto méritos al jTDS, pero si técnicamente tiene algún atributo superior al controlador de Microsoft, me encantaría saberlo.

Saludos

Javier Castañón

Imagen de ezamudio

jTDS

La verdad que hace mucho no me conecto a SQL Server, la última vez que lo hice todavía no estaba este driver de JDBC4 que mencionas y jTDS era la mejor opción. Pero si como dices, requiere Java 5 y sólo es de SQL Server 7 en adelante, entonces jTDS todavía tiene un uso: proyectos con Java 1.4 y SQL Server 6 o algun Sybase viejo. Créeme que de repente aparecen cosas así, proyectos viejos que funcionan y el cliente solamente requiere alguna modificación pero por distintas razones no quieren o no pueden aventarse un rewrite completo o migrar a Java 5 o actualizar la versión de su base de datos, etc etc.

un Dblink está consumiendo

un Dblink está consumiendo muchos recursos, quiero ver otra altrenativa

dblink consumiendo muchos recursos

Puede ser, depende del trabajo que lleves a cabo (en tus preguntas comentas la solución que propones, no el requerimiento que debes resolver, ¿me entiendes? por tanto resulta un tanto difícil sacar provecho de la experiencia de los demás en cuanto a alternativas de solución al estar restringido de antemano el dominio de la solución). En fin, especulemos pensando que "consume muchos recursos" es sinónimo de "funciona lento en mi aplicación OLTP", y asumiré que el DBA es un as que se las sabe de todas todas de Oracle:

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4568...

En Oracle Magazine, hace muchos años salió un artículo que explicaba lo que necesitas. Ya no está disponible en los archivos, pero gracias a Google encontré el siguiente "tip" que hace referencia exactamente a la revista que ya no está disponible:

http://searchoracle.techtarget.com/tip/0,289483,sid41_gci910616,00.html

Parafraseando mi primera respuesta: "¿Qué problema hay con conectarse hacia SQL Server desde el middleware? Después de todo, un monitor transaccional nació para hacer ese tipo de trabajo." ;-)

Saludos cordiales

Javier Castañón

Imagen de jiturbide

jTDS

jTDS es una opcion si deseas crear pools de conexiones para SQLServer 7, por que el driver de Microsoft no soporta esa version (Trate de usar el de MS para un pool en WAS 5,6 y no funciono)
Pero si ya usas MSQL2005, usa el driver de microsoft por que en condiciones de alta concurrencia jTDS no funciona bien.

jTDS Tambien tiene problemas de lentitud a la hora de manejar fechas con cierto formato.

Saludos

jTDS y Microsoft Driver

Si recuerdo correctamente las versiones del driver de Microsoft que soporta SQL Server 7 son la 1.0 y la 1.1 que son las versiones malísimas de su driver, por lo que en dichos casos es mucho mejor el driver jTDS. Ojalá y ya nadie tenga que dar mantenimiento a un SQL Server 7 sobre NT 4

Imagen de beto.bateria

Saludos:Hice una conexion a

Saludos:

Hice una conexion a un stored procedure a traves de un jndi ahi va:

esto va en el web.xml

  <resource-ref>

    <description>MySQLSource</description>

    <res-ref-name>jdbc/mysql</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

  </resource-ref>

esto en el context.xml

<?xml version="1.0" encoding="UTF-8"?>

     <Resource

        name="jdbc/sqlserver"

        auth="Container"

        type="javax.sql.DataSource"

        username="user"

        password="pass"

        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

        url="jdbc:sqlserver://192.168.0.25:1433;databaseName=birtsa"

        maxActive="100"

                maxIdle="30"

                maxWait="10000"

     />

</Context>

asi creas la conexion

                InitialContext ctx = new InitialContext();

                Context envCtx = (Context) ctx.lookup("java:comp/env");

                DataSource ds = (DataSource) envCtx.lookup("jdbc/sqlserver" );

               Connection conn = ds.getConnection();

y asi lo llamas

        CallableStatement cstmt ;

        Connection conn;
        ResultSet resultSet = null;

        cstmt = conn.prepareCall("{call dbo.cliente(?, ?, ?)}");

        cstmt.setString(1, "value1");

        cstmt.setString(2, "value2");

        cstmt.setString(3, "value3");

        resultSet = cstmt.executeQuery();

Espero te sirva