小编Siv*_*esh的帖子

SQL Server 2008查询编辑器更改查询逻辑

我在SQL Server 2008中手工编写了一个简单的SQL,如下所示;

SELECT * FROM Tab1 WHERE A='1' AND (B='1' OR C='1');

懒惰我在查询编辑器中打开此查询以验证语法并在对话框上按下确定而不进行任何更改.

我注意到查询编辑器已将我的查询更改为:

SELECT * FROM Tab1 WHERE A='1' AND (B='1') OR (C='1');

显然,这会改变SQL的逻辑并根据您执行的操作返回不同的结果.

我经常使用查询编辑器来验证复杂查询的语法.所以有点担心像这样的微妙变化会变得没有意义,但会改变结果.

这是设计师的特色吗?我能做些什么来改变这种行为吗?

编辑:感谢您指出编辑器所做的更改与上面的完全不同,但仍然会修改查询,尽管结果是相同的.

谢谢

sql sql-server ssms sql-server-2008

8
推荐指数
1
解决办法
590
查看次数

ADODB RecordSet作为Access Report RecordSource

我在Access 2003中有一个简单的表单,一个查询和一个报表.我必须使用VBA操作记录集中的查询结果,然后将其作为RecordSource传递给报表.

如果我将记录集声明为RecordSet并使用其Name属性作为报告的RecordSource,那么它正在工作.但是,因为我需要编辑记录集,所以尽管如下使用ADODB RecordSet会更容易.

记录集Dim rs As ADODB.RecordSet在全局模块中声明.其余的代码是;

Dim db As Database
Set db = CurrentDb
Dim con As ADODB.Connection
Set con = CurrentProject.Connection
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = con
rs.Source = "Select * from XXX"
rs.LockType = adLockOptimistic
rs.CursorType = adOpenKeyset
rs.Open

'manipulate rs here....'
Run Code Online (Sandbox Code Playgroud)

我曾经将报告的RecordSource作为myReport.RecordSource = rs.Name传递.但是ADODB没有Name属性.

如何将此记录集作为其RecordSource传递给报表?

谢谢

ms-access vba adodb recordset access-vba

7
推荐指数
1
解决办法
1万
查看次数

SQL之间的from和to值的顺序

我正在SQL Server中创建一个简单的过程,如下所示.

DECLARE @num int;
SET @num = 5;
SELECT @num WHERE @num BETWEEN 1 AND 10;
SELECT @num WHERE @num BETWEEN 10 AND 1;
Run Code Online (Sandbox Code Playgroud)

如果你运行它,第一个select语句给你5,第二个没有返回任何内容.我很困惑为什么会这样,因为两个案例都应该返回true,因为5介于10和1以及1和10之间.

BETWEEN 10 AND 1条线是否有理由违背逻辑?

谢谢

sql sql-server

3
推荐指数
1
解决办法
1340
查看次数

获取对JQuery UI Accordion Header的引用

我有一个JQuery手风琴如下;

<div id="accordion">
 <h3 class="ui-accordion-header"><a id="link1" href="#">First Header</a></h3>
  <div id="div1">First Content</div>
 <h3 class="ui-accordion-header"><a id="link2" href="#">Second Header</a></h3>
  <div id="div2">Second Content</div>
</div>
Run Code Online (Sandbox Code Playgroud)

手风琴由此产生:

$("#accordion").accordion({
  collapsible:true,
  active:false,
  navigation:true,
  autoHeight:false,
  change:function(event, ui){
    var index = $(this).find("h3").index(ui.newHeader[0]);
    var header = $(this).find("h3")[index].find("a"); //<--- problem line
    var currentHeaderID = (header.attr("id")); //<--id that I need
  }
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle链接

手风琴正在装载好.我正在努力实现两件事.

1-获取刚刚打开的标题的标记内的href元素的ID(即ids link1和link2).change事件中的上面代码给出了标题的索引.但我正努力让下一行(var header = ....)工作.你能做到吗?

2-已解决当用户点击已打开的标题时,该部分将关闭,因此所有部分都会被关闭.我不确定我怎么能做到这一点.你能帮忙吗?

谢谢

javascript jquery jquery-ui jquery-ui-accordion

2
推荐指数
1
解决办法
9660
查看次数

Chrome说无法读取未定义的属性'nodeName',IE6很好,使用Google Map API

我有一个以下结构的XML文件.

<NewDataSet>
 <markers>
  <name>name text</name>
  <desc>desc text</desc>
  <Lat>57.149328033771</Lat>
  <Long>-2.12561060173764</Long>
  <cost>9985</cost>
 </markers>
</NewDataSet>
Run Code Online (Sandbox Code Playgroud)

我正在使用Google Map API来解析和映射这些,使用以下Javascript.

 function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(47.614495, -122.341861), 13);

    GDownloadUrl("test1.xml", function(data) {
        var xml = GXml.parse(data);
        x= xml.documentElement;
        y = xml.documentElement.childNodes;
        alert(y.length);
        for (i=0;i<y.length;i++)
        {
            if (y[i].nodeType!=3)
            {
              alert(y[i].childNodes[0].nodeName + " : " + y[i].childNodes[0].childNodes[0].nodeValue); //name
            }
        }

    });
  }
}
Run Code Online (Sandbox Code Playgroud)

完整的xml和html文件都可以在这里下载:http : //domain2405544.sites.fasthosts.com/test/test1.htm http://domain2405544.sites.fasthosts.com/test/test1.xml

首先,我只是想解析这些数据.在IE6中工作正常(没有选择),它正确地提醒数据.但是当我在Chrome中加载相同的页面时告诉我:

Uncaught TypeError: Cannot read property 'nodeName' of undefined …
Run Code Online (Sandbox Code Playgroud)

javascript xml google-maps google-chrome nodename

0
推荐指数
1
解决办法
2万
查看次数