<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; HTA: SQLToolz]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2088&amp;type=atom" />
	<updated>2008-08-13T08:01:29Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2088</id>
		<entry>
			<title type="html"><![CDATA[HTA: SQLToolz]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=13209#p13209" />
			<content type="html"><![CDATA[<p>Многофункциональная утилита для работы с базами данных.<br /></p><div class="codebox"><pre><code>&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt;SQL TOOLZ ( Author - null )&lt;/TITLE&gt;
&lt;META content=JavaScript name=vs_defaultClientScript&gt;
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=windows-1251&quot;&gt;
&lt;SCRIPT language=javascript&gt;
&lt;!-- скрыть скрипт от браузеров не поддерживающих их
var flag=0;  // переменная для определения был ли сделан запрос на поиск sql сереверов в сети
var odbclistarr = new Array();  // массив в котром хранятся имена всех Odbc источников данных
var sqlserverlistarr = new Array(); // массив в котром хранятся имена всех найденных в сети sql серверов 
var AllArray = new Array();
var interval=&quot;&quot;;   // интервал по истечении которого будет запускаться функуция SHOW PROCESSLIST для сервера MySql
var DSNSqlserver=&quot;&quot;;   // если эта переменная не пустая, значит пользователь хочет выполнить запрос к Sql серверу

function resize()    // изменение размера окна к приемлемому виду
  {
  window.window.resizeTo(1024,768);
  }

//инструменты для работы с скуль серверами и другими базами, возможно этой функции не будет в дальнейшем
function raznoe()
  {
  if (raznoechoise.value == &quot;odbc&quot;) // если выбран пункт - источники данных odbc, то выводим список источников данных (функция списка источников данных - сперта гдето с нэта)
    {
    var odbcsource=&quot;&quot;;         // инициализируем переменную в котрую будет записан список источников данных
    resultat.innerText=odbcsource;                       // очищаем поле &quot;результат&quot;
    sRegPath = &quot;Software\\ODBC\\ODBC.INI&quot;;              // путь в реестре к источникам данных
    oLoc = new ActiveXObject(&quot;WbemScripting.SWbemLocator&quot;); // создаем wmi объект с помощью которого переберем все ключи в ключе ODBC.INI
    oSvc = oLoc.ConnectServer(null, &quot;root\\default&quot;);       // соединяемся с сервером wmi (локально)
    oReg = oSvc.Get(&quot;StdRegProv&quot;);                        //не знаю чё тут написано :)
    oMethod = oReg.Methods_.Item(&quot;EnumKey&quot;);             
    oInParam = oMethod.InParameters.SpawnInstance_();     // чё то связанное с асинхронным запросом вроде
    oInParam.hDefKey = &#039;&amp;H80000002&#039;;                      // HKLM
    oInParam.sSubKeyName = sRegPath;                      //
    oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
    aNames = oOutParam.sNames.toArray();
    for (i = 0; i &lt; aNames.length; i++)
      {
      oMethod = oReg.Methods_.Item(&quot;GetStringValue&quot;);
      oInParam = oMethod.InParameters.SpawnInstance_();
      oInParam.hDefKey = &#039;&amp;H80000002&#039;;                    // HKLM
      oInParam.sSubKeyName = sRegPath;
      oInParam.sValueName = aNames[i];
      oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
      if ((aNames[i]!=&quot;ODBC Data Sources&quot;) &amp; (aNames[i]!=&quot;ODBC File DSN&quot;) ) // в ключе с источниками данных, есть две ненужные записи. Выкидываем их
        {
        odbcsource=odbcsource+aNames[i]+&quot;\n&quot;; // результат - список источников данных
        }
      }
      resultat.innerText=odbcsource;  // записываем список источников данных в текстовое поле
    }
    
  if (raznoechoise.value == &quot;createmdb&quot;)  //создаем базу данных mdb
    {
    dbname=window.prompt(&quot;ВВЕДИТЕ ПУТЬ К СОЗДАВАЕМОЙ БАЗЕ ДАННЫХ&quot;,&quot;c:\\Database.mdb&quot;); //выводим окно с запросом имени файла для базы данных
    var Catalog = new ActiveXObject (&quot;ADOX.Catalog&quot;);
    Catalog.Create (&quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot;+dbname);  //создаем базу
    }
   
  if (raznoechoise.value ==&quot;listtables&quot;)  // список таблиц источника данных, получаемый путем обращения к схеме
    {
    checked=DataSourceChoise(&quot;odbc&quot;);
    if (checked==1)
      { 
      var objConn = new ActiveXObject (&quot;ADODB.Connection&quot;) ; 
      var objRecordset = new ActiveXObject (&quot;ADODB.RecordSet&quot;);
      adSchemaTables=20;                                        //переменная для получения списка таблиц из схемы
      var listtables=&quot;&quot;;
      window.resultat.innerText=&quot;&quot;;                              //очищаем поле результата перед выводом в него списка таблиц
      objConn.ConnectionString=&quot;DSN=&quot;+window.dbsource.value;      // строка для соединения с источником данных
      objConn.Open();
      objRecordset = objConn.OpenSchema(adSchemaTables);   //получаем список таблиц
      while ( !objRecordset.EOF)   // в цикле записываем список таблиц в переменную listtables
        {
        listtables=listtables+objRecordset(&quot;table_name&quot;)+&quot;\n&quot;;
        objRecordset.MoveNext;
        }
      window.resultat.innerText= listtables;      //помещаем результат в текстовое поле
      objRecordset.Close;
        }
      }
    }
    
function DataSourceChoise(type)          // самая мудрёная и хитрая функция для определения - правильно ли выбрал пользователь источник данных или sql сервер и ввел ли имя пользователя и пароль для sql сервера 
  {
  var serverlist=0;              // переменная определяющая - был ли выбран источник данных или sql сервер
  DSNSqlserver=&quot;&quot;;
  if (type==&quot;sqlserver&quot;)  
    {
    datatype=sqlserverlistarr;   // datatype присваиваем значения массива со списком sql серверов
    }
  if (type==&quot;odbc&quot;)     // если ф-я была вызвана с запросом определиться ODBC источниками данных
    {
    datatype=odbclistarr;    // datatype присваиваем значения массива со списком ODBC источников данных
    }
  if (type==&quot;all&quot;)         //// если ф-я была вызвана с запросом определиться любым источнико данных или sql сервером, то в массив AllArray записываем все строки из массивов со списком источников дааных и sql серверов
    {
    for (i=1;i&lt;odbclistarr.length;i++)
      {
      AllArray[i]=odbclistarr[i];
      }
    for (i=1;i&lt;sqlserverlistarr.length;i++)
      {
      AllArray[odbclistarr.length+(i-1)]=sqlserverlistarr[i];
      }
    datatype=AllArray;
    }
  // если запись в поле dbsource совпадет с одной из строк из массива со список источников данных или sql серверов (в зависимости от того с каим параметром была вызвана функция), то функция возратит 1, иначе 0  
  for (i=0;i&lt;=datatype.length;i++) 
    {
    if (window.dbsource.value != datatype[i]) 
      {
      serverlist=0;   // присваиваем переменной serverlist значение ноль,  если значение выбранного поля в dbsource не совпало ни с одним занчением из массива (списка источников данных и/или sql серверов (в зависимости от того с каким параметром была вызвана функция))
      }
    else
      // если значение выбранного поля в dbsource совпало с одним из значений списка то serverlist=1 и если функция была вызвана с параметром all, то определяем что именно выбрано - источник данных или sql сервер, в зависимости от результата выдаем соответствующие сообщения - если не хватает каких либо параметров (напрмер имени юзера и пароля для sql сервера)
      {
      serverlist=1;
      if ((type==&quot;all&quot;) &amp; (i&gt;=odbclistarr.length))
        {
        type=&quot;sqlserver&quot;;
        }
      if ((type==&quot;all&quot;) &amp; (i&lt;odbclistarr.length))
        {
        type=&quot;odbc&quot;;
        DSNSqlserver=&quot;DSN=&quot;+window.dbsource.value;
        }   
      if ((type==&quot;sqlserver&quot;) &amp; (window.winauth.checked == false))
        {
        DSNSqlserver=&quot;Driver={SQL Server}; Server=&quot;+window.dbsource.value+&quot;; Database=&quot;+window.databasename.value+&quot;; Uid=&quot;+window.login.value+&quot;; Pwd=&quot;+window.pass.value+&quot;;&quot;;
        }
      if ((type==&quot;sqlserver&quot;) &amp; (window.winauth.checked == true))
        {
        DSNSqlserver=&quot;Driver={SQL Server}; Server=&quot;+window.dbsource.value+&quot;; Database=&quot;+window.databasename.value+&quot;; Trusted_Connection=yes&quot;;
        }
      if (type==&quot;odbc&quot;)
        {
        DSNSqlserver=&quot;DSN=&quot;+window.dbsource.value;
        }
      break;
      }
    }
  // тут и так всё понятно
  if ( (serverlist == 0) &amp; (type==&quot;sqlserver&quot;) )
    {
    alert (&quot;Не задано (или неправильно задано) имя Sql сервера\nВыберите имя Sql сервера из списка источников данных&quot;);
    }
  if ( (serverlist == 0) &amp;&amp; (type==&quot;odbc&quot;) )
    {
    alert (&quot;Не указан (или неправильно указан) источник данных ODBC! Выберите источник данных ODBC из выпадающего списка&quot;);
    }
  if ( (type==&quot;sqlserver&quot;) &amp; (window.winauth.checked == false) )
    {
    if ((window.login.value ==&quot;&quot;) | (window.pass.value == &quot;&quot;))
      {
      alert(&quot;Введите имя пользователя и/или пароль, для подключения к Sql Server-у, \nили установите режим аутентификациии - windows!!!&quot;);
      serverlist=0;
      }
    }
  if ( (serverlist == 0) &amp; (type==&quot;all&quot;) )
    {
    alert (&quot;Выберите из списка Источник данных или Sql Server&quot;);
    }
  return serverlist;
  }

function SqlServer()                    // функция для работы с sql сервером
  {
  // список sql серверов в локальной сети
  if (SqlServerChoise.value == &quot;sqlserverslist&quot;)   
    {
    var oSQLApp = new ActiveXObject (&quot;SQLDMO.Application&quot;)  //инициируем объект
    var Names = oSQLApp.ListAvailableSQLServers();  // присваиваем переменной список серверов в сети
    servers=&quot;&quot;;
    window.resultat.innerText=&quot; &quot;;   // очищаем поле результата в которое будет записан список серверов
    for (i= 1; i&lt;= Names.Count; i++)  // в цикле читаем список  и записываем в поле
      {
      servers=servers+Names.Item(i)+&quot;\n&quot;;
      }
      window.resultat.innerText=servers;
    }
  // свойства скуль сервера
  if (SqlServerChoise.value==&quot;ServerProperty&quot;)  
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)                                    // если были введены имя сервера логин и пароль то
      {
      property=&quot;&quot;;                       // создаем строковую переменную для внесения в неё списка свойств sql сервера
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer2&quot;);     //создаем объект
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true
        oServer.Connect(window.dbsource.value);
        }
      // список свойств сервера
      property=property+&quot;Кодовая страница сервера - &quot;+oServer.CodePage +&quot;\n&quot;;
      property=property+&quot;Имя Sql сервера - &quot; +oServer.Name+ &quot;\n&quot;;
      property=property+&quot;Реальное сетевое имя SQL Server - &quot; +oServer.NetName +&quot;\n&quot;;
      property=property+&quot;Региональные установки, для драйвера ODBC - &quot; +oServer.RegionalSetting +&quot;\n&quot;;
      property=property+&quot;Обладаете ли вы правами админа на сервере - &quot; +oServer.SaLogin +&quot;\n&quot;;
    
      property=property+&quot;Cостояние SQL Servera - &quot;;
       
      switch (oServer.Status)
        {
        case 0:
        property=property+&quot;не определено\n&quot;;
        break;
        case 1 :
        property=property+&quot;рабочее состояние\n&quot;;
        break;
        case 2 :
        property=property+&quot;пауза\n&quot;;
        break;
        case 3 :
        property=property+&quot;остановлен\n&quot;;
        break;
        case 4 :
        property=property+&quot;переход из состояния \&quot;остановлено\&quot; в состояние \&quot;запущено\&quot;\n&quot;;
        break;
        case 5 :
        property=property+&quot;переход: из \&quot;запущено\&quot; в \&quot;остановлено\&quot;\n&quot;;
        break;
        case 6 :
        property=property+&quot;сервер запускается после приостановки работы\n&quot;;
        break;
        case 7 :
        property=property+&quot;работа сервера приостанавливается\n&quot;;
        break;
        } 
      property=property+&quot;Редакция SQL Server - &quot;;
      versionserver=oServer.IsPackage();
      switch (versionserver)
        {
        case 0:
        property=property+&quot;не определено\n&quot;;
        break;
        case 1 :
        property=property+&quot;Desktop Edition\n&quot;;
        break;
        case 2 :
        property=property+&quot;Standart Sdition\n&quot;;
        break;
        case 3 :
        property=property+&quot;Enterprice или Developer edition\n&quot;;
        break;
        }
             
      window.resultat.innerText=property;        //записываем результат в поле
      oServer.Disconnect();   //отсоединяемся от сервера
      }
    }
  if (SqlServerChoise.value == &quot;adSchemaCatalogs&quot;)    // функция получения списка баз данных sql сервера
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)
      {
      var objConn = new ActiveXObject (&quot;ADODB.Connection&quot;) ; 
      var objRecordset = new ActiveXObject (&quot;ADODB.RecordSet&quot;);
      objConn.ConnectionString=DSNSqlserver;
      objConn.Open();
      objRecordset = objConn.OpenSchema(1); // 1- adSchemaCatalogs 
      dblist=objRecordset.GetString;
      window.resultat.innerText=dblist;
      }
    }      
  if (SqlServerChoise.value == &quot;EnumProcesses&quot;)    // функция получения списка процессов sql сервера
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)
      {
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer&quot;);     //создаем объект
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу, sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true               
        oServer.Connect(window.dbsource.value);     //либо windows аутентификация
        }
      var Processes = oServer.EnumProcesses();    //получаем список процессов на сервере
      //засовываем результат в excel
      var oXL = new ActiveXObject (&quot;Excel.Application&quot;);
      oXL.Visible = true;
      oXL.Caption = &quot;Enum Processes Sql Server&quot;;          
      oXL.WorkBooks.Add();
      for (i=1;i&lt;=Processes.Columns;i++)
        {
        oXL.ActiveCell.Cells(1,i) = Processes.ColumnName(i);
        for (j=1;j&lt;=Processes.Rows;j++)
          {
          oXL.ActiveCell.Cells(j+2,i) = Processes.GetColumnString(j,i);
          }
        } 
      }
    }
  if (SqlServerChoise.value == &quot;EnumLocks&quot;)    // функция получения списка блокировок sql сервера
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)
      {
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer&quot;);     //создаем объект
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true
        oServer.Connect(window.dbsource.value);      //либо windows аутентификация
        }
      var locks = oServer.EnumLocks();                      //получаем список процессов на сервере
      //засовываем результат в excel
      var oXL = new ActiveXObject (&quot;Excel.Application&quot;);
      oXL.Visible = true;
      oXL.Caption = &quot;Enum Locks Sql Server&quot;;          
      oXL.WorkBooks.Add();
      for (i=1;i&lt;=locks.Columns;i++)
        {
        oXL.ActiveCell.Cells(1,i) = locks.ColumnName(i);
        for (j=1;j&lt;=locks.Rows;j++)
          {
          oXL.ActiveCell.Cells(j+2,i) = locks.GetColumnString(j,i);
          }
        } 
      }
    }
  if (SqlServerChoise.value == &quot;ListMembers&quot;)    //к каким группам принадлежит текущий юзер
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)
      {
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer&quot;);     //создаем объект
      var memberslist=&quot;Роли пользователя на сервере\n--------------------------\n&quot;;
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true
        oServer.Connect(window.dbsource.value);
        }
      var members = oServer.ListMembers(3); //отображает права юзера на сервере и в базе данных 
      for (i=1;i&lt;=members.Count;i++)
        {
        memberslist=memberslist+members.Item(i)+&quot;\n&quot;;        
        } 
      window.resultat.innerText=memberslist;
      }
    }
  if (SqlServerChoise.value==&quot;ScriptTablDB&quot;)  // отскриптовать таблицу или базу данных
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)                                    // если были введены имя сервера логин и пароль то
      {
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer&quot;);     //создаем объект
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true
        oServer.Connect(window.dbsource.value);
        }
      //спрашиваем имя базы данных или таблицы которую нужно отскриптовать, если имя таблицы не введено то считаем что нужно отскриптовать базу данных
      DBname=window.prompt(&quot;ВВЕДИТЕ ИМЯ БАЗЫ ДАННЫХ, ЕСЛИ ХОТИТЕ ПОЛУЧИТЬ СКРИПТ БАЗЫ, ТО НЕ ЗАПОЛНЯЙТЕ ОКНО С ИМЕНЕМ ТАБЛИЦЫ:&quot;,&quot;master&quot;); 
      TableName = window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ:&quot;,&quot;&quot;);
      if (TableName!=&quot;&quot;)
        {
        var Target = oServer.Databases(DBname).Tables(TableName);
        }
      else
        {
        var Target = oServer.Databases(DBname);
        }
      window.resultat.innerText=Target.Script();
      }
    }  
  if (SqlServerChoise.value==&quot;createuser&quot;)  // создать логин в базе данных
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)                                    // если были введены имя сервера логин и пароль то
      {
      var oServer = new ActiveXObject (&quot;SQLDMO.SQLServer2&quot;);     //создаем объект
      var oLogin = new ActiveXObject (&quot;SQLDMO.Login&quot;)
      var WshNetwork = new ActiveXObject(&quot;WScript.Network&quot;);
      var username=WshNetwork.ComputerName+&quot;\\&quot;+WshNetwork.UserName;
      if (window.winauth.checked == false)
        {
        oServer.Connect(window.dbsource.value,window.login.value,window.pass.value);    // подключаемся к серверу, sql аутентификация 
        }
      else
        {
        oServer.LoginSecure = true
        oServer.Connect(window.dbsource.value);     // либо windows аутентификация
        }
      oLogin.Name = window.prompt(&quot;ВВЕДИТЕ ЛОГИН (ФОРМАТЫ): 1.DomainName\\UserName(или GroupName) 2.CompName\\UserName(или GroupName) 3.UserName (SqlAuth)&quot;,username); //выводим окно с запросом имени пользователя
      oLogin.Type= window.prompt(&quot;ВВЕДИТЕ ТИП УЧЕТНОЙ ЗАПИСИ: 0-уч. запись пользователя windows 1-уч. запись группы windows 2-sql пользователь&quot;,&quot;0&quot;); //выводим окно с запросом имени пользователя
      oServer.Logins.Add (oLogin);
      alert (&quot;учетная запись создана!&quot;)
      }
    }
  function StoredProcedures (ProcedureName, output) // функция для запуска хранимой процедуры, с выводом либо в ексель либо на форму
    {
    checked=DataSourceChoise(&quot;sqlserver&quot;);
    if (checked==1)
      {
      var objConn = new ActiveXObject (&quot;ADODB.Connection&quot;) ; 
      var objRecordset = new ActiveXObject (&quot;ADODB.RecordSet&quot;);
      objConn.ConnectionString=DSNSqlserver;                   //строка подключения к источнику данных
      objConn.Open();
      objRecordset = objConn.Execute(ProcedureName);       // выполняем запрос (это может быть как имя процедуры так и sql запрос)
      // выводим результат либо в ексель либо на форму
      if (output == &quot;excel&quot;)
        {
        var oXL = new ActiveXObject (&quot;Excel.Application&quot;);
        oXL.Visible = true;
        oXL.Caption = ProcedureName;          
        oXL.WorkBooks.Add();
        for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле танго :)
          {
          oXL.ActiveCell.Cells(1,i+1).value=objRecordset.Fields.Item(i).Name;  // сначала заполняем первую строчку именами полей запроса
          }
        
        i=0;
        while (objRecordset.EOF != true)
          {
          i=i+1;
          for (j=1;j&lt;=objRecordset.Fields.Count;j++)
            {
            oXL.ActiveCell.Cells(i+2,j).value=objRecordset.Fields.Item(j-1).value;
            }
          objRecordset.MoveNext();
          }
          
        oXL.Columns.AutoFit();  // автоподборка ширины столбцов
        }
      if (output==&quot;native&quot;)
        {
        fields=&quot;&quot;;
        strdb = objRecordset.GetString;
        for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле записываем список полей в переменную fields
          {
          fields=fields+objRecordset.Fields.Item(i).Name+&quot;\t&quot;;
          }
        window.resultat.innerText=fields+&quot;\n------------------------------------------------\n&quot;+strdb;
        }  
      objConn.Close();
      }
    }
  //функции для выполенения хранимых процедур
  if (SqlServerChoise.value==&quot;sp_help&quot;)
    {
    StoredProcedures (&quot;sp_help&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_helpdb&quot;)
    {
    StoredProcedures (&quot;sp_helpdb&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;version&quot;)
    {
    StoredProcedures (&quot;select @@version&quot;,&quot;native&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_tables&quot;)
    {
    StoredProcedures (&quot;sp_tables&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;InfSchemaTables&quot;)
    {
    StoredProcedures (&quot;SELECT * FROM INFORMATION_SCHEMA.TABLES&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;InfSchemaViews&quot;)
    {
    StoredProcedures (&quot;SELECT * FROM INFORMATION_SCHEMA.VIEWS&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;SysDatabaseFiles&quot;)
    {
    StoredProcedures (&quot;select * from sys.database_files&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;SysBackup_devices&quot;)
    {
    StoredProcedures (&quot;select * from sys.backup_devices&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.filegroups&quot;)
    {
    StoredProcedures (&quot;select * from sys.filegroups&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.indexes&quot;)
    {
    StoredProcedures (&quot;select * from sys.indexes&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.foreign_keys&quot;)
    {
    StoredProcedures (&quot;select * from sys.foreign_keys&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.master_files&quot;)
    {
    StoredProcedures (&quot;select * from sys.master_files&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.remote_logins&quot;)
    {
    StoredProcedures (&quot;select * from sys.remote_logins&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.sql_logins&quot;)
    {
    StoredProcedures (&quot;select * from sys.sql_logins&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sys.syslogins&quot;)
    {
    StoredProcedures (&quot;select * from sys.syslogins&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_helpdevice&quot;)
    {
    StoredProcedures (&quot;sp_helpdevice&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_helplogins&quot;)
    {
    StoredProcedures (&quot;sp_helplogins&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_helpserver&quot;)
    {
    StoredProcedures (&quot;sp_helpserver&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_linkedservers&quot;)
    {
    StoredProcedures (&quot;sp_linkedservers&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_monitor&quot;)
    {
    StoredProcedures (&quot;sp_monitor&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_oledb_defdb&quot;)
    {
    StoredProcedures (&quot;sp_oledb_defdb&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_readerrorlog&quot;)
    {
    StoredProcedures (&quot;sp_readerrorlog&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_server_info&quot;)
    {
    StoredProcedures (&quot;sp_server_info&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_who&quot;)
    {
    StoredProcedures (&quot;sp_who&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_who2&quot;)
    {
    StoredProcedures (&quot;sp_who2&quot;,&quot;excel&quot;);
    }
  if (SqlServerChoise.value==&quot;sp_MSgetversion&quot;)
    {
    StoredProcedures (&quot;sp_MSgetversion&quot;,&quot;excel&quot;);
    }
  }
    
function FindSource()  // функция заполняет выпадающий список dbsource списком odbc источников данных и sql серверов
  {
  if (flag!=1)   // по флагу будем определять делели ли мы уже запрос на поиск мс скуль серверов , если делали, то повторяться не будем
    {
    var arrindex=1;
    window.dbsource.clearAttributes();  // очищаем список селект с именем dbsource
    alert (&quot;Выполняется поиск источников данных, программа \&quot;зависнет\&quot; на некоторое время&quot;);
    var oNewNode = document.createElement(&quot;option&quot;);  // создаем элемент для списка селект
    window.dbsource.appendChild(oNewNode);            // добавляем новый узел в dbsource
    oNewNode.innerHTML=&quot;---SQL сервера сети---&quot;;             // Текст элемента
    var oSQLApp = new ActiveXObject (&quot;SQLDMO.Application&quot;)
    var Names = oSQLApp.ListAvailableSQLServers();  // список доступных мс скуль серверов
    for (i= 1; i&lt;= Names.Count; i++)  // в цикле пишем все найденные сервера в список селект
      {
      var oNewNode = document.createElement(&quot;option&quot;);  // создаем элемент для списка селект
      window.dbsource.appendChild(oNewNode);            // добавляем новый узел в dbsource
      oNewNode.innerText=Names.Item(i); //добавляем очередной элемент
      oNewNode.value=Names.Item(i);
      sqlserverlistarr[i]=Names.Item(i);   // заполняем списком sql серверов сети, массив sqlserverlistarr
      }
    var oNewNode = document.createElement(&quot;option&quot;);  // создаем элемент для списка селект
    window.dbsource.appendChild(oNewNode);            // добавляем новый узел в dbsource
    oNewNode.innerHTML=&quot;---ODBC источники данных---&quot;;             // Текст элемента
    //повторяюсь - функция сперта откуда-то из инэта, поэтому комментов мало, да и лень мне выписывать  
    sRegPath = &quot;Software\\ODBC\\ODBC.INI&quot;;
    oLoc = new ActiveXObject(&quot;WbemScripting.SWbemLocator&quot;);
    oSvc = oLoc.ConnectServer(null, &quot;root\\default&quot;);
    oReg = oSvc.Get(&quot;StdRegProv&quot;);
    oMethod = oReg.Methods_.Item(&quot;EnumKey&quot;);
    oInParam = oMethod.InParameters.SpawnInstance_();
    oInParam.hDefKey = &#039;&amp;H80000002&#039;; // HKLM
    oInParam.sSubKeyName = sRegPath;
    oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
    aNames = oOutParam.sNames.toArray();
    for (i = 0; i &lt; aNames.length; i++)
    {
    oMethod = oReg.Methods_.Item(&quot;GetStringValue&quot;);
    oInParam = oMethod.InParameters.SpawnInstance_();
    oInParam.hDefKey = &#039;&amp;H80000002&#039;;
    oInParam.sSubKeyName = sRegPath;
    oInParam.sValueName = aNames[i];
    oOutParam = oReg.ExecMethod_(oMethod.Name, oInParam);
    if ((aNames[i]!=&quot;ODBC Data Sources&quot;) &amp; (aNames[i]!=&quot;ODBC File DSN&quot;) )
      {
      var oNewNode = document.createElement(&quot;option&quot;);  // создаем элемент для списка селект
      window.dbsource.appendChild(oNewNode);            // добавляем новый узел в dbsource
      oNewNode.innerText=aNames[i];
      oNewNode.value=aNames[i];
      odbclistarr[arrindex]=aNames[i]; //  // заполняем списком источников данных, массив sqlserverlistarr
      arrindex=arrindex+1;      // отдельная переменная для заполнения массива, чтобы в него не добавились две undefined ячейки, которые получаются в результате исключения строк &quot;ODBC Data Sources&quot; и &quot;ODBC File DSN&quot; из списка источников данных 
      }
    }
  }
  if (flag!=1)
    {
    alert (&quot;Поиск источников данных выполнен, \nтеперь вы можете просмотреть полученные результаты, нажав на выпадающий список - \&quot;Выберите источник данных\&quot;&quot;);
    }
    flag=1;  // по флагу будем определять делали ли мы уже запрос на поиск мс скуль серверов в сети, если делали, то повторяться не будем, потому что долго он их ищет
  }
                  
function mysql()        // функция для работы с Mysql сервером
  {
  function MySqlQuery (QueryStr, output) // функция для запуска хранимой процедуры, с выводом либо в ексель либо на форму
    {
    checked=DataSourceChoise(&quot;odbc&quot;);
    if (checked==1)
      {
      var objConn = new ActiveXObject (&quot;ADODB.Connection&quot;) ; 
      var objRecordset = new ActiveXObject (&quot;ADODB.RecordSet&quot;);
      objConn.ConnectionString=DSNSqlserver;                   //строка подключения к источнику данных
      fields=&quot;&quot;;
      objConn.Open();
      objRecordset = objConn.Execute(QueryStr);       // выполняем запрос
      // выводим результат либо в ексель либо на форму
      if (output == &quot;excel&quot;)
        {
        var oXL = new ActiveXObject (&quot;Excel.Application&quot;);
        oXL.Visible = true;
        oXL.Caption = QueryStr;          
        oXL.WorkBooks.Add();
        for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле танго :)
          {
          oXL.ActiveCell.Cells(1,i+1).value=objRecordset.Fields.Item(i).Name;  // сначала заполняем первую строчку именами полей запроса
          }

        i=0;
        while (objRecordset.EOF != true)
          {
          i=i+1;
          for (j=1;j&lt;=objRecordset.Fields.Count;j++)
            {
            oXL.ActiveCell.Cells(i+2,j).value=objRecordset.Fields.Item(j-1).value;
            }
          objRecordset.MoveNext();
          }
        }
      oXL.Columns.AutoFit();  // автоподборка ширины столбцов
      if (output==&quot;native&quot;)
        {
        fields=&quot;&quot;;
        strdb = objRecordset.GetString;
        for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле записываем список полей в переменную fields
          {
          fields=fields+objRecordset.Fields.Item(i).Name+&quot;\t&quot;;
          }
        window.resultat.innerText=fields+&quot;\n------------------------------------------------\n&quot;+strdb;
        }  
      objConn.Close();
      }
    }
  
  if (mysqlchoise.value == &quot;showdatabases&quot;)
    {
      MySqlQuery (&quot;show databases&quot;,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;showtables&quot;)   // список таблиц текущей базы данных
    {
      MySqlQuery (&quot;show tables&quot;,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;showfields&quot;)    //список полей таблицы базы данных
    {
      tablename=window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ, ОПИСАНИЕ КОТОРОЙ НЕОБХОДИМО ПОЛУЧИТЬ&quot;,&quot;user&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery(&quot;describe &quot;+tablename,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;processlist&quot;)        // список выполняющихся в данный момент запросов от клиентов к mysql серверу
    {
      MySqlQuery( &quot;SHOW PROCESSLIST&quot;,&quot;native&quot;);
      if (interval == &quot;&quot;)
      {
      interval=window.prompt(&quot;ЗАДАЙТЕ ИНТЕРВАЛ ОБНОВЛЕНИЯ В СЕКУНДАХ&quot;,10); //выводим окно с запросом имени таблицы
      timerID = setTimeout(&quot;mysql()&quot;,interval*1000);
      }
    else
      {
      timerID = setTimeout(&quot;mysql()&quot;,interval*1000);
      }
    }
  if (mysqlchoise.value == &quot;showversion&quot;)   // версия сервера и имя текущего пользователя
    {
      vers=MySqlQuery (&quot;select version()&quot;,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;curruser&quot;)
    {  
    MySqlQuery (&quot;select user()&quot;,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;tablesstatus&quot;)        // информация о всех таблицах базы данных
    {
      dbname=window.prompt(&quot;ВВЕДИТЕ ИМЯ БАЗЫ ДАННЫХ ИНФОРМАЦИЮ О ТАБЛИЦАХ КОТОРОЙ НЕОБХОДИМО ПОЛУЧИТЬ&quot;,&quot;mysql&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery (&quot;SHOW TABLE STATUS FROM &quot;+dbname,&quot;excel&quot;);
    }
  if (mysqlchoise.value == &quot;showcreatetable&quot;)   // системные переменные my sql сервера
    {
      tablename=window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ, ОПИСАНИЕ КОТОРОЙ НЕОБХОДИМО ПОЛУЧИТЬ В ФОРМАТЕ ЗАПРОСА SQL&quot;,&quot;user&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery(&quot;show create table &quot;+tablename,&quot;native&quot;);
      }
  if (mysqlchoise.value == &quot;showvariables&quot;)   // системные переменные сервера
    {
      MySqlQuery(&quot;show variables&quot;,&quot;native&quot;)
    }
  if (mysqlchoise.value == &quot;showstatus&quot;)   // статус (статистика сервера)
    {
      MySqlQuery (&quot;show status&quot;, &quot;native&quot;);
      }
  if (mysqlchoise.value == &quot;checktable&quot;)    //проверка таблицы
    {
      tablename=window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ, КОТОРУЮ НЕОБХОДИМО ПРОВЕРИТЬ НА НАЛИЧИЕ ОШИБОК&quot;,&quot;user&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery (&quot;check table &quot;+tablename,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;optimizetable&quot;)    //оптимизация таблицы
    {
      tablename=window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ, КОТОРУЮ НЕОБХОДИМО ОПТИМИЗИРОВАТЬ&quot;,&quot;user&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery (&quot;optimize table &quot;+tablename,&quot;native&quot;);
    }
  if (mysqlchoise.value == &quot;repairtable&quot;)    //восстановление битой таблицы
    {
      tablename=window.prompt(&quot;ВВЕДИТЕ ИМЯ ТАБЛИЦЫ, КОТОРУЮ НЕОБХОДИМО ОПТИМИЗИРОВАТЬ&quot;,&quot;user&quot;); //выводим окно с запросом имени таблицы
      MySqlQuery(&quot;repair table &quot;+tablename,&quot;native&quot;);
    }
  }

function ExecQuery(typequery)     // выполнить запрос к базе данных
  {
  if (window.sqlqery.value !==&quot;&quot;)
    {
    checked=DataSourceChoise(&quot;all&quot;);  // нам можно использовать и источники данных и список sql серверов сети
    if (checked==1) 
      {
      var objConn = new ActiveXObject (&quot;ADODB.Connection&quot;) ;
      if (DSNSqlserver != &quot;&quot;)
        {
        objConn.ConnectionString=DSNSqlserver;
        }
      else
        {
        objConn.ConnectionString=window.dbsource.value;
        }
      window.resultat.innerText=&quot; &quot;;                                // очищаем поле с результатом выполненных команд
      strdb=&quot;&quot;;
      QueryStr=window.sqlqery.value;              // запрос к базе данных
      objConn.Open();
      objRecordset = objConn.Execute(QueryStr);  //выполнить запрос
      
      if (typequery==&quot;excel&quot;)  // сработает если будет нажата кнопка - &quot;Выполнить запрос (Excel)&quot;
        {
        var oXL = new ActiveXObject (&quot;Excel.Application&quot;);
        oXL.Visible = true;          
        oXL.Caption=QueryStr;
        oXL.WorkBooks.Add();
        for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле танго :)
          {
          oXL.ActiveCell.Cells(1,i+1).value=objRecordset.Fields.Item(i).Name;  // сначала заполняем первую строчку именами полей запроса
          }
        i=0;
        while (objRecordset.EOF != true)
          {
          i=i+1;
          for (j=1;j&lt;=objRecordset.Fields.Count;j++)
            {
            oXL.ActiveCell.Cells(i+2,j).value=objRecordset.Fields.Item(j-1).value;
            }
          objRecordset.MoveNext();
          }
        oXL.Columns.AutoFit();  // автоподборка ширины столбцов
        }
    
    if (typequery==&quot;native&quot;)  // данные запроса будут возращены в текстовое поле на форме
      {
      fields=&quot;&quot;;
      //strdb = objRecordset.GetString;
      for (i=0; i&lt;objRecordset.Fields.count;i++)   // в цикле записываем список полей в переменную fields
        {
        fields=fields+objRecordset.Fields.Item(i).Name+&quot;\t&quot;;
        }
        window.resultat.innerText=fields+&quot;\n------------------------------------------------\n&quot;
        values=&quot;\n&quot;;
        i=0;
        while (objRecordset.EOF != true)
          {
          i=i+1;
          for (j=1;j&lt;=objRecordset.Fields.Count;j++)
            {
            values=values+objRecordset.Fields.Item(j-1).value+&quot;\t&quot;;
            }
          objRecordset.MoveNext();
          values=values+&quot;\n&quot;;
          }
          window.resultat.innerText=window.resultat.innerText+values;
        
         
      }
    objConn.Close(); 
    }
  }
  else
    {
    alert (&quot;Вы не ввели запрос!&quot;);
    }
  }
  

function notes() //функция добавляющая заметку в конец этого файла, заметки хранятся в текущем файле
  {
  // функция запроса добавления заметки ()
  function requestaddnote()
  {
  addnote=window.confirm(&quot;Добавить заметку? Если нужно просмотреть заметки нажмите ОТМЕНА!&quot;);
  if (addnote==true)
    {
    NoteText = window.prompt(&quot;Введите текст заметки&quot;, &quot;текст_заметки&quot;); 
    if (NoteText == &quot;&quot;)
      {
      alert (&quot;Вы ничего не ввели!&quot;);
      }
    else
      {
      AddNotes (NoteText) // запись заметки в файл
      }
    }
  else
    {
    ReadAllNotes ();               //чтение заметок из файла
    }
  }


// чтение заметок из файла
function ReadAllNotes ()
  {
  var fso= new ActiveXObject (&quot;Scripting.FileSystemObject&quot;);  // создать объект FSO
  var itog=&quot;&quot;;
  UrlPath=window.location.pathname;
  //FileNamePath=UrlPath.replace(/\\/g,&quot;\\\\&quot;);
  FileNamePath=UrlPath.replace(/%20/g,&quot; &quot;);
  txt=fso.OpenTextFile(FileNamePath,1,false);                   // открыть файл для чтения
  for (i=1;i&lt;900;i++) 
    {
    txt.SkipLine()                                                   // пропускаем бОльшую часть файла чтобы лишнюю нагрузку на комп не создавать, не сравнивать бесполезные строки
    }
  while (txt.AtEndOfStream != true)                    // пока не достигнут конец файла,
    {
    Kol_voStrok=txt.Line;                                    // s= номер текущей строки открытого файла
    CurrentStroka = txt.ReadLine();                         // прочитать строку (то есть перейти к следующей строке)
    // если в текущей строке найдена нужная подстрока, то читаем все логины в файле
    if (CurrentStroka == &quot;&lt;!--notes--&gt;&quot;)          
      {
      while (txt.AtEndOfStream != true)
        {
        StrokaPoiska = txt.ReadLine(); 
        StrokaPoiska=StrokaPoiska.replace(/&lt;!--/g,&quot; &quot;);
        StrokaPoiska=StrokaPoiska.replace(/--&gt;/g,&quot; &quot;)
        itog=itog+StrokaPoiska+&quot;\n&quot;;
        }
      }   
    }
  txt.Close();
  if (itog == &quot;&quot;)
    {
    alert (&quot;Заметок нет&quot;);
    }
    window.resultat.innerText=itog;  
  }

//добавление заметок в файл  
function AddNotes (passline)
  {
  var fso= new ActiveXObject (&quot;Scripting.FileSystemObject&quot;);  // создать объект FSO
  var UrlPath=window.location.pathname;
  FileNamePath=UrlPath.replace(/%20/g,&quot; &quot;);
  txt=fso.OpenTextFile(FileNamePath, 8, false);
  txt.WriteLine(&quot;&lt;!--&quot;+passline+&quot;--&gt;&quot;);
  txt.Close();
  }
//AddPass();



  requestaddnote();
  }

function openWin(winname)  //функция запуска программы
  {
  var wsh=new ActiveXObject(&quot;WScript.Shell&quot;);
  wsh.Run(winname,1);  
  }
    
--&gt;
&lt;/SCRIPT&gt;
&lt;/HEAD&gt;

&lt;BODY lang=RU bgColor=silver onload=&#039;resize()&#039;&gt;
&lt;H4 align=center&gt;SQL Toolz 
&lt;HR align=center width=&quot;95%&quot; SIZE=5&gt;

&lt;TABLE width=&quot;95%&quot; border=0&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
    &lt;TD align=left&gt;
    &lt;center&gt;&lt;select id=dbsource onclick=FindSource() name=dbsource&gt;
    &lt;option value=FindSource selected&gt;&amp;nbsp;Выберите ИСТОЧНИК ДАННЫХ&amp;nbsp;&lt;/option&gt;
    &lt;/select&gt;&lt;/center&gt;
    &lt;/TD&gt;
    &lt;TD align=right&gt;Логин: &lt;input id=login type=text size=10 name=login&gt; Пароль: &lt;input id=pass type=password size=10 name=pass&gt; Имя базы данных:&lt;input id=databasename type=text size=10 value=master name=databasename&gt;WinAuth:&lt;input type=checkbox name=winauth id=winauth value=winauth &gt; 
    &lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
&lt;/TABLE&gt;

&lt;HR align=center width=&quot;95%&quot;&gt;

&lt;p&gt;&lt;/p&gt;

&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;95%&quot; border=0&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
    &lt;TD&gt;
      &lt;P align=left&gt;&lt;select id=raznoechoise&gt;
      &lt;option selected &gt;РАЗНОЕ&lt;/option&gt;
      &lt;option value=odbc&gt;--- --- ---&lt;/option&gt;
      &lt;option value=odbc&gt;Список источников данных ODBC&lt;/option&gt;
      &lt;option value=createmdb&gt;Создать базу данных .MDB&lt;/option&gt; 
      &lt;option value=listtables&gt;Cписок таблиц Источника данных&lt;/option&gt;
      &lt;/select&gt;
      &lt;input id=tools onclick=raznoe() type=button value=ок name=raznoebutton&gt; 
      &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=left&gt;&lt;select id=SqlServerChoise&gt; 
      &lt;option value=odbc selected &gt;MS SQL Server&lt;/option&gt; 
      &lt;option &gt;--- ИНФОРМАЦИЯ ---&lt;/option&gt; 
      &lt;option value=sqlserverslist&gt;Список MsSql серверов в сети&lt;/option&gt; 
      &lt;option value=ServerProperty &gt;Список свойств Sql сервера&lt;/option&gt; 
      &lt;option value=adSchemaCatalogs&gt;Список баз данных сервера&lt;/option&gt; 
      &lt;option value=EnumProcesses&gt;Список процессов сервера&lt;/option&gt; 
      &lt;option value=EnumLocks&gt;Список блокировок сервера&lt;/option&gt; 
      &lt;option value=ListMembers&gt;Роли пользователя&lt;/option&gt; 
      &lt;option value=version&gt;Версия Sql сервера&lt;/option&gt; 
      &lt;option value=ScriptTablDB&gt;Отскриптовать таблицу или базу&lt;/option&gt; 
      &lt;option&gt;--- ФУНКЦИИ ---&lt;/option&gt;
      &lt;option value=createuser&gt;Создать юзера&lt;/option&gt; 
      &lt;option&gt;--- ХРАНИМЫЕ ПРОЦЕДУРЫ ---&lt;/option&gt;
      &lt;option value=sp_help&gt;sp_help&lt;/option&gt; 
      &lt;option value=sp_helpdb&gt;sp_helpdb&lt;/option&gt; 
      &lt;option value=sp_tables&gt;sp_tables&lt;/option&gt; 
      &lt;option value=sp_helpdevice&gt;sp_helpdevice&lt;/option&gt; 
      &lt;option value=sp_helplogins&gt;sp_helplogins&lt;/option&gt; 
      &lt;option value=sp_helpserver&gt;sp_helpserver&lt;/option&gt; 
      &lt;option value=sp_linkedservers&gt;sp_linkedservers&lt;/option&gt; 
      &lt;option value=sp_monitor&gt;sp_monitor&lt;/option&gt; 
      &lt;option value=sp_oledb_defdb&gt;sp_oledb_defdb&lt;/option&gt; 
      &lt;option value=sp_readerrorlog&gt;sp_readerrorlog&lt;/option&gt; 
      &lt;option value=sp_server_info&gt;sp_server_info&lt;/option&gt; 
      &lt;option value=sp_who&gt;sp_who&lt;/option&gt; 
      &lt;option value=sp_who2&gt;sp_who2&lt;/option&gt; 
      &lt;option value=sp_MSgetversion&gt;sp_MSgetversion&lt;/option&gt; 
      &lt;option&gt;--- БАЗА ДАННЫХ ---&lt;/option&gt;
      &lt;option value=InfSchemaTables&gt;Таблицы пользователя&lt;/option&gt; 
      &lt;option value=InfSchemaViews&gt;Представления пользователя&lt;/option&gt; 
      &lt;option value=SysDatabaseFiles&gt;Файлы Базы Данных&lt;/option&gt; 
      &lt;option value=SysBackup_devices&gt;Backup_devices&lt;/option&gt; 
      &lt;option value=sys.filegroups&gt;Группы файлов&lt;/option&gt; 
      &lt;option value=sys.master_files&gt;Master_files&lt;/option&gt; 
      &lt;option value=sys.foreign_keys&gt;Первичные ключи&lt;/option&gt;
      &lt;option value=sys.indexes&gt;Индексы&lt;/option&gt;
      &lt;option value=sys.remote_logins&gt;Remote_logins &lt;/option&gt;
      &lt;option value=sys.sql_logins&gt;Sql_logins &lt;/option&gt;
      &lt;option value=sys.syslogins&gt;SysLogins &lt;/option&gt;
      &lt;/select&gt;
      &lt;input id=SqlDmoButton onclick=SqlServer() type=button value=ок&gt; 
      &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;select id=mysqlchoise&gt; 
      &lt;option selected&gt;MY SQL&lt;/option&gt; 
      &lt;option&gt;--- ИНФОРМАЦИЯ ---&lt;/option&gt; 
      &lt;option value=showdatabases&gt;Список баз данных&lt;/option&gt; 
      &lt;option value=showtables&gt;Список таблиц базы данных&lt;/option&gt; 
      &lt;option value=showfields &gt;Описание выбранной таблицы&lt;/option&gt; 
      &lt;option value=tablesstatus&gt;Информация о всех таблицах БД&lt;/option&gt; 
      &lt;option value=processlist&gt;Cписок выполняющихся запросов&lt;/option&gt; 
      &lt;option value=showversion&gt;Версия сервера&lt;/option&gt; 
      &lt;option value=curruser&gt;Уч. запись пользователя&lt;/option&gt; 
      &lt;option value=showvariables&gt;Системные переменные сервера&lt;/option&gt; 
      &lt;option value=showstatus&gt;Статус (статистика) сервера&lt;/option&gt; 
      &lt;option value=showcreatetable&gt;Отскриптовать таблицу&lt;/option&gt; 
      &lt;option&gt;--- ФУНКЦИИ ---&lt;/option&gt;
      &lt;option value=checktable&gt;Проверить таблицу&lt;/option&gt; 
      &lt;option value=optimizetable&gt;Оптимизировать таблицу&lt;/option&gt; 
      &lt;option value=repairtable&gt;Ремонт таблицы&lt;/option&gt;
      &lt;/select&gt; 
      &lt;input id=Button2 onclick=mysql() type=button value=ок name=mysql&gt; 
      &lt;/P&gt;
    &lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
&lt;/TABLE&gt;

&lt;p&gt;&lt;/p&gt;
&lt;center&gt;&lt;/center&gt;

&lt;TABLE width=&quot;95%&quot; align=center border=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
    &lt;TD&gt;
      &lt;CENTER&gt; &lt;p&gt;Выполнить SQL запрос&lt;/p&gt;&lt;/CENTER&gt;
    &lt;/TD&gt;
    &lt;TD align=middle&gt;Результат&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;TR&gt;
    &lt;TD vAlign=top&gt;
      &lt;center&gt;&lt;textarea id=sqlqery name=sqlqery rows=10 cols=35&gt;&lt;/textarea&gt; &lt;/center&gt;
      &lt;p&gt;&lt;center&gt;&lt;input id=SendQuery onclick=&#039;ExecQuery(&quot;native&quot;)&#039; type=button value=&quot;Выполнить запроc&quot; name=SendQuery&gt;&lt;/center&gt;&lt;/p&gt;
      &lt;hr width=95%&gt;
      &lt;center&gt;Выполнить запрос вернув данные в Excel (для более удобной работы с данными)&lt;p&gt;&lt;input id=Button3 onclick=&#039;ExecQuery(&quot;excel&quot;)&#039; type=button value=&quot;Выполнить запроc (Excel)&quot; name=SendQuery&gt;&lt;/p&gt;&lt;/center&gt;
    &lt;/TD&gt;
    &lt;TD&gt; 
      &lt;center&gt;&lt;textarea id=resultat name=resultat rows=25 cols=79&gt;&lt;/textarea&gt;&lt;/center&gt;
    &lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
&lt;/TABLE&gt;

&lt;p&gt;&lt;/p&gt;

&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=note type=button value=&#039;Заметки&#039; onclick=&#039;notes()&#039;&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button1 onclick=&#039;openWin(&quot;%SystemRoot%\\system32\\odbcad32.exe&quot;)&#039; type=button value=&#039;Источники данных&#039;&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button13 onclick=&#039;openWin(&quot;Notepad&quot;)&#039; type=button value=Notepad&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button16 onclick=&#039;openWin(&quot;Cmd&quot;)&#039; type=button value=&quot;     Cmd     &quot;&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button17 onclick=&#039;openWin(&quot;Msconfig&quot;)&#039; type=button value=Msconfig&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button18 onclick=&#039;openWin(&quot;taskmgr&quot;)&#039; type=button value=TaskMgr&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt;
      &lt;P align=center&gt;&lt;INPUT id=Button15 onclick=&#039;openWin(&quot;regedit&quot;)&#039; type=button value=&quot;Regedit&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
    &lt;TD&gt; &lt;P align=center&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
&lt;/TABLE&gt;

&lt;HR align=center width=&quot;95%&quot;&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
&lt;!--В следующих строках хранятся заметки, поэтому не удаляйте строку с текстом notes, остальные строки на ваше усмотрение--&gt;
&lt;!--notes--&gt;
&lt;!--Все существующие на MS SQLсервере Учетные записи   -  select * from master..syslogins--&gt;</code></pre></div><p>Автор - <strong>null</strong>.</p><p><em>MoonRabbit Update:<br />Утилита требует установки клиента SQL Server Distributed Management Objects (SQL-DMO).<br />Данный клиент ставиться или с основными утилитами SQL Server, или отдельно:<br /><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;248241">INF: Enabling SQL DMO Clients Without Installing the Client Side Utilities</a></em></p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2008-08-13T08:01:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=13209#p13209</id>
		</entry>
</feed>
