Conectar con DB

04/11/2003 - 10:08 por Miguel Tubía | Informe spam
Hola,
tengo una base de datos en sql server. Para saber su ubicación en cada
momento desde un programa, he creado un registro en mi servidor DNS y,
haciendo una llamada, averiguo su ip, pero al conectar me da problemas.
Pensaba q indicando la ip del servidor me dejaría, pero no es así. Por lo
visto hay q poner tb el nombre de la instancia. ¿Alguien sabe cómo se puede
averiguar esto? ¿Quizás con sqldmo? ¿Alguna idea? Sería ver en esa ip el nb
de la instancia de sql server q hay instalada...
Gracias
Un saludo

Preguntas similare

Leer las respuestas

#6 Accotto Maximiliano D.
04/11/2003 - 13:47 | Informe spam
ese ej es de una aplicacion en eXcel en DAO!! pero si queres te busco una en
ADO!! seria mejor q me digas en q estas programando.

un abrazo.

pd: porque no me envias el codigo de conexion asi lo analizamos juntos.


Accotto Maximiliano Damian
"Miguel Tubía" escribió en el mensaje
news:u9Af$
Mostrar la cita
#7 Miguel Tubía
04/11/2003 - 16:25 | Informe spam
Hola!
joe q pereza trabajar por la tarde...
Bueno, me explico algo mejor: estoy haciendo una aplicación cliente-servidor
de 3 capas. Además se basa en la infraestructura que da un dominio bajo
windows 2000, tanto usando el active directory como los servidores dns, etc.
Cuando se instala el servidor se le indican dónse se quiere crear la base de
datos, e introduce en el servidor dns una entrada, con un nombre de la base
de datos (este siempre será el mismo, lo doy yo por código) y la ip dónde
está. Así mismo introduce otra entrada de dónde está el propio servidor de
la aplicación. Cuando arranca el cliente, no sabe dónde está el servidor ni
nada. Como sabe el nombre del servidor de la aplicación, lo busca en el
servidor dns, se lo devuelve, y ya puede trabajar normal. El servidor,
cuando arranca, hace lo mismo. Como sabe el nombre del servidor (el nombre
que le doy yo, ojo, el nombre netbios del equipo puede ser otro) de la base
de datos, lo solicita y lo consigue por resolución dns. Eso lo hago así:
string
equipo=Dns.GetHostByName("SIIADataBase").AddressList.GetValue(0).ToString();

Y con esto hago la cadena de conexión así: (en ado.net, por cierto)
conString = "Server="+equipo+";database=SIIA;UId=Miguel;pwd=;Integrated
Security=SSPI;";

Pero no me da. Resulta q me instalé en mi equipo, para las pruebas, el sql
server desktop, q viene con el visual studio. Me lo instaló con una
instancia de nombre VSdotNET, lo q imagino hará siempre. Antes para conectar
hacía:
conString = "Server=Evius\VSdotNET;database=SIIA;UId=Miguel;pwd=;Integrated
Security=SSPI;";

Donde Evius era el nombre del equipo.

Ahora, lo q me pregunto es: sabiendo la ip dónde está la base de datos,
¿cómo se puede saber si hay una instancia y su nombre? He probado con bases
de datos cuyo nombre es el mismo q el del servidor y funciona, pero quiero
contemplar la posibilidad que haya una instancia, como es mi caso, para q no
casque... He probado con sqldmo pero no sé como seguir...

Espero haberme explicado con claridad...

Muchas gracias por toda la ayuda
#8 Miguel Tubía
04/11/2003 - 16:25 | Informe spam
Hola!
joe q pereza trabajar por la tarde...
Bueno, me explico algo mejor: estoy haciendo una aplicación cliente-servidor
de 3 capas. Además se basa en la infraestructura que da un dominio bajo
windows 2000, tanto usando el active directory como los servidores dns, etc.
Cuando se instala el servidor se le indican dónse se quiere crear la base de
datos, e introduce en el servidor dns una entrada, con un nombre de la base
de datos (este siempre será el mismo, lo doy yo por código) y la ip dónde
está. Así mismo introduce otra entrada de dónde está el propio servidor de
la aplicación. Cuando arranca el cliente, no sabe dónde está el servidor ni
nada. Como sabe el nombre del servidor de la aplicación, lo busca en el
servidor dns, se lo devuelve, y ya puede trabajar normal. El servidor,
cuando arranca, hace lo mismo. Como sabe el nombre del servidor (el nombre
que le doy yo, ojo, el nombre netbios del equipo puede ser otro) de la base
de datos, lo solicita y lo consigue por resolución dns. Eso lo hago así:
string
equipo=Dns.GetHostByName("SIIADataBase").AddressList.GetValue(0).ToString();

