Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Per Lorenzo....conoscere il nome dei server con SQL installato.
martedì 06 giugno 2006 - 09.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sal21
Profilo
| Junior Member
63
messaggi | Data Invio:
mar 6 giu 2006 - 09:09
Ciao Papà, dopo vari tentativi ho fatto qestu due macro. La prima funziona perfettamente e mi lista in un foglio di Excel tutti i server sql connessi. La seconda che ho creato per ssapere i nome dei database funziona solo se inserisco nella linea sottostante il nome del mio server montato sul mio pc, in questo caso "local". Ma se inserisco un altro nome dei server appaena rintracciati la macro mi ìda errore "440" Errore di automazione.
In effetti a me non intressa aprire e modificare i vari database sui server non locali, ma solo sapere il nome del database... si puo fare qualcosa?
Grazie.
objSQLServer.Connect "(LOCAL)"
my code:
Sub TEST_SQL()
Dim TEST As String
Dim RIGA As String
Set sqlApp = CreateObject("SQLDMO.Application")
Set serverList = sqlApp.ListAvailableSQLServers
numServers = serverList.Count
RIGA = 2
For I = 1 To numServers
TEST = serverList(I)
Range("A" + RIGA) = TEST
RIGA = RIGA + 1
Next
Set sqlApp = Nothing
End Sub
Sub DATABASE_SQL()
Dim TESTDBSQL As String
Const DisplaySystemDatabases = False
Set objSQLServer = CreateObject("SQLDMO.SQLServer")
objSQLServer.LoginSecure = True
objSQLServer.Connect "(LOCAL)"
For I = 1 To objSQLServer.Databases.Count
If (Not objSQLServer.Databases(I).SystemObject) Or DisplaySystemDatabases Then
TESTDBSQL = objSQLServer.Databases(I).name
End If
Next
End Sub
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 6 giu 2006 - 09:25
>La seconda che ho creato per ssapere i
>nome dei database funziona solo se inserisco nella linea sottostante
>il nome del mio server montato sul mio pc, in questo caso "local".
>Ma se inserisco un altro nome dei server appaena rintracciati
>la macro mi ìda errore "440" Errore di automazione.
>objSQLServer.LoginSecure = True
Per recuperare il nome dei database presenti in una istanza SQL Server devi autenticarti.
La riga di codice evidenziata sopra, effettua l'autenticazione all'istanza specificata utilizzando la Windows Authentication, ovvero utilizzando il SID dell'account Windows digitato in fase di logon al sistema.
Se nella tua LAN non c'è alcun Domain Controller ed il tuo account windows non è mappato come login SQL Server su ogni singola istanza, l'autenticazione fallirà.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
sal21
Profilo
| Junior Member
63
messaggi | Data Invio:
mar 6 giu 2006 - 09:31
in effetti non so se sono mappato come utente SQL...quindi se ho ben capito non potro mai sapere il nome dei da depositati su un server non LOCAL?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 6 giu 2006 - 09:52
>in effetti non so se sono mappato come utente SQL...quindi se
>ho ben capito non potro mai sapere il nome dei da depositati
>su un server non LOCAL?
Boh, dipende.
Se le istanze sono configurate per utilizzare anche la SQL Authentication potresti utilizzare una login SQL amministrativa (come "sa") però oltre a conoscere la password, devi verificare che sia uguale per tutte le istanze della tua LAN.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
sal21
Profilo
| Junior Member
63
messaggi | Data Invio:
mar 6 giu 2006 - 10:15
ammetendo che sia "SA" come dovrei mofifuicare il secondo scrpit?
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !