Newsgroup: it.comp.lang.visual-basic
Titolo: VBNET problemi con sys.databases

Codice:
connection = "Data Source=.\SQLEXPRESS;Integrated Security=True;Connect 
Timeout=30;User Instance=True"
Dim cndb As New SqlClient.SqlConnection(connection)
cndb.Open()
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = cndb
Dim Sql As String = "SELECT * FROM sys.databases"
Dim reader As SqlClient.SqlDataReader
cmd.CommandText = Sql
reader = cmd.ExecuteReader
A questo punto reader mi rende disponibile tutti i nomi delle colonne del 
database master ma sono completamente vuote. Ho creato 2 database "A" e "B" 
tramite codice e tra prove e riprove ho cancellato i DB direttamente con 
esplora risorse. Nel ricreare gli stessi mi dice che non è possibile perchè 
gia sono presenti altri db con gli stessi nomi. Letto un po di guida ho 
visto che i nomi dei db vengono conservati nella colonna name del db master. 
Utilizzando SQL Managment ed eseguendo la stessa query il risulotato è che 
la colonna name contiene solo 4 database e sono quelli di sistema. Ho un 3 
db creato direttamente con visual studio e non da codice su cui lavoro ma 
nemmeno quello è presente come nome nel db master. Qui c'è qualche passaggio 
che non riesco a capire o qualche cosa che non va, perchè nel db master non 
c'è traccia dei nomi di database da me creati. Chi mi da una mano a capire 
l'inghippo???

 mi da una mano a capire l'inghippo???
con SSMS(E) ti devi collegare alla User Instance e non all'istanza padre 
della stessa 
(
http://msdn.microsoft.com/en-us/library/bb264564.aspx#sqlexpuser_topic7
 )
qui devi verificare se "esistono" i database che hai cancellato fisicamente 
ed eventualmente cancellarli con SSMS(E) al fine di eseguire anche la 
cancellazione logica..
saluti
-- 
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz
 
http://italy.mvps.org
DbaMgr2k ver 0.21.1 - DbaMgr ver 0.65.1 and further SQL Tools
--------- remove DMO to reply 

 ha scritto nel messaggio 
news:67qtmaF...@mid.individual.net...


 creato.
prova a far partire la user instance, quindi attaccati alla pipe utilizzata 
ed accedi tramite questa pipe con SSMSE.. poi verifica se sono ancora 
"registrati" i database che tu hai fisicamente cancellato..
eventualmente c'e' anche SSEUtil 
(
http://www.microsoft.com/downloads/details.aspx?FamilyID=fa87e828-173f-472e-a85c-27ed01cf6b02&displaylang=en
) 
con il quale puoi dialogare sulla user instance, che mi pare possa fare le 
stesse cose, ma non l'ho mai utilizzata..


 ha scritto nel messaggio 
news:67sclsF...@mid.individual.net...


 ha scritto nel messaggio 
news:67qtmaF...@mid.individual.net...


 si possa fare.
questa pipe ti viene ritornata con l'esecuzione del comando riportato 
nell'articolo nei confronti dell'istanza "padre", ed e' corretto..
per connettersi alla user instance con SSMSE, una volta che questa sia stata 
"avviata", apri SSMSE e nel Server Name metti il valore di quella pipe come 
ritornata dalla select.. utilizza ovviamente una connessione con 
autenticazione integrata..


 ha scritto nel messaggio 
news:67qtmaF...@mid.individual.net...


 ha scritto nel messaggio 
news:67u1eeF...@mid.individual.net...


 eh eh eh rido ma la domanda è seria.
nel caso ti serva un oggetto "scrollabile", devi caricare ad esempio un 
DataTable, caricandolo direttamente dal reader, similarmente a
Dim reader As SqlClient.SqlDataReader = cmd.ExecuteReader
Dim dt as New DataTable
dt.Load(reader, LoadOption.PreserveChanges)


 ha scritto nel messaggio 
news:68088sF...@mid.individual.net...
