Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ADO Recordset into JScript/JavaScript Array

79 views
Skip to first unread message

AA

unread,
Dec 2, 2003, 4:06:15 AM12/2/03
to
I have the following code:

var Cnn = 'Provider=SQLOLEDB;Data Source=dbserv1;Initial
Catalog=prodsql; User ID=PRODSQL;Password=ps;';
var Sql = 'Select * from Basic where membno < 100';
var con = new ActiveXObject("ADODB.Recordset");'
con.Open(Sql,Cnn);
var rs = con.GetRows();

At this point, rs ought to contain m rows x n columns and
I want to be able to index rs, e.g. rs[0][1] for the first
row, second column etc. This fails.

How do you populate a JavaScript array with the contents
of an ADO Recordset?

Thanks

Martin Honnen

unread,
Dec 2, 2003, 7:41:20 AM12/2/03
to

AA wrote:

> I have the following code:
>
> var Cnn = 'Provider=SQLOLEDB;Data Source=dbserv1;Initial
> Catalog=prodsql; User ID=PRODSQL;Password=ps;';
> var Sql = 'Select * from Basic where membno < 100';
> var con = new ActiveXObject("ADODB.Recordset");'
> con.Open(Sql,Cnn);
> var rs = con.GetRows();

If you want to use GetRows you need to do some conversion, first create
a VBArray then call toArray to get a one dimensional JScript Array, here
is an example

<%@ Language="JScript" %>
<script runat="server" language="JScript">
function readTable () {
var adoConnection = Server.CreateObject("ADODB.Connection");
var connectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ Server.MapPath("/somePath/someFile.mdb");
adoConnection.Open(connectionString);
var sqlCommand = "SELECT * FROM Menus";
var adoRecordset = adoConnection.Execute(sqlCommand);
var vbRowsArray = new VBArray(adoRecordset.GetRows());
adoRecordset.Close();
adoRecordset = null;
adoConnection.Close();
adoConnection = null;
var numberOfRows = vbRowsArray.ubound(2) + 1;
var numberOfColumns = vbRowsArray.ubound(1) + 1;
var rowsArray = vbRowsArray.toArray();
rowsArray.numberOfRows = numberOfRows;
rowsArray.numberOfColumns = numberOfColumns;
return rowsArray;
}
</script>
<%
var rowsArray = readTable();

Response.Write("numberOfRows: " + rowsArray.numberOfRows + ";
numberOfColumns: " + rowsArray.numberOfColumns + "<br>\n");
Response.Write("<hr>");

var html = '<table border="1">';

for (var i = 0; i < rowsArray.length; i = i + rowsArray.numberOfColumns) {
html += '<tr>\n';
for (var j = 0; j < rowsArray.numberOfColumns; j++) {
html += '<td>' + '"' + (i + j) + '": ' + rowsArray[i + j] + '</td>\n';
}
html += '</tr>';
}
html += '</table>\n';

Response.Write(html);
%>

--

Martin Honnen
http://JavaScript.FAQTs.com/

AA

unread,
Dec 2, 2003, 10:58:05 AM12/2/03
to
Many thanks.

>.
>

0 new messages