Combining North Pole with South Pole: JavaScript with SQL Server 2000
(Page 1 of 6 )
Every DBA/database developer would certainly(的确) be shocked to think about
a relationship between client-side JavaScript and SQL Server 2000.
It's real.
Not every programmer knows that we can connect and break into SQL Server 2000
simply by using client-side JavaScript.
This article covers the positive aspects of connecting to a SQL Server 2000 database
本文容纳了切实有效的实例
lying on the client computer (or the browser computer).
依赖客户端电脑(或电脑的浏览器)
If you are new to working with the types of examples in this article,
I suggest you go through my series "Advanced JavaScript with Internet Explorer"
on this web site.
You can directly copy and paste all of the code samples present in this article
into a file with the extension ".htm" and open in Internet Explorer 5.5+.
To successfully connect to the database, the database must be installed
with WMI extensions of SQL Server 2000.
First of all, you need to install "WMI SQL Server Administration Provider" on
an existing instance of SQL Server 2000 (if it is not already installed).
This is not part of the default or custom installation.
You need to install it separately from SQL server installations.
You can find the "WMI SQL Server Administration Provider" installation files
at the "x86otherwmi" path of your SQL Server 2000 installation CD.
To be frank(坦诚地说), I really didn't check this on SQL Server 7.0.
So, my focus will always be on SQL Server 2000 in this article.
How to get a list of all database names existing in a SQL Server 2000 instance(实例or对象) using JavaScript
Now, let us try to develop a simple script (JavaScript)
which shows the technique(技巧) for retrieving(找回OR重新获取)
all database names available in an SQL Server 2000 instance.
The entire code for the sample is as follows:
完整的代码如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
function Button1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT Name FROM MSSQL_Database");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Name + "</td>");
document.write("<td>" + p.SQLServerName + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
function dispHeading()
{
document.write("<thead>");
document.write("<td>Name</td>");
document.write("<td>SQLServerName</td>");
document.write("</thead>");
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1" language="javascript" onclick="return Button1_onclick()">
</body>
</html>
In the above code the "meta" tags are not necessary.
They have been automatically added by Visual Studio.
The above code will automatically list all database
names available in the SQL Server 2000 instance belonging to the client.
It mainly lists the names of databases along with the SQL Server Name
(in this case we are connecting only to the default instance).
To retrieve this information, I used a built-in class,
"MSSQL_Database," available in the "rootMicrosoftSQLServer" namespace.
The "for" loop I used in the above code iterates(反复) for
every database present in the SQL Server instance and finally retrieves only the properties of that database.
Combining North Pole with South Pole: JavaScript with SQL Server 2000 - How to get a list of all table names available in a SQL Server 2000 database using JavaScript
(Page 2 of 6 )
As the previous section has shown only the database names,
we shall now try to develop a simple script (JavaScript) which shows the technique(技巧) for retrieving
all table names available in a SQL Server 2000 database.
The entire code for the sample is as follows:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
function Button1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT Name FROM MSSQL_Table WHERE DatabaseName = 'Northwind'");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Name + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
function dispHeading()
{
document.write("<thead>");
document.write("<td>Name</td>");
document.write("</thead>");
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1" language="javascript" onclick="return Button1_onclick()">
</body>
</html>
The above code will automatically list all table names available in the database
"Northwind" of a SQL Server 2000 instance belonging to the client.
To retrieve this information, I used a built-in class, "MSSQL_Table,"
available in the "rootMicrosoftSQLServer" namespace.
The "for" loop I used in the above code iterates for every table present in the SQL Server database and finally retrieves only the properties of that table.
Combining North Pole with South Pole: JavaScript with SQL Server 2000 - How to get a list of all columns along with their table names available in a SQL Server 2000 database using JavaScript
(Page 3 of 6 )
As the previous section has shown only the table names,
we shall now try to develop a simple script (JavaScript) which shows the technique for retrieving all column names available in a SQL Server 2000 database.
The entire code for the sample is as follows:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/
intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
functionButton1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT Name,TableName FROM
MSSQL_Column WHERE DatabaseName = 'Northwind'");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Name + "</td>");
document.write("<td>" + p.TableName + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
functiondispHeading()
{
document.write("<thead>");
document.write("<td>Name</td>");
document.write("<td>TableName</td>");
document.write("</thead>");
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1"
language="javascript" onclick="return Button1_onclick()">
</body>
</html>
The above would automatically list all columns names (along with their table names) available in the database "Northwind" of a SQL Server 2000 instance belonging to the client. To retrieve this information, I used a built-in class, "MSSQL_Column," available in the "rootMicrosoftSQLServer" namespace. The "for" loop I used in the above code iterates for every column present in the SQL Server database and finally retrieves only the properties of that column.
Combining North Pole with South Pole: JavaScript with SQL Server 2000 - How to get a list of all views available in a SQL Server 2000 database using JavaScript
(Page 4 of 6 )
Now, let us develop a simple script (JavaScript) which shows the technique for retrieving all views available in a SQL Server 2000 instance. The entire code for the sample is as follows:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/
intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
functionButton1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT * FROM MSSQL_View");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Name + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
functiondispHeading()
{
document.write("<thead>");
document.write("<td>Name</td>");
document.write("</thead>");
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1"
language="javascript" onclick="return Button1_onclick()">
</body>
</html>
The above code will automatically list all view names available in the SQL Server 2000 instance belonging to the client. To retrieve this information, I used a built-in class,
"MSSQL_view," available in the "rootMicrosoftSQLServer" namespace. The "for" loop I used in the above code iterates for every view present in the SQL Server instance and finally retrieves only the properties of that view
http://www.devarticles.com/c/a/J ... -SQL-Server-2000/4/
Combining North Pole with South Pole: JavaScript with SQL Server 2000 - How to get the source code (or SELECT statement) of a single view available in a SQL Server 2000 database using JavaScript
(Page 5 of 6 )
In the previous section, I gave you only the view names. I know that this is not very useful. Let us further extend the code and develop a simple script (JavaScript) which shows the technique for retrieving the SELECT statement of a view available in a SQL Server 2000 database. The entire code for the sample is as follows:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/
intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
functionButton1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT * FROM MSSQL_View where name='[dbo].[Invoices]'");
var e = new Enumerator (properties);
var p = e.item ();
document.write(p.Text);
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1"
language="javascript" onclick="return Button1_onclick()">
</body>
</html>
Now, let us develop a simple script (JavaScript) which shows the technique for retrieving all stored procedures available in a SQL Server 2000 database. The entire code for the sample is as follows:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/
intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
functionButton1_onclick() {
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".","rootMicrosoftSQLServer");
var properties = service.ExecQuery("SELECT * FROM MSSQL_StoredProcedure
WHERE databasename='Northwind'");
var e = new Enumerator (properties);
document.write("<table border=1>");
dispHeading();
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>" + p.Name + "</td>");
document.write("<td>" + p.Text + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
functiondispHeading()
{
document.write("<thead>");
document.write("<td>Name</td>");
document.write("<td>Text</td>");
document.write("</thead>");
}
//-->
</script>
</head>
<body>
<INPUT id="Button1" type="button" value="Button" name="Button1"
language="javascript" onclick="return Button1_onclick()">
</body>
</html>
The above code will automatically list all stored procedure names (along with the source code) available in the database "Northwind" of a SQL Server 2000 instance belonging to the client. To retrieve this information, I used a built-in class, "MSSQL_StoredProcedure," available in the "rootMicrosoftSQLServer" namespace. The "for" loop I used in the above code iterates for every stored procedure present in the SQL Server database and finally retrieves only the properties of that stored procedure.
Any comments, suggestions, bugs, errors, feedback etc. are highly appreciated at
jag_chat@yahoo.com.
=====================================================================
下载控件了,在ZK和XP测试均没通过 ????