Estimados. Tengo el siguiente código, qué, obviamente, no funciona: library(RODBC) benef <- odbcConnect ("SQL3PROAPS") # Conexión a un servidor csb <- odbcConnect ("SQL1PROAPS") # Conexión a otro servidor Personas <- sqlQuery (benef, " SELECT c.idProvincia , c.NombreProvincina , COUNT(idPersona) AS Personas FROM [Beneficiarios_Remediar_Redes].dbo.Beneficiarios_IdPersona_Mejor_IdCap b INNER JOIN [Operaciones_Consultas].dbo.uvw_CAPs c ON c.idCAP = b.idCAP GROUP BY c.idProvincia , c.NombreProvincina ") # Cierra conexión head(Personas) da error. El problema es que la base [Operaciones_Consultas] que contiene la tabla dbo.uvw_CAPs está en el servidor SQL1PROAPS, mientras que el query sólo me deja abrir una conexión a la vez (la conexión que se llama benef).- La consulta sería: ¿es posible hacer un query usando dos conexiones a dos servidores distintos? Probé algo así como Personas <- sqlQuery (benef, csb " etc... pero no funciona. Claro que puedo resolverlo en otra herramienta, pero mi idea es integrar en R.- Muchas gracias. -- Mauricio [[alternative HTML version deleted]]
Hola, ¿qué tal? Casi seguro, el problema no está en R sino en la configuración del servidor. Por la nomenclatura, parece que estás usando SQL Server y podría ayudarte esta entrada http://stackoverflow.com/questions/1144051/selecting-data-from-two-different-servers-in-sql-server Si puedes "enlazar" los dos servidores, teóricamente podrías ejecutar esa consulta desde R. Al fin y al cabo, R delega la ejecución de la consulta al "driver" ODBC y este en SQL Server para ubicar los objetos. En cualquier caso, sqlQuery no admite dos conexiones simultáneas (piensa: ¿cómo habría de ejecutar R una consulta en dos servidores distintos? ¡Todo pasa por ODBC!). Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 29 de mayo de 2012 15:13, Mauricio Monsalvo <m.monsalvo en gmail.com> escribió:> Estimados. > Tengo el siguiente código, qué, obviamente, no funciona: > library(RODBC) > benef <- odbcConnect ("SQL3PROAPS") # Conexión a un servidor > csb <- odbcConnect ("SQL1PROAPS") # Conexión a otro servidor > Personas <- sqlQuery (benef, " > SELECT c.idProvincia > , c.NombreProvincina > , COUNT(idPersona) AS Personas > FROM > [Beneficiarios_Remediar_Redes].dbo.Beneficiarios_IdPersona_Mejor_IdCap b > INNER JOIN [Operaciones_Consultas].dbo.uvw_CAPs c > ON c.idCAP = b.idCAP > GROUP BY c.idProvincia > , c.NombreProvincina > ") # Cierra conexión > head(Personas) da error. > El problema es que la base [Operaciones_Consultas] que contiene la tabla > dbo.uvw_CAPs está en el servidor SQL1PROAPS, mientras que el query sólo me > deja abrir una conexión a la vez (la conexión que se llama benef).- > La consulta sería: ¿es posible hacer un query usando dos conexiones a dos > servidores distintos? Probé algo así como Personas <- sqlQuery (benef, csb > " etc... pero no funciona. > Claro que puedo resolverlo en otra herramienta, pero mi idea es integrar en > R.- > Muchas gracias. > -- > Mauricio > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Tenés razón, Carlos... Recién hablaba con uno de los muchachos de sistemas y me decían los mismo, que el tema no está en R! Así que opté por crear una vista que resuelva y R llama a la vista y listo. Es lo que hay!! Muchas gracias. Abrazo El 29 de mayo de 2012 10:23, Carlos J. Gil Bellosta <cgb@datanalytics.com>escribió:> Hola, ¿qué tal? > > Casi seguro, el problema no está en R sino en la configuración del > servidor. Por la nomenclatura, parece que estás usando SQL Server y > podría ayudarte esta entrada > > > http://stackoverflow.com/questions/1144051/selecting-data-from-two-different-servers-in-sql-server > > Si puedes "enlazar" los dos servidores, teóricamente podrías ejecutar > esa consulta desde R. Al fin y al cabo, R delega la ejecución de la > consulta al "driver" ODBC y este en SQL Server para ubicar los > objetos. > > En cualquier caso, sqlQuery no admite dos conexiones simultáneas > (piensa: ¿cómo habría de ejecutar R una consulta en dos servidores > distintos? ¡Todo pasa por ODBC!). > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > El día 29 de mayo de 2012 15:13, Mauricio Monsalvo > <m.monsalvo@gmail.com> escribió: > > Estimados. > > Tengo el siguiente código, qué, obviamente, no funciona: > > library(RODBC) > > benef <- odbcConnect ("SQL3PROAPS") # Conexión a un servidor > > csb <- odbcConnect ("SQL1PROAPS") # Conexión a otro servidor > > Personas <- sqlQuery (benef, " > > SELECT c.idProvincia > > , c.NombreProvincina > > , COUNT(idPersona) AS Personas > > FROM > > [Beneficiarios_Remediar_Redes].dbo.Beneficiarios_IdPersona_Mejor_IdCap b > > INNER JOIN [Operaciones_Consultas].dbo.uvw_CAPs c > > ON c.idCAP = b.idCAP > > GROUP BY c.idProvincia > > , c.NombreProvincina > > ") # Cierra conexión > > head(Personas) da error. > > El problema es que la base [Operaciones_Consultas] que contiene la tabla > > dbo.uvw_CAPs está en el servidor SQL1PROAPS, mientras que el query sólo > me > > deja abrir una conexión a la vez (la conexión que se llama benef).- > > La consulta sería: ¿es posible hacer un query usando dos conexiones a dos > > servidores distintos? Probé algo así como Personas <- sqlQuery (benef, > csb > > " etc... pero no funciona. > > Claro que puedo resolverlo en otra herramienta, pero mi idea es integrar > en > > R.- > > Muchas gracias. > > -- > > Mauricio > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >-- Mauricio [[alternative HTML version deleted]]