【发布时间】:2009-07-23 20:40:45
【问题描述】:
我有一个非常简单的 Javascript 函数,它可以访问 MS SQL 服务器并返回一些记录。有一个单元格,我只想在它唯一时才显示在顶部表格行中。 我相信我的问题是 var 提升,因为我在 while 循环中分配的变量不起作用,因为该值不是从要比较的最后记录中携带的。这是代码
function searchIndex()
{
var termcounter = "";
flyoutHTML = '<table>';
var adOpenDynamic = 2
var adLockOptimistic = 3
var conn = new ActiveXObject("ADODB.Connection");
var connectionstring = "Provider=SQLOLEDB;Server=XXXXXXXX;INTEGRATED SECURITY=SSPI;DATABASE=YYYYYYYYYY;"
conn.Open(connectionstring)
var rs = new ActiveXObject("ADODB.Recordset")
rs.Open("SELECT field1, field2, field4, field4, field5 FROM dbo.table;", conn)
if (rs.eof)
{
flyoutHTML += '<tr><td align="center">No Records Found!</td></tr>';
}
else
{
while(!rs.eof)
{
if (termcounter != rs(0))
{
var termcounter = rs(0);
flyoutHTML += '<tr>';
flyoutHTML += '<td colspan="3">' + rs(0) + '</td>';
flyoutHTML += '</tr>';
}
flyoutHTML += '<tr>';
flyoutHTML += '<td>' + rs(1) + '</td><td>' + rs(2) + '</td><td>' + rs(3) + '</td>';
flyoutHTML += '</tr>';
rs.movenext
}
rs.close
conn.close
flyoutHTML += '</table>';
}
【问题讨论】:
-
Google 正变得无所不在。我刚刚在 Google 上搜索了“javascript var 提升”以获取一些官方文档,页面上的第一个结果就是这个问题。
标签: javascript scope