Y con esto hago la cadena de conexión así: (en ado.net, por cierto)
conString = "Server="+equipo+";database=SIIA;UId=Miguel;pwd=;Integrated
Security=SSPI;";

Pero no me da. Resulta q me instalé en mi equipo, para las pruebas, el sql
server desktop, q viene con el visual studio. Me lo instaló con una
instancia de nombre VSdotNET, lo q imagino hará siempre. Antes para conectar
hacía:
conString = "Server=Evius\VSdotNET;database=SIIA;UId=Miguel;pwd=;Integrated
Security=SSPI;";

Donde Evius era el nombre del equipo.

Ahora, lo q me pregunto es: sabiendo la ip dónde está la base de datos,
¿cómo se puede saber si hay una instancia y su nombre? He probado con bases
de datos cuyo nombre es el mismo q el del servidor y funciona, pero quiero
contemplar la posibilidad que haya una instancia, como es mi caso, para q no
casque... He probado con sqldmo pero no sé como seguir...

Espero haberme explicado con claridad...

Muchas gracias por toda la ayuda
#9 Fernando G. Guerrero
06/11/2003 - 10:08 | Informe spam
Hace algún tiempo escribí un ejempo para la revista SQL Server Magazine que
utiliza SQL-DMO para buscar los servidores disponibles en la red
(http://www.sqlmag.com/Articles/Index.cfm?ArticleID842):

Dim dmoServer As SQLDMO.SQLServer
Dim dmoApp As SQLDMO.Application
Dim dmoNameList As SQLDMO.NameList
Dim i As Integer

Set dmoServer = New SQLDMO.SQLServer

Set dmoApp = dmoServer.Application

Set dmoNameList = dmoApp.ListAvailableSQLServers()

For i = 1 To dmoNameList.Count
Debug.Print dmoNameList(i)
Next i

Neil Pike publicó un artículo en SQL Server magazine que describe un caso
similar (http://www.sqlmag.com/Articles/Index.cfm?ArticleID327)
.

Existen funciones de ODBC y de DB-Lib para efectuar la misma tarea, y están
comentadas en los FAQ de SQL Server:

http://www.sqlserverfaq.com/content...er.aspx?ID8

Espero que esto te sirva.

Saludos

Fernando G. Guerrero
SQL Server MVP
CEO & Principal Mentor
Solid Quality Learning
www.solidqualitylearning.com

"Comparte lo que sabes, aprende lo que no sepas"

"Miguel Tubía" wrote in message
news:
Mostrar la cita
cliente-servidor
Mostrar la cita
etc.
Mostrar la cita
de
Mostrar la cita
base
Mostrar la cita
ni
Mostrar la cita
base
Mostrar la cita
equipo=Dns.GetHostByName("SIIADataBase").AddressList.GetValue(0).ToString();
Mostrar la cita
conectar
Mostrar la cita
bases
Mostrar la cita
no
Mostrar la cita
#10 Fernando G. Guerrero
06/11/2003 - 10:08 | Informe spam
Hace algún tiempo escribí un ejempo para la revista SQL Server Magazine que
utiliza SQL-DMO para buscar los servidores disponibles en la red
(http://www.sqlmag.com/Articles/Index.cfm?ArticleID842):

Dim dmoServer As SQLDMO.SQLServer
Dim dmoApp As SQLDMO.Application
Dim dmoNameList As SQLDMO.NameList
Dim i As Integer

Set dmoServer = New SQLDMO.SQLServer

Set dmoApp = dmoServer.Application

Set dmoNameList = dmoApp.ListAvailableSQLServers()

For i = 1 To dmoNameList.Count
Debug.Print dmoNameList(i)
Next i

Neil Pike publicó un artículo en SQL Server magazine que describe un caso
similar (http://www.sqlmag.com/Articles/Index.cfm?ArticleID327)
.

Existen funciones de ODBC y de DB-Lib para efectuar la misma tarea, y están
comentadas en los FAQ de SQL Server:

http://www.sqlserverfaq.com/content...er.aspx?ID8

Espero que esto te sirva.

Saludos

Fernando G. Guerrero
SQL Server MVP
CEO & Principal Mentor
Solid Quality Learning
www.solidqualitylearning.com

"Comparte lo que sabes, aprende lo que no sepas"

"Miguel Tubía" wrote in message
news:
Mostrar la cita
cliente-servidor
Mostrar la cita
etc.
Mostrar la cita
de
Mostrar la cita
base
Mostrar la cita
ni
Mostrar la cita
base
Mostrar la cita
equipo=Dns.GetHostByName("SIIADataBase").AddressList.GetValue(0).ToString();
Mostrar la cita
conectar
Mostrar la cita
bases
Mostrar la cita
no
Mostrar la cita
Ads by Google
Search Busqueda sugerida