博文
企业管理器中设置权限时, 勾、叉和什么都不选,在权限控制上有什么区别?(2006-08-07 11:48:00)
摘要:
问题描述:
企业管理 -〉登陆 -〉名称 —〉属性—〉数据库访问 -〉public -〉属性 -〉权限
设置对某张访问控制表
其中 打勾号是什么意思?
打叉号又是什么意思?
什么都不打是什么意思?
答:
勾: 明确的授予
叉: 明确的拒绝
不打: 由他所属的角色等决定他的权限
示例说明:
用户A, 是角色A的成员. 角色A具有对表 tb 的 select 权限
如果对用户A授予(打勾)对表 tb 的 select 权限, 则用户A肯定有表 tb 的 select 权限
如果对用户A拒绝(打叉)对表 tb 的 select 权限, 则用户A肯定没有表 tb 的 select 权限(虽然角色A有权限, 但我们已经明确设置拒绝了, 所以用户A无法继承角色A的对表 tb 的select 权限)
而不选的话, 则虽然没有授权用户A对 tb 的 select 权限, 但角色A有, 所以用户A一样对tb有 select 权限.......
SQL各种写法的效率问题(2006-08-07 11:47:00)
摘要:
问:
(1)一次插入多条数据时:
CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))
INSERT tb SELECT 1,'DDD',1
UNION ALL SELECT 1,'5100','D'
UNION ALL SELECT 1,'5200','E'
也可以这样:
CREATE TABLE tb1(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))
INSERT TB1 (ID,名称,备注)VALUES(1,'DDD',1)
INSERT TB1 (ID,名称,备注)VALUES(1,'5100','D')
INSERT TB1 (ID,名称,备注)VALUES(1,'5200','E')
_________________________________
上面两种方法,哪种方法效率高?
答:
第1种好一些, 但也得有个量的控制, 因为第1种的union all是作为一个语句整体, 查询优化器会尝试做优化, 同时, 也要先算出这个结果再插入的.
问:
(2)赋值时:
SELECT @a=N'aa'
SET @a=N'aa'
_________________________________
上面两种方法,哪种方法效率高?
答:
如果是单个赋值, 没有什么好比较的话.
不过, 如果是为多个变量赋值, 经测试, SELECT 一次性赋值, 比用SET 逐个赋值效率好..
问:
(3)取前几条数据时
set ROWCOUNT 2 select * from tb order by fd
select Top 2 * from tb order by fd
_________________________________
上面两种方法,哪种方法效率高?
答:
SET ROWCOUNT和TOP 是一样......
TOP 1比不加TOP慢的疑惑(2006-08-07 11:46:00)
摘要:问题描述:
有一个查询如下,去掉TOP 1的时候,很快就出来结果了,但加上TOP 1的时候,一般要2~3秒才出数据,何解?
SELECT TOP 1
A.INVNO
FROM A, B
WHERE A.Item = B.ItemNumber
AND B.OwnerCompanyCode IS NOT NULL
问题原因分析:
在使用TOP 1的时候,SQL Server会尽力先找出这条TOP 1的记录,这就导致它采用了与不加TOP时不一致的扫描算法,SQL Server查询优化器始终认为,应该可以比较快的找到匹配的第1条记录,所以一般是使用嵌套循环的联接,则不加TOP 1时,SQL Server会根据结构和数据的统计信息决策出联接策略。嵌套循环一般适用于联系的两个表,一个表的数据较大,而另一个表的数据较小的情况,如果查询匹配的值出现在扫描的前端,则在取TOP 1的情况下,是符合嵌套循环联系的使用条件的,但当匹配的数据出现在扫描的后端,或者是基本上没有匹配的数据时,则嵌套循环要扫描完成两个大表,这显然是不适宜的,也正是因为这种情况,导致了TOP 1比不加TOP 1的效率慢很多
关于此问题的模拟环境:
USE tempdb
GO
SET NOCOUNT ON
--======================================
--创建测试环境
--======================================
RAISERROR('创建测试环境', 10, 1) WITH NOWAIT
-- Table A
CREATE TABLE [dbo].A(
[TranNumber] [int] IDENTITY(1, 1) NOT NULL,
[INVNO] [char](8) NOT NULL,
[ITEM] [char](15) NULL DEFAULT (''),
PRIMARY KEY([TranNumber])
)
&......
ASP.NET 中的正则表达式(2006-08-07 11:44:00)
摘要:引言
Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。
本文主要面向对正则表达式知之甚少或没有使用经验,但却熟悉 ASP.NET、可借助 .NET 编程的初学者。此外,希望本文连同 regular expression cheat sheet 成为有正则表达式使用经验的开发者的手头参考资料或进修资料。本文讨论内容如下:
1.
正则表达式使用历史简介
2.
简单表达式
3.
限定符
4.
元字符
5.
字符类
6.
预定义的集合元字符
7.
表达式示例详细内容
8.
ASP.NET 中的验证
9.
正则表达式 API
10.
免费工具
11.
高级主题概述
12.
小结和其他资源
通常,如果对本文或对正则表达式有疑问,请访问 http://www.aspadvice.com/,通过 regex mailing list 提出问题。编写此文时其中已有 350 多个订户参与。
返回页首
正则表达式使用历史简介
正则表达式设计于五十年代,存在至今。正则表达式最初用于描述“正则集”,它们是一些神经生理学家研究的模式。正则表达式最早由数学家 Stephen Kleene 提出,最终由 Ken Thompson 在两种非常流行的文本实用程序 qed 和 grep 中使用。Jeffrey Friedl 在其著作“Mastering Regular Expressions (2nd edition)”中对此作了进一步阐述。建议那些希望更多了解正则表达式理论和历史的人看看这本书。
在最近的五十年中,正则表达式逐渐从模糊深奥的数学概念发展为在各类工具和软件包中应用的主要功能。尽管数十年来很多 UNIX 工具都支持正则表达式,但仅仅是近十年来,它才在大部分 Windows 开发者工具包中得到体现。在 Microsoft® Visual Basic® 6 或 Micro......
好用的HttpRequest访问封装类(2006-08-07 10:59:00)
摘要:using System;
using System.Data;
using System.Configuration;
using System.Net;
using System.IO;
using System.Text;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;
namespace DianPing
{
/*
* Author:Heilong05@163.com
* 如果您改进了这个类请发一份代码给我(heilong05 在163.com)
*/
/// <summary>
/// 网页类
/// </summary>
public class WebPage
{
#region 私有成员
private Uri m_uri; //网址
private List<Link> m_links; //此网页上的链接
private string m_title; //此网页的标题
private......
HttpWebRequest 超时问题(2006-08-03 11:31:00)
摘要:我怎么判断是否超时?现在我的程序每次超时就抛出异常。
怎么让他超时以后等几分钟然后再尝试呢?
可以采用线程池,超时后调用回调函数
问题是 我不知道怎么判断他超时!
[C#]
using System;
using System.Threading;
// TaskInfo contains data that will be passed to the callback
// method.
public class TaskInfo {
public RegisteredWaitHandle Handle = null;
public string OtherInfo = "default";
}
public class Example {
public static void Main(string[] args) {
// The main thread uses AutoResetEvent to signal the
// registered wait handle, which executes the callback
// method......
C# 写的 HttpRequsetResponse 类,异步、事件... 还热乎(2006-08-03 11:27:00)
摘要://调用示例:
/*
2003-7-1
1.支持Proxy
2.可指定同步或异步
3.一些小修改
*/
private void button1_Click(object sender, System.EventArgs e)
?{
??HttpRequestResponse xx = new HttpRequestResponse();
??xx.DataArrival += new DataArrivalEventHandler(xx_DataArrival);
??//xx.SendRequest(@"http://localhost:2080/examples/myservlets/servlet2","message=QQ&desttel=13910911925&mytel=13910081138&mypwd=263996211");
??xx.SendRequest(@"http://localhost","message=你好QQ&desttel=13910911925&mytel=13910081138&mypwd=263996211","GET",true);
??xx.SendRequest("http://localhost/quickstart/util/srcview.aspx?path=/quickstart/howto/samples/net/WebRequests/clientGETasync.src","post",false);
?}
private int i=0;
private void xx_DataArrival(object sender, DataArrivalEventArgs e)
?{
??Console.WriteLine( i++);
??Console.Write(e.RecievedData? );
??if (e.IsComplete)
???{
???Console.Write("[" + ((HttpRequestResponse) sender).Request.CookieContainer.GetCooki......
Asp.Net使用POST方法最简单的实现(2006-08-03 11:26:00)
摘要:
Asp.Net 2.0 中实现了IButtonControl接口的控件都有一个PostBackUrl属性,可以进行跨页面提交,就是用的POST方法。那么在1.x中费了一番周折的POST提交就很简单了,只要把PostBackUrl设置为提交页,在那提交页用Request.Params[]就能拿到POST的表单参数了。还能用PreviousPage.FindControl去取前一页的控件。这里用Request和PreviousPage去取值都和Server.Transfer很象,但CrossPagePostBack可以跨站点。
这里是一个例子,里面还有关于本地化的测试。
PS,不知道有没有哪位同志遇到类似情况:/App_GlobalResources下的资源文件有Resource.zh.resx的话就会报错。。我的VS是中文的,估计他默认的资源文件就是Resource.zh.resx吧。......
ASP.NET2.0中的ClientScriptManager 类用法—如何添加(2006-08-03 11:25:00)
摘要:
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本。具有相同的键和类型的脚本被视为重复脚本。因此,我们可以使用脚本类型来避免混淆可能用在页中的来自不同用户控件的相似脚本。 <html>
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()">
</form>
</body>
</html>
1 <%@ Page Language="C#"%>
2 <script runat="server">
3 public void Page_Load(Object sender, EventArgs e)
4 {
5 // 定义客户端脚本类型和名称
6 String csname1 = "PopupScript";
7 String csname2 = "ButtonClick......
通过ADO.NET存取文件(2006-08-03 11:25:00)
摘要:
有时我们需要把一些大的数据对象如图片、可执行文件、视频和文档等数据存入数据库。在MS SQL Server中,这要用到Image数据类型,可以保存多达2G的数据。以下给出一个通过ADO.NET和MS SQL Server实现的小小的例子。
先创建一个测试数据表。
在查询分析器中输入并执行以下语句:
Create table [imgtable](
[imgid] [int] IDENTITY(1,1) NOT NULL,
[imgname] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[imgData] [image] NULL,
PRIMARY KEY CLUSTERED
(
[imgid]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
这要在你所选的数据库中就多了一个名叫imgtable的表。
VS中的代码如下:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace ADO_Demo
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class ADO_Demo : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;<......