精华内容
下载资源
问答
  • Domino服务器安全选项Not Access Server的值不能有效阻止Web用户对服务器的访问 环境 产品:Lotus Domino Server平台

    Domino服务器安全选项中'Not Access Server'的域值不能有效阻止
    Web用户对服务器的访问


    环境

    产品:Lotus Domino Server
    平台:所有
    软件版本:6.0, 6.5, 7.0

    问题

    管理员将某一群组添加到服务器文档安全选项中的 "Not Access Server"域当中。按照设计,群组中的成员不能再通过Notes客户端访问服务器,但是却可以通过Web的方式访问。为什么?

    解答

    此问题出现在域值“强制使用服务器访问设置”没有被设置为是的情况下。此域值默认为否,代表安全选项不应用于Web (HTTP)的访问上。
    具体的做法是在服务器文档 -->端口 -->Internet 端口 --> Web标签,将“强制使用服务器访问设置”域值修改为“是”,重启服务器使修改生效。

    如果上述修改还是不能解决问题,那么管理员可以试试以下的方法之一:
    删除个人文档
    编辑个人文档--管理 标签下,将“检查口令”改为“锁定标识符”
    将个人文档中的Internet口令改为一个新值

     
     
    展开全文
  • Access to XMLHttpRequest at '*' from origin '*' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header...

    跨域问题解决方案:CORS

    Access to XMLHttpRequest at '*' from origin '*' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    从源'本地路径'访问 '目标路径(请求链接)'文本传输请求已被CORS策略阻塞:对预置请求的响应未通过访问控制检查:请求的资源上不存在'Access- control - allow - origin '报头。

    错误原因:

    本地路径和目标路径不是同一个域名下引起的跨域问题,并且,就算两个域名是同一个一级域名不同二级域名的时候,例如 a.baidu.com  和 b.baidu.com 是属于不同域的,也是会出现这个问题

    介绍

    出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。

    注:这段描述不准确,并不一定是浏览器限制了发起跨站请求,也可能是跨站请求可以正常发起,但是返回结果被浏览器拦截了。

    CORS(跨源资源共享)是一个系统,由传输HTTP标头组成,用于确定浏览器是否阻止前端JavaScript代码访问跨源请求的响应

    同源安全政策禁止以资源跨域访问。但CORS使Web服务器能够表示他们希望选择允许跨资源访问其资源。

    跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器  让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求

    如,站点 http://domain-a.com 的某 HTML 页面通过 <img> 的 src 请求 http://domain-b.com/image.jpg。网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。

    跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。现代浏览器支持在 API 容器中(例如 XMLHttpRequest 或 Fetch )使用 CORS,以降低跨域 HTTP 请求所带来的风险。

     

    解决方案:

    1、如果跨域请求发生在相同一级域名不同二级域名之间

    例如:a.baidu.com  和 b.baidu.com

    跨域直接在邀请求的接口页面中强制设置域为一级域     document.domain = "baidu.com";

    2、设置接口允许ajax跨域访问

    在服务器aspx页面头文件里加:

    <meta http-equiv="Access-Control-Allow-Origin" content="*" />

    在web.config文件中的 system.webServer 节点下 增加如下配置

    <system.webServer>  
        <httpProtocol> 
            <customHeaders> 
                <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/> 
                <add name="Access-Control-Allow-Headers" value="x-requested-with"/> 
                <add name="Access-Control-Allow-Origin" value="*" /> 
            </customHeaders> 
        </httpProtocol> 
    </system.webServer>
    

    网上说的解决方案都是Internet Explorer 8 、9使用 XDomainRequest 对象实现CORS。是不是有这么复杂?于是博主各种百度寻找解决方案。最后发现在调用处指定 jQuery.support.cors = true; 这一句就能解决IE8、9的问题了

    这句话的意思就是指定浏览器支持跨域。IE9以上版本的浏览器、谷歌、火狐等都默认支持跨域,而IE8、9却默认不支持跨域,需要我们指定一下。

    //例如
    jQuery.support.cors = true;
    var ApiUrl = "http://b.baidu.com";
    $(function () {
        $.ajax({
            type: "get",
            url: ApiUrl + "api/Charging/GetAllChargingData",
            data: {},
            success: function (data, status) {
                if (status == "success") {
                    alert("ok");
                }
            },
            error: function (e) {
                alert("error");
            },
            complete: function () {
    
            }
        });
    });

    注:我这里设置的*是任意的请求都可以访问,如果需要限制替换成自己的访问地址就可以了。

    参考资料:

     HTTP访问控制(CORS)   https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

    CORS(跨源资源共享)      https://developer.mozilla.org/en-US/docs/Glossary/CORS

     

     

    你有困难我帮忙,我住隔壁我姓王。----------------- 你隔壁的老王宣。

    展开全文
  • ACCESS中DLOOKUP的语法和格式

    千次阅读 2016-09-06 20:11:00
    1.语法: DLookup(expr, domain, [criteria]) 2.参数解释: expr:要获取值的字段名称 domain :要获取值的表...如果不给 criteria 提供值,Dlookup 函数将返回域中的一个随机值。 3.正常用法 (1)用于数值
    1.语法:
    
        DLookup(expr, domain, [criteria])
    
    2.参数解释:
     
        expr:要获取值的字段名称
        domain :要获取值的表或查询名称
        criteria:用于限制 DLookup 函数执行的数据范围。如果不给 criteria 提供值,Dlookup 函数将返回域中的一个随机值。
    
    3.正常用法
        
        (1)用于数值型条件值:
      DLookup("字段名称" , "表或查询名称" , "条件字段名 = n")
        
        (2)用于字符串型条件值:(注意字符串的单引号不能丢失)
      DLookup("字段名称" , "表或查询名称" , "条件字段名 = '字符串值'")
     
        (3)用于日期型条件值:(注意日期的#号不能丢失)
      DLookup("字段名称" , "表或查询名称" , "条件字段名 = #日期值#")
    
    从窗体控件中引用条件值用法
    
       (3) 用于数值型条件值:
      DLookup("字段名称" , "表或查询名称" , "条件字段名 =" &
       forms!窗体名!控件名)
        
        (4)用于字符串型条件值:(注意字符串的单引号不能丢失)
      DLookup("字段名称" , "表或查询名称" , "条件字段名 = '" &
       forms!窗体名!控件名 & "'")
     
        (5)用于日期型条件值:(注意日期的#号不能丢失)
      DLookup("字段名称" , "表或查询名称" , "条件字段名 = #" &
       forms!窗体名!控件名 & "#")
    
        (6)混合使用方法(支持多条件)
        
        在这种方法中也可以在条件中写入固定的值。 
        DLookup("字段名称" , "表或查询名称" , "条件字段名1 = " & Forms!窗体名!控件名1  _
                & " AND 条件字段名2 = '" & Forms!窗体名!控件名2 & "'" _
                & " AND 条件字段名3 =#" & Forms!窗体名!控件名3 & "#")
    
    注:
        Dlookup之类的合计函数(域函数)是ACCESS为用户提供的内置函数,通过这些函数可以方便的从一个表或查询中取得符合一定条件的值赋予变量或控件值,就不需要再用DAO或者ADO打开一个记录集,然后再去从中获取一个值,这样所写的代码要少的多。
        但是如果需要更灵活的设计,比如所查询的域没有在一个固定的表或查询里,而是一个动态的SQL语法,或是临时生成的复杂的SQL语句,亦或是需要代入循环的条件值等,此时还是需要从DAO或者ADO中定义记录集来获取值。因为Dlookup之类的合计函数必竟是一个预定义好格式的函数,所支持的语法有限,但对于大多数的要求是都能够满足的。
    展开全文
  • SQL语句在ACCESS中的应用

    千次阅读 2014-07-30 08:39:39
    一、基本语句1、 ACCESS中一般的 select Select 要查询的字段(全部查询则为“*”)from Tabel名 where 查询条件 select ID,姓名,性别,生日 from 会员信息; ACCESS中的字符串可以用双引号分隔,建议用单引号作为字符...

    一、基本语句

    1、 ACCESS中一般的 select Select 要查询的字段(全部查询则为“*”)from Tabel名 where 查询条件 select ID,姓名,性别,生日 from 会员信息; ACCESS中的字符串可以用双引号分隔,建议用单引号作为字符串分隔符.

    ACCESS中日期查询Select * From Tab1 Where [Date]>#2010-1-1#;

     例:Select 记录时间 From 记录 Where时间>=#2009-11-1# ;

       Select 记录时间 From 记录 Where 时间<#2009-11-1# ;

    注意:ACCESS中的日期时间分隔符是#而不是引号

    2、 ACCESS中UPDATE UPDATE Tab1 a,Tab2 b SET a.Name = b.Name WHERE a.ID = b.ID;

     即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.

    3、 delete Delete from Tabel名 where 删除条件 若将表中记录全部删除则:

           Delete * from Tabel名 例:delete from 记录 Where 时间<=#2005-4-1# ;

    二、基本函数

    1、 计算函数

    1)函数count()—计算纪录数Select count(*) From 会员信息 ;Select count(ID) From 记录 Where 时间>=#2009-11-1# ;

    2)函数sum()Select sum(记录数) From 记录 ;Select sum(记录数)From 记录 Where 时间>=#2009-11-1# ;

    3)max()—求最大值函数Select max(记录数) From 记录 ;Select max(记录数)From 记录 Where 时间>=#2009-11-1# ;

    2、 日期函数

    1) Date() 返回一个表示当前系统时间的格式化字符串select 记录时间, mid(date(),1,7) from 记录 ;※ Format() 将一个日期变体或一个数值转化成格式化字符串select 记录时间, format(记录时间,'yyyy/mm/dd') from 记录 ;select 记录时间, mid(format(时间,'yyyy/mm/dd'),1,7) from 记录 ;select 记录时间 from 记录 where mid(format(记录时间,'yyyy/mm/dd'),1,7)='2005-11' ;select distinct mid(format(记录时间,'yyyy/mm/dd'),1,7) from 记录 ;

    2) Year(Date) 返回日期中的年值select Year(记录时间) from 记录 ;3) Month(Date) 返回日期中的月份值(1到12)select Month(记录时间) from 记录 ;

    3、 数值函数

    1)Abs(n) 返回n的绝对值select 记录数,abs(记录数) from 记录 ;

    2) Int(n) 返回数字的整数部分 select 记录数,int(记录数) from 记录;

    4、 转换函数

    1) Format() 将一个日期变体或一个数值转化成格式化字符串select 记录时间, format(记录时间,'yyyy/mm/dd') from 记录 ;select 记录时间, mid(format(记录时间,'yyyy/mm/dd'),1,7) from 记录 ;select 记录时间 from 记录 where mid(format(记录时间,'yyyy/mm/dd'),1,7)='2005-11' ;select distinct mid(format(记录时间,'yyyy/mm/dd'),1,7) from 记录 ;

    2)Val(n) 把字符串转换为数值值select 编号,val(编号) from 记录;

    3)CSng()将表达式转换成字符select 记录数,csng(记录数) from 记录; //数值转换字符select 记录时间,csng(记录时间) from 记录; //日期转换字符

    4) 字符串处理函数关键字 说明 示例 Ucase 将字符串中的字母改为大写 Ucase("Kim")返回KIM Lcase() 将字符串中的字母改为小写 Lcase("Kim")返回kim Len() 确定字符串的长度(以字符为单位) Len("Mississ")返回7 Right() 返回字符串右部指定个数的字符 Right("Budapest",3)返回pes Left() 返回字符串左部指定个数的字符 Left("Budapest",4)返回Buda Mid() 从某一指定起始点开始返回字符串中指定个数的字符 Mid("Sommers", 4, 3) 返回mer trim() 去除字符串前后空格 Rtrim() 去除字符串前右边空格 Ltrim() 去除字符串前左边空格 InStr() 从一个较大字符串中查找另一个字符 start% = InStr("bob","bobby")start%变量返回值1 String() 重复指定字符串中的字符,返回新的字符串 String(8, "*")返回******** Asc() 返回指定字母的ASCII代码 Asc("A") 返回65 Xor() 对两个数字执行“异或”操作,其返回值可用来对文本进行加密、解密 65 Xor 50 返回115 115 Xor 50 返回65 5、 函数min()—求最小值Select min(记录数) From 记录 ;Select min(记录数)From 记录 Where 记录时间>=#2009-11-1# ;三、关键字1、 @@IDENTITY 变量 @@IDENTITY 变量是一个全局的SQL变量,用户可以用它来提取使用COUNTER数据类型的列的最后使用值。用户在提取@@IDENTITY 变量时,不能指定表的名称。返回值总是最近的通过代码插入了数据的表的COUNTER域。 SELECT @@IDENTITY ;要给@@IDENTITY 值加上某个值,要将该变量用方括号括起来。 SELECT [@@IDENTITY] + 1 ;注意 上面SQL 语句中的@@IDENTITY变量只能通过Jet OLE DB provider 和 ADO执行提取,通过Access SQL View 用户界面提取的值将是0,另外,该值只有在通过代码插入记录时才会改变,如果通过用户接口,不管是数据表单、窗体还是Access SQL View窗口中的SQL语句, @@IDENTITY返回值都是0。因此, @@IDENTITY 的值只有在刚刚通过代码加入了记录是才是准确的。2、 DISTINCT关键字DISTINCT关键字用来控制结果集中重复的值如何进行处理,那些对于指定的列来说用户相同值的行将被过滤掉。如果多于指定的列大于一,则所有指定的列的结合将作为过滤条件。例如,如果用户查询Customers表中姓氏不同的记录,则返回的值都将是唯一的,任何重复姓氏的名字都将以结果集中的一个记录作为其结果。SELECT DISTINCT [Last Name] FROM tblCustomers ;尤其要注意的是,使用DISTINCT关键字的查询所返回的结果集不能更新,即是只读的。 例:select distinct ID from 记录 ; 3、 ORDER BY例:select * from 记录 ORDER BY 编号; 4、 IN操作IN操作是用来判断一个表达式的值是否属于一个指定列表中的值。如果这个表达式等于列表中的一个值,IN操作的返回值为True。而当没有找到,IN操作返回值为False。让我们假设我们想找到所有住在华盛顿州或乔治亚州的销售部成员。我们可以写一个带着长长的WHERE 子句,并使用AND逻辑操作符的SQL语句,而使用IN操作符会缩短我们写的语句。SELECT * FROM tblShipping WHERE State IN ('WA','GA') ;例:select * from 记录 where 编号 in ('06-03','06-04') ;通过使用NOT逻辑操作符,我们可以检索出IN操作的反操作结果,这个语句会返回所有不住在华盛顿州的销售部成员。SELECT * FROM tblShipping WHERE State NOT IN ('WA') ;例:select * from 记录 where 编号 not in ('06-03','06-04') ; 5、 BETWEEN操作BETWEEN操作用于判断一个表达式的值是否介于一个特定的范围之间。如果这个表达式的值介于这个特定范围之间,包括范围开始和结束的值,这个BETWEEN操作返回True。如果这个表达式得值不属于这个范围,则BETWEEN操作返回值为False。假设我们想找到所以金额介于50美圆到100美圆之间的所有发票。我们最好在WHERE 子句使用BETWEEN 操作以及关键字AND设定范围。SELECT * FROM tblInvoices WHERE Amount BETWEEN 50 and 100 ;通过使用NOT逻辑操作符,我们可以检索出BETWEEN操作的反操作结果,找到不在范围中的所有发票数量。SELECT * FROM tblInvoices WHERE Amount NOT BETWEEN 50 and 100 ;注意这个范围可以设定为相反的顺序并依旧得到相同的结果 (BETWEEN 100 和 50),但许多的适用于ODBC的数据库要求这个范围遵从从头到尾的顺序。如果你设计你的应用程序可以兼容或升级为适用于ODBC的数据库,你就应该总是按照从头到尾的方法使用。 6、 LIKE操作LIKE 操作一个样式就是就是一个完全的字符串或是一个包含有一个或多个通配符的部分字符串。通过使用LIKE 操作,你可以在一个结果集里查找一个域并找到所有符合特殊的样式的值。为了返回所有的名字以字母J开头的顾客,我们使用星号通配符。SELECT * FROM tblCustomers WHERE [Last Name] LIKE 'J%' ;例:select * from 记录 where 编号 like '06%' ;通过使用NOT逻辑操作符,我们可以检索出LIKE操作的反操作。SELECT * FROM tblCustomers WHERE [Last Name] NOT LIKE 'Johnson' ;例:select * from 记录 where 编号 not like '06%' ; 你在LIKE 操作样式里可以使用多种通配符,如下表所示:通配符描述%(百分号)-----匹配所有字符并可以被用在结构字符串的任何位置。?(问号)--匹配任何单个字符并可以被用在结构字符串的任何位置。_(下划线)---匹配任何单个字符并可以被用在结构字符串的任何位置。(只适用于ADO 和 the Jet OLE DB provider) #(数字符号)---匹配任何单个数字并可以被用在结构字符串的任何位置。[](方括号)---匹配任何被包括在方括号里面的单个字符,并可以被用在结构字符串的任何位置。!(感叹号)---匹配任何不属于被方括号所包含的字符列表中的单个字符。-(连字符)---匹配任何一个在方括号中的字符。注意: 上表所述的“%”和“_”通配符只能通过Jet OLE DB provider 或 ADO运行。如果通过. Access SQL View 用户界面运行它们将获得一个空的结果集。 7、 IS NULL 操作符空值就是指无值或不可知值。IS NULL操作符被用于判断一个表达式的值是否和一个空值相等。SELECT * FROM tblInvoices WHERE Amount IS NULL 通过添加NOT逻辑操作符,我们可以检索IS NULL操作符的反操作。在这个例子里,SQL语句将会除掉所有包含丢失的或未知值的发票记录。SELECT * FROM tblInvoices WHERE Amount IS NOT NULL ;8、SELECT INTO 语句SELECT INTO 语句,也可以理解为一个表单创建查询,可以用来从一个或多个已存在工作表中创建一个新的工作表。它所创建的工作表可以基于任何有效的SELECT语句。SELECT INTO 语句可以用来存储记录、创建备份表单或在一个外部数据库里创建新的工作表。当你用SELECT INTO 语句创建一个新工作表时,所有的新工作表里的域都继承于原始工作表。然而,不包括其他的工作表属性,如主关键字或索引都是在新工作表中被创建。一旦新的工作表被创建,你当然可以使用ALTER TABLE语句添加这些属性。如果你要创建一个新的工作表,可以使用一个带有你希望在工作表种包含的列的域列表和你新工作表的名称的SELECT INTO 语句,并在FROM子句里提供数据资源。SELECT * INTO tblNewCustomers FROM tblCustomers ;为了为新的工作表指定确定的域,把域名列表里的原始工作表的域名用星号代替,并用AS关键字来命名新的工作表中的各列。SELECT [First Name] & ' ' & [Last Name] AS FullName INTO tblNewCustomerNames FROM tblCustomers如果要在一个已经存在的外部数据库里创建新的工作表,你可以用IN关键字。如果外部数据库不存在,SELECT INTO 语句将会返回一个错误信息。SELECT * INTO tblNewCustomers IN 'C:\Customers.mdb' FROM tblCustomers ; 四、其他查询1、 子查询子查询就是在用在另一个SELECT、SELECT INTO、INSETT INTO 、DELETE 或UPDATE语句内部的SELECT语句。它可以帮助你对基于另一个结果集的结果进行进一步的限制。这叫做嵌入,并且因为一个子查询就是一个SELECT语句,你也可以把一个子查询嵌入到另一个子查询里面。当你在一个SQL语句中使用一个子查询的时候,它可以作为一个域列表、WHERE子句或者HAVING子句的一部分。这里由三种基本的子查询形式,并且每种都使用不同种类的谓词。IN子查询IN 子查询用于检索这样的一组值,即其中记录的某一列的值都为另一个工作表或查询中的一列的值包含。它从其它工作表中只能返回一列,这是一个限制条件。如果返回的多于一列就会产生一个错误。使用发票数据库例子,我们可以写出一个返回所有拥有发票的顾客的列表的SQL语句。SELECT * FROM tblCustomers WHERE CustomerID IN (SELECT CustomerID FROM tblInvoices)通过使用NOT逻辑操作符,我们可以检索和IN子查询相反的记录,从而可以获得所有没有任何发票的顾客列表。SELECT * FROM tblCustomers WHERE CustomerID NOT IN (SELECT CustomerID FROM tblInvoices)1) ANY/SOME/ALL子查询ANY、 SOME和ALL子查询谓词被用于比较主查询的记录和子查询的多个输出记录。ANY 和 SOME谓词是同义词并可以被替换使用。当你需要从主查询中检索任何符合在子查询中满足比较条件的记录时可以使用ANY或 SOME谓词。谓词应该恰好放在子查询开始的括号前面。SELECT * FROM tblCustomers WHERE CustomerID = ANY (SELECT CustomerID FROM tblInvoices)注意由上面SQL语句所返回的结果集和IN子查询例子所返回的那个相同。而与ANY和SOME谓词的不同之处就在于它们都可以使用等于(=)以外的操作符,比如大于(>)和小于(<)。SELECT * FROM tblCustomers WHERE CustomerID > ANY (SELECT CustomerID FROM tblInvoices)当我们想在主查询中检索满足子查询比较条件的所有记录时使用谓词ALL。SELECT * FROM tblCustomers WHERE CustomerID > ALL(SELECT CustomerID FROM tblInvoices)2)EXISTS子查询EXISTS谓词是用于子查询来在一个结果集中检查所以存在值的记录。换句话说,就是如果子查询没有返回任何行,这个比较就False。而如果它返回了一行或多行,这个比较就为True。SELECT * FROM tblCustomers AS A WHERE EXISTS(SELECT * FROM tblInvoices WHERE A.CustomerID = tblInvoices.CustomerID)注意在前面的SQL 语句里, tblCustomers 工作表使用了一个别名。这就是为何我们可以在后来的子查询中引用它的原因。当一个子查询以这种格式与一个主查询联接时就称相关查询。通过使用NOT逻辑操作符,我们可以检索和EXISTS子查询相反的记录,从而可以得到所有没有任何发票的顾客的结果集。SELECT * FROM tblCustomers AS A WHERE NOT EXISTS 2、 连接在一个如同Access的相关数据库系统中,你会常常需要同时从多个工作表中摘出信息记录。这可以通过使用一个SQL JOIN语句来实现。JOIN语句可以让你从已经定义了相互关系的工作表中检索记录,而不用管记录和工作表之间的关系是一对一、一对多还是多对多。1)内部连接内部连接,也被理解为对等连接,就是被使用的连接里最一般的形式。这种连接通过匹配一个各个工作表中共有的域值来从两个或更多的工作表中检索记录。你所连接的域必须具有类似的数据类型,但你就不能对MOMO和OLEOBJECT数据类型进行连接。为了建立一个INNER JOIN语句,在SELECT语句的FROM子句里使用INNER JOIN关键字。让我们使用INNER JOIN 建立所有拥有发票的顾客的结果集,并带上那些发票的时间和金额。SELECT [Last Name], InvoiceDate, Amount FROM tblCustomers INNER JOIN tblInvoicesON tblCustomers.CustomerID=tblInvoices.CustomerID ORDER BY InvoiceDate注意工作表名被INNER JOIN关键字所分开,并且相关的比较是在ON关键字的后面。对于相关的比较,你也可以使用<、 >、 <=、 >=或 <> 操作符,并且你也可以使用BETWEEN关键字。同时注意各个工作表只在比较关系中使用的ID域,它们都不是最后结果集的组成。如果要进一步的限制SELECT 语句我们可以在ON子句中的比较连接后面使用WHERE子句。在下面的例子中我们通过只包括1998年1月1日以后的发票来缩小结果集。SELECT [Last Name], InvoiceDate, Amount FROM tblCustomers INNER JOIN tblInvoices ON tblCustomers.CustomerID=tblInvoices.CustomerID WHERE tblInvoices.InvoiceDate > #01/01/1998# ORDER BY InvoiceDate在希望连接多个工作表的案例中,你可以嵌入INNER JOIN子句。在这个例子里,我们将在过去的一个SELECT语句的基础上产生我们的结果集,但我们也将通过为tblShipping工作表添加INNER JOIN使结果包括每个顾客的所在城市和国家。SELECT [Last Name], InvoiceDate, Amount, City, State FROM (tblCustomers INNER JOIN tblInvoices ON tblCustomers.CustomerID=tblInvoices.CustomerID) INNER JOIN tblShipping ON tblCustomers.CustomerID=tblShipping.CustomerID ORDER BY InvoiceDate注意第一个JOIN子句为圆括号所包含以使之从逻辑上和第二个JOIN子句分开。而在FROM子句中使用一个第二个工作表的别名把一个工作表连接到自身也是可能的。让我们假设我们想找到所有具有相同的名的顾客记录。我们可以通过为第二个工作表创建一个别名“A”并查找其姓氏不同的记录来实现。SELECT tblCustomers.[Last Name], tblCustomers.[First Name] FROM tblCustomers INNER JOIN tblCustomers AS A ON tblCustomers.[Last Name]=A.[Last Name] WHERE tblCustomers.[First Name]<>A.[First Name] ORDER BY tblCustomers.[Last Name]2)外部连接外部连接是在当记录保存在某一个工作表中时用于在多个工作表进行记录检索,即使在其它的工作表中没有匹配的记录也行。Jet 数据库引擎共支持两种类型的外部连接。考虑两个互相相近的工作表,一个在左边,另一个在右边。左外部连接将在右工作表中选择所有匹配比较关系标准的所有行和左工作表中的所有行,即使在右工作表中没有匹配记录存在。而右外部连接则是左外部连接的简单反转;即所有在右工作表中的行将被保存。作为一个例子,让我们假设我们想测定每个顾客的所有发票数量,但如果一个顾客没有发票,我们希望通过消息“NONE”来显示其信息。SELECT [Last Name] & ', ' & [First Name] AS Name, IIF(Sum(Amount) IS NULL,'NONE',Sum(Amount)) AS TotalFROM tblCustomers LEFT OUTER JOIN tblInvoicesON tblCustomers.CustomerID=tblInvoices.CustomerIDGROUP BY [Last Name] & ', ' & [First Name]在前面的SQL语句中仍然有几个问题。第一个是对字符串连接操作符“&”的使用,这个操作符允许你把两个或更多的域连接到一起组成一个字符串。第二个是 immediate if(IIF)语句,它会检查合并后的字符串是否为空。如果为空,这个语句将返回消息“NONE”,而如果组合不是空,将返回组合后的值。最后一点是外部连接子句。使用左外部连接保存左工作表的行从而让我们可以看到所有的顾客,包括那些没有发票在帐目中的。在一个多工作表的连接中外部连接可以被嵌套在内部连接里,但内部连接不可以被嵌套在外部连接中。3)笛卡儿乘积当我们讨论联接时常常遇到的一个术语是笛卡儿乘积。笛卡儿乘积的定义为“把所有表单的所有行完全合并”。例如,如果你想不用任何约束把两个工作表联合在一起,你就完成了一个笛卡儿乘积。SELECT * FROM tblCustomers, tblInvoices这不是一个好东西,特别当你要处理的工作表中包含有成百上千行数据时。所以你应该通过约束你的连接来避免笛卡儿乘积。The UNION operator虽然UNION 的操作也可以视为一个合并查询,但我们不可以技术性地把它看作是一个联接,它之所以被提到是因为它能把从多个来源获得的数据合成一个结果表单中,而这一点和某些类型的联接是类似的。UNION 操作一般被用来把来自表单、SELECT语句或查询的数据结合,并省略掉任何重复的行。所有的数据源必须有相同数目的域,不过这些域不一定要是相同的数据类型。让我们假设我们有一个雇员表单,其中具有和顾客工作表单相同的结构,那么我们希望合并这两个工作表得到一个姓名和电子邮件地址信息的列表。SELECT [Last Name], [First Name], Email FROM tblCustomers UNION SELECT [Last Name], [First Name], Email FROM tblEmployees如果你希望找到这些表中的所有域,我们可以使用TABLE关键字,如同下面一样:TABLE tblCustomers UNION TABLE tblEmployeesUNION操作不会显示任何在两个表单中重复出现的记录,但它可以通过在UNION关键字后使用谓词ALL来覆盖重复信息,如下所示:SELECT [Last Name], [First Name], Email FROM tblCustomers UNION ALL SELECT [Last Name], [First Name], Email FROM tblEmployees3、 交叉表查询(转换语句)虽然转换语句也可以视为一个交叉表查询,但我们不可以技术性地把它看作是一个联接,它之所以被提到是因为它能把从多个来源获得的数据合成一个结果表单中,而这一点和某些类型的联接是类似的。TRANSFORM 语句通常用于计算总数、平均值、数目以及其它对记录进行总体统计的算法。并在计算后把结果信息显示在一个格子或数据表中,其中的数据分别按照行和列排列。一个TRANSFORM 语句的一般形式如下:TRANSFORM aggregating function SELECT Statement PIVOT column heading field我们假设我们可以建立一个按照每一年为基础显示每个顾客的所有发票的数据表。这个列名应该是顾客的姓名,而行名则将是年份。让我们修改原来的SQL语句以符合转变后的语句.TRANSFORM IIF(Sum([Amount]) IS NULL,'NONE',Sum([Amount])) AS Total SELECT [Last Name] & ', ' & [First Name] AS Name FROM tblCustomers LEFT JOIN tblInvoices ON tblCustomers.CustomerID=tblInvoices.CustomerIDGROUP BY [Last Name] & ', ' & [First Name]PIVOT Format(InvoiceDate, 'yyyy')IN ('1996','1997','1998','1999','2000')注意SUM函数是合计函数,组里的列的题头用在SELECT 语句的子句里,而行的名字由PIVOT关键字后所列出的域名决定。

    展开全文
  • 用VC处理ACCESS中的位图数据

    千次阅读 2004-08-30 20:57:00
    用VC处理ACCESS中的位图数据癫侠于2000-08-17下午05:49:58发表:----比较复杂的数据库一般会有位图数据(比如相片)。虽然这类“OLE对象”的插入、删除以及替换操作在ACCESS里容易实现,在VC却显得复杂而且颇费...
  • CS:电路交换(Circuit Switching Domain),在发端和收端之间建立电路连接,并保持到通信结束的一种交换方式。因此电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路。 PS:分组交换...
  • windowsAD的部署

    千次阅读 2017-11-08 20:27:45
    windowsAD的部署
  • CISCO路由器access-list(访问列表)最基本的有两种,分别是标准访问列表和扩展访问列表,二者的区别主要是前者是基于目标地址的数据包过滤,而后者是基于目标地址、源地址和网络协议及其端口的数据包过滤。
  • SQL定义语言(ACCESS2000的语法)

    千次阅读 2010-07-10 12:07:00
    SQL定义语言(ACCESS2000的语法)   access2000 create 语句可以实现的列级完整性约束: not null(不为空)、unique(唯一)、primary key(定义主键) 、references<被参照表名>...
  • 3 frontpage+access数据库添加数据

    千次阅读 2012-12-08 12:10:08
    现在进入第三部分,frontpage+Access数据库添加数据 我们要如何往数据库添加数据呢?现在我们一步步来吧。 第一步同样的要插入一个空白页面“添加联系人.asp” 接下来就是要添加一些表单了,这些表...
  • npm access命令

    千次阅读 2015-09-03 00:18:17
    CLI Commands:CLI命令 原文:https://docs.npmjs.com/cli/access 1.access访问 在发布的包上设置访问级别 说明书npm access public [] npm access restricted []npm access grant |read-write> <scope:team
  • access中,update语句不能有子查询的,如不允许如下语句出现: UPDATE tblA SET lngID= (SELECT lngID FROM tblB WHERE strName=nihao)这样就需要另想办法解决问题。 解决方案:A。可以用update另外的语法解决...
  • 若允许Tomcat所有访问,将clientaccesspolicy.xml和crossdomain.xml加入%TOMCAT_HOME%\webapps\ROOT 目录下即可
  • 下文是介绍了我在开发对两种access_token的理解,如果以后发现了新的异同,会在进行补充. 一、两种access_token的获取 网页授权access_token的获取: https://blog.csdn.net/cl11992/article/details/86528704 ...
  • jvm之AccessController.doPrivileged

    千次阅读 2019-02-25 10:31:45
    AccessController.doPrivileged在底层源码会出现,本文对它进行一个简单介绍及如何使用的说明。 首先解释一下几个相关概念保护 类被装入jvm,为每个类指定一个保护,保护定义了授予一段特定代码的所有权限,...
  • Access Control

    千次阅读 2012-07-26 11:20:41
    每当一个用户登录时,系统获取从数据库获取用户的SID,放到用户的访问令牌(access token)。在用户后来与Windows安全交互,系统用用户的访问令牌的SID来识别用户。当一个SID被用作一个用户或组的唯一标识时...
  • 很多朋友都碰到这个问题,如果在查询生成一个行号。比如有如下表tblA ID, CNAME, SCORE1 A001 802 B002 ... Access的SQL语句没有rownum之类的伪列函数。 不过除了采用程序来实现外,你还可以通过下面SQL查询语
  •  '一文所定义的自定义函数,用于等待 SHELL 执行完毕后再执行下一步。  '你还可以参考:《如何解决shell执行外部程序的等待问题?(同步/异步)》  'http://access911.net/?kbid;72FAB21E  ShellWait "cmd....
  • awk '{print $9}' access.log | sort | uniq -c | sort 正常情况下,状态码 200 或 30x 应该是出现次数最多的。40x 一般表示客户端访问问题。50x 一般表示服务器端问题。 下面是一些常见的状态码: 200 - 请求已...
  • access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需要使用access_token。 微信开发需要用到的access_token,其实是分为两个种类的,一种是普通的access_token,另一种是网页授权access_token。 ...
  • Basic access authentication

    千次阅读 2016-08-04 00:13:54
    Basic access authentication翻译于 [wiki]{https://en.wikipedia.org/wiki/Basic_access_authentication}在一个HTTP事务 上下文中,basic access authentication 是HTTP用户代理在请求时提供用户名和密码的一种方法...
  • Access is denied

    千次阅读 2008-05-26 11:31:00
    在使用Altiris安装新机器时在执行桌面配置脚本时出现错误“Access is denied”,如图这种错误通常有两种情况1、由于组策略设置冲突导致Altiris安装软件的帐户没有执行安装软件的权限。这时候就要一步一步对组策略...
  • C++ access函数所需包含的头文件

    万次阅读 2017-02-15 16:03:14
    1、编译包含access函数的源码时,提示: 错误: ‘access’在此作用域中尚未声明 其中,已包含头文件如下: #include #include #include #include #include
  • Access数据类型

    万次阅读 2009-11-16 17:54:00
    关于 Access 数据库数据类型根据以下条件决定字段应使用哪种数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant...
  • 今天准备通过JavaScript的方式调用问说问答的内容,由于使用的不同的二级域名,遇到了一个跨域问题,虽然可以使用JSON或者XML来解决这个问题,但是我们可以通过Access-Control-Allow-Origin解决跨域问题,下面一起来...
  • Access教程 第一章 Access数据库基础

    万次阅读 多人点赞 2008-03-12 12:39:00
    Access 2003 中文版介绍。 数据库技术产生于60年代末、70年代初,它的出现使计算机应用进入了一个新的时期——社会的每一个领域都与计算机应用发生了联系。数据库是计算机的最重要的技术之一,是计算机软件的一...
  • Dreamweaver开发过程无法向Access数据库插入记录出现“操作必须使用一个可更新的查询”
  • Nginx access日志配置

    千次阅读 2020-01-14 10:10:54
    Nginx access日志配置 access_log日志配置 access_log用来定义日志级别,日志位置。语法如下: 日志级别:debug > info > notice > warn > error > crit > alert > emerg 语法格式: access...
  • Sharepoint与ACCESS

    千次阅读 2013-01-29 16:24:14
    ACCESS发布到sharepoint上报表不好用: 解决方法: Report 报表管理器: 设置服务帐户为用户(administrator) web url保持http://机器名:port/reportserver 报表管理器url :http://machinename:port/reports;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,129
精华内容 52,451
关键字:

access中的域