博文
使用SQLSERVER2000的全文检索功能(2007-01-29 09:29:00)
摘要:使用SQLSERVER2000的全文检索功能方案
使用SQL SERVER 2000的全文检索功能
步骤:
1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录proCatalog,点击下一步。在填充调度一项里,我们暂时不建立填充调度。接着“下一步”,全成全文索引向导。完成后,我们可以看到在“全文目录”里,多了一个全文目录proCatalog。右键proCatalog属性,可以看到其状态、表、调度情况。
2、 右键全文目录proCatalog, “启动完全填充”,系统会出现“全文目录填充成功启动”。
3、 这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:
检索ProductName中,即包含b又包含c的所有列
SELECT *
FROM Products
WHERE CONTAINS(ProductName, '"c*" and "b*" ')
检索ProductName中,即包含chai chang tofu之一的所有列
SELECT *
FROM Products
WHERE FREETEXT(ProductName, 'chai chang tofu ')
我们还可以使用CONTAINSTABLE、FREETEXTTABLE等
4、 我们可以用.NET创建WEB或Form客户端,提供一个良好的全文检索界面,使自己的应用程序得到扩展
参考:
全文查询有关的系统存储过程
(1)启动数据库的全文处理功能(sp_fulltext_datebase);
(2)建立全文目录(sp_fulltext_catalog);
(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文检索的......
全文检索 - 烈马狂生 (2007-01-29 09:29:00)
摘要:最近搜索了一下全文检索,发现了一些问题,现在总结如下:
全文索引和查询概念(摘自SQL 联机帮助)
全文索引、查询和同步化最主要的设计要求是,在注册进行全文检索的所有表上都有一个唯一的全文键列(或者单列主键)。全文索引对使用的重要字及其所在位置进行跟踪。
例如,假定有一个对 DevTools 表的全文索引。全文索引可能指出在 Abstract 列的第 423 个和第 982 个单词处找到了单词 Microsoft,所在的行与 ProductID 6 关联。该索引结构支持对所有包含被索引单词的项进行有效检索,以及高级检索操作,如短语检索和邻近检索。
为防止全文索引因包含很多对检索没有帮助的词而变得臃肿,a、and、is 或 the 这类额外的词都忽略不计。例如,指定"the products ordered during these summer months"与指定"products ordered during summer months"是一样的。有这两个字符串的行都会被返回。
目录 \Mssql\Ftdata\Sqlserver\Config 下提供了多种语言的干扰词列表。在安装带有全文检索支持的 Microsoft® SQL Server™ 时会创建这个目录,并同时安装干扰词文件。干扰词文件可以编辑。例如,高技术公司的系统管理员可以把单词 computer 添加到他们的干扰词表中去。(如果编辑干扰词文件,则必须在更改生效之前重新填充全文目录。)下表显示了干扰词文件及其相应的语言。
干扰词文件 语言
-------------- ---------
Noise.chs 简体中文
Noise.cht 繁体中文
Noise.dat 语言中性
Noise.deu 德语
Noise.eng 英语(英国)
Noise......
一个完整的SQLSERVER数据库全文索引的示例,基础教程网 (2007-01-29 09:28:00)
摘要:一个完整的SQL SERVER数据库全文索引的示例。(以pubs数据库为例) 首先,介绍利用系统存储过程创建全文索引的具体步骤: 1) 启动数据库的全文处理功能 (sp_fulltext_database) 2) 建立全文目录 (sp_fulltext_catalog) 3) 在全文目录中注册需要全文索引的表 (sp_fulltext_table) 4) 指出表中需要全文索引的列名 (sp_fulltext_column) 5) 为表创建全文索引 (sp_fulltext_table) 6) 填充全文目录 (sp_fulltext_catalog) ---------********示例********------------- 以对pubs数据库的title和notes列建立全文索引,之后使用索引查询title列或notes列中包含有datebase 或computer字符串的图书名称: 在这之前,需要安装Microsoft Search服务,启动SQL server全文搜索服务 user pubs --打开数据库 go --检查数据库pubs是否支持全文索引,如果不支持 --则使用sp_fulltext_database 打开该功能 if(select databaseproperty('pubs','isfulltextenabled'))=0 execute sp_fulltext_database 'enable' --建立全文目录FT_PUBS execute sp_fulltext_catalog 'FT_pubs','create' --为title表建立全文索引数据元 execute sp_fulltext_table 'title','create','FT_pubs','UPKCL_titleidind' --设置全文索引列名 execute sp_fulltext_column 'title','title','add' execute sp_fulltext_column 'title','notes','add' --建立全文索引 --activate,是激活表的全文检索能力,也就是在全文目录中注册该表 execute sp_fulltext_table 'title','activate' --填充全文索引目录 execute sp_f......
C#锐利体验(2006-10-09 14:01:00)
摘要:C#语言是一门简单,现代,优雅,面向对象,类型安全,平台独立的一门新型组件编程语言。其语法风格源自C/C++家族,融合了Visual Basic的高效和C/C++强大,是微软为奠定其下一互联网霸主地位而打造的Microsoft.Net平台的主流语言。其一经推出便以其强大的操作能力,优雅的语法风格,创新的语言特性,第一等的面向组件编程的支持而深受世界各地程序员的好评和喜爱。“它就是我多年来梦寐以求的计算机语言!”--很多资深程序员拿到C#都是这样的惊讶。从C#语言的名字(C Sharp)我们也可见微软用其打造其下一代互联网络深度服务的勃勃雄心。C#语言目前已由微软提交欧洲计算机制造商协会ECMA,经过标准化后的C#将可由任何厂商在任何平台上实现其开发工具及其支持软件,这为C#的发展提供了强大的驱动力,我们也可从这里看到微软前所未有的眼光和智慧。
组件编程已经成为当今世界软件业面向下一代程序开发的一致选择,是90年代面向对象编程的深度发展。C#生逢其时,占尽天时地利,“第一等的面向组件编程的支持”也决不是简单说说那么轻松。实际上,组件特性已经深深植入C#语言的各个层面,是为C#锐利(Sharp)之处。在下面的文章中笔者将从C#语言的各个层面来展现C#语言中无处不见的组件特性,深度阐述C#面向组件编程。整个专题共分为十讲:“第一讲 ‘Hello,World!’程序”,“第二讲 C#语言基础介绍”,“第三讲 Microsoft.NET平台基础构造”,“第四讲 类与对象”,“第五讲 构造器与析构器”,“第六讲 方法”,“第七讲 域与属性”,“第八讲 索引器与操作符重载”,“第九讲 数组与字符串”,“第十讲 特征与映射”,“第十一讲 COM互操作 非托管编程与异常处理”,“第十二讲 用C#编织未来--C#编程模型概述”。
本页内容
第一讲 “Hello,World!”程序
第二讲 C#语言基础介绍
第三讲 Microsoft.NET平台基础构造
第四讲 类与对象
第五讲 构造器与析构器
第六讲 方法
第七讲 域与属性
第八讲 索引器与操作符重载
第一讲 “Hello......
用C#去除代码的SourceSafe管理(2006-09-13 11:34:00)
摘要: 经常看一些的程序,有些一个解决方案带有多个项目,由于代码比较多,多人开发,所以好多vs.net下的工程是用source safe进行版本控制的。而用source safe进行版本控制需要局域网路径共享,因此好多项目换一台机器打开会出现一些问题,比如“解决方案看起来是受源代码管理,但无法找到它的绑定信息……”之类的提示信息很多。有时候修改了代码还保存不了,所以想把他去掉,下面是对项目管理前后的一些对比。
一、工程项目比较
同没有受Source Safe代码管理的工程相比:
1. 多出了.scc、.vssscc和.vspscc文件;
2. C#项目文件(.csproj)里面添加了几行标签:
SccProjectName = "SAK"
SccLocalPath = "SAK"
SccAuxPath = "SAK"
SccProvider = "SAK"
3.在解决方案文件(.sln)中,中增加了如下节点原素:
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 4
SccLocalPath0 = .
……
SccLocalPath3 = SUBSCRIBE_TOOLS
&nbs......
编写多线程网络检测程序的简单实现(2006-09-13 11:33:00)
摘要:前段时间编写过一个简单的网络连接检测程序,功能就是检测某一个网段中的计算机跟本机的连接情况。小程序自己用用感觉还行,不过写的比较简单,没有什么特殊的功能也就没有放到BLOG上。最近看到CSDN论坛中有网友提及这方面的问题,所以把程序搬了出来,望能给那些需要的网友带来些许帮助。
程序的整个界面如下:
备注:
TextBox:用来输入一个C类的网段;
NumericUpDown:用来选择网段内的IP范围;
NumericUpDown3:用来选择一个线程最多处理的IP数量。
整个程序的一个主要类就是PingCommand类,如果要采用套接字实现可以参考孟子e章的一篇文章。
using System;
using System.Diagnostics;
namespace ZZ
{
///
/// PingCompleted事件委托
///
public delegate void PingCompletedHandler(object sender,PingEventArgs e);
///
/// PingCommand 的摘要说明。
///
public class PingCommand
{
///
/// PingCompleted事件
///
......
使用多线程加载多个Xml文件到TreeView控件(2006-09-13 11:32:00)
摘要:原代码:LoadingXmlInTvMTCode.zip
在很多情况下程序员需要采用多线程来开发应用程序,用户可以在前台操作数据或其他工作,在后台程序正在加载很大的一些文件,而这一过程不会影响到前台的用户。在这篇文章中,我来讲述一下怎样通过多个线程来加载多个文件。
在这个例子中我们将来研究这样一件事情,读取多个Xml文件并通过TreeView把它们显示出来。我们可以通过数据库来完成,不过为了保持例子的简单这里采用了Xml文件。
你会注意到我们有两个xml文件同原代码放在一起。
程序用户界面如下:
Filedisplayer类用来显示上面的窗体。窗体的包括一些按纽:浏览按纽,运行按纽,终止按纽以及退出按纽。应用程序可以通过点击退出按纽来结束整个程序的运行。当点击浏览的时候会打开一个文件选择对话框来加载Xml文件。当然你也可以直接在文本框中输入文件全路径。
private void selectbutton_click(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt";
if (openFileDialog1.ShowDialog () == DialogResult.OK)
{
String fileName = openFileDialog1.FileName;
//如果文件扩展名为xml,选择成功
i......
相当精妙的Sql语句(同转收集)(2006-09-13 11:02:00)
摘要:下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idx......
Windows Forms Form FAQ(2006-09-13 11:00:00)
摘要:32.1 How can I programmatically maximize or minimize a form?
Use the form's WindowState property.
//minimize
this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
.....
//maximize
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
32.2 How can I display a pop up a confirmation dialog when the user closes the form?
You can listen to the Form's Closing event, where you can display a MessageBox as show below:
[C#]
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Do you want to close the application?", "Close Application", MessageBoxButtons.YesN......
C# 2.0与泛型(2006-09-13 10:17:00)
摘要:在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。
本文讨论泛型使用的一般问题,比如为什么要使用泛型、泛型的编写方法、泛型中数据类型的约束、泛型中静态成员使用要注意的问题、泛型中方法重载的问、泛型方法等,通过这些使我们可以大致了解泛型并掌握泛型的一般应用,编写出更简单、通用、高效的应用系统。
什么是泛型
我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。
为什么要使用泛型
为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:
public class Stack
{
private int[] m_item;
public int Pop(){...}
public void Push(int item){...}
public Stack(int i)
{
this.m_ite......