Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VBscript Tamaño de Base de Datos
#1
Hola,
Estoy viendo la posibilidad de un script que me traiga los valores actuales del tamaño de la bases de datos de diferentes servidores, ya lo tengo armado y con una instuccion de mensaje trabaja correctamente, el problema esta  en la generación de la información, este es el script que estoy  usando.

serverName = "Nombre de Servidor"

set cn = createobject("ADODB.Connection")
set cmd = createobject("ADODB.Command")
set rs = createobject("ADODB.RecordSet")

cn.open "Provider=SQLOLEDB.1;Data Source=" & serverName & ";Integrated Security=SSPI;Initial Catalog=Master"
cmd.activeconnection = cn

cmd.commandtext = "exec sp_helpdb"
set rs = cmd.execute


Do while not rs.EOF

if  rs("dbid") > 4 then

module_description= rs("name")
module_data = rs("db_size")
Wscript.StdOut.WriteLine "<module>"
Wscript.StdOut.WriteLine "<name><DB_SIZE></name>"
Wscript.StdOut.WriteLine "<description><![CDATA[" & module_description & " DB_SIZE_MB""]]></description>"
Wscript.StdOut.WriteLine "<data><![CDATA["& replace (replace ( module_data ," MB","")," ","")& "]]></data>"
Wscript.StdOut.WriteLine "</module>"
            Wscript.StdOut.flush

end if
rs.movenext
loop

cn.close


Si ponga la instrucción de MSGBOX me da todas las bases de datos y esta es la salida con el Wscript
<module>
<name><DB_SIZE></name>
<description><![CDATA[GNEditorial DB_SIZE_MB"]]></description>
<data><![CDATA[8887.94]]></data>
</module>

Solamente me muestra una y con la instrucción de MSGBOX me muestra 2 dbs.

Alguna sugerencia para obtener toda la información?.
Saludos y de antemano Gracias
 Reply
#2
Hola!

¿Cómo estás ejecutando el comando desde el agente?

Salu2
 Reply
#3
Hola Si lo lo estoy ejecutando desde el agente, en mi caso en particular quite la línea de  Wscript.StdOut.flush
y trabajo correctamente trayendo el valor  esperado.
quedo de la siguiente manera;

SGN3M = "Nombre de Servidor"
User ="Usuario de DB"
UserGN3="Contraseña"
DBWires="master"
set cn = createobject("ADODB.Connection")
set cmd = createobject("ADODB.Command")
set rs = createobject("ADODB.RecordSet")
ConnectionString= "Provider=SQLOLEDB.1;Persist Security Info=False;" _
& "User ID=" & User & ";" _
& "Password = " & UserGN3 & ";" _
& "Initial Catalog=" & DBWires & ";" _
& "Data Source=" & SGN3M & ";"
cn.open ConnectionString
cmd.activeconnection = cn
cmd.commandtext = "exec sp_helpdb"
set rs = cmd.execute
while rs.eof <> true and rs.bof <> true
if  rs("dbid") >=7  then
module_description= rs("name")
module_data = rs("db_size")
Wscript.StdOut.WriteLine "<module>"
Wscript.StdOut.WriteLine "<name>db_size_"& module_description & "</name>"
Wscript.StdOut.WriteLine "<description>" & module_description & "</description>"
Wscript.StdOut.WriteLine "<module_interval>288</module_interval>"
Wscript.StdOut.WriteLine "<type>generic_data</type>"
Wscript.StdOut.WriteLine "<data>"& replace (replace ( module_data ," MB","")," ","")& "</data>"
Wscript.StdOut.WriteLine "</module>"
end if
rs.movenext
wend

cn.close

En este caso quedo personalizado para una db en especifico.
Saludos
 Reply
#4
Genial!

Si al final todo sale jeje, muchas gracias por compartirlo con nosotros

Saludos!
 Reply


Users browsing this thread: 1 Guest(s)


(c) 2006-2018 Artica Soluciones Tecnológicas. Contents of this wiki are under Create Common Attribution v3 licence. | pandorafms.com | pandorafms.org

Theme © MyBB Themes