数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SQL Server7.0 Web資料搜尋技巧

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

「資料庫資料」搜尋:使用SQL指令的LIKE語法、或Microsoft SQL Server 7.0的中文全文檢索(Full Text Search)功能。

Microsoft Index Server
  於Windows NT Option Pack當中所包括的Microsoft Index Server,提供中文全文檢索的搜尋功能,可以搜尋網站中Microsoft Word 或Microsoft Excel檔案、text、html、ASP等檔案格式內的資料。

SQL指令LIKE搜尋
  一般資料庫資料的搜尋,可以使用SQL指令的LIKE語法,如下: select * from 資料表名稱 where 欄位名稱 LIKE '%搜尋的字串%’ 譬如:「select * from 客戶 where 地址 LIKE '%台北市%’」可以搜尋 到客戶資料表當中地址欄位有包含台北市的資料。 使用LIKE語法的最大缺點,為動作太慢,因為必須對資料庫裡的資料一筆一筆地做搜尋。另外,雖然Access資料庫的Memo類型欄位資料也可以搜尋得到,但是無法搜尋某些類型的欄位資料,譬如SQL Server的Text類型的欄位資料無法使用SQL指令LIKE語法做搜尋。

SQL Server 7.0全文檢索
  對資料庫的資料做搜尋,最好的方式為使用Microsoft SQL Server 7.0的Full Text Search功能,可以對Char、Varchar、Text、NText、NChar、NVarchar類型欄位的資料做中文全文檢索的搜尋功能。
  您必須安裝Microsoft SQL Server 7.0的Full Text Search部份,這部份 並未包括於SQL Server 7.0的一般安裝步驟當中,必須另外安裝,才可以使用中文全文檢索的搜尋功能。 設定待搜查資料表的步驟首先要設定待搜查的資料表,方法為執行 [SQL Server Enterprise Manager],於待搜查的資料表譬如 [Northwind] 資料庫的 [Customers] 資料表上按右鍵,選擇 [Full-Text Index Table] 的 [Define Full-Text Indexing on a Table]。即會顯示 [Full-Text Indexing Wizard] 的畫面。按下 [下一步],選擇做為唯一索引的欄位。按下 [下一步],選擇做為唯一索引的欄位。按下 [下一步],選擇或新產生一個儲存索引資料的catalog。接著按下 [New Schedule] 按鈕排定索引行程,設定多久做一次索引,[Jobtype] 可選擇 [Full] 或[Incremental],[Full] 表示對整個資料表的資料重新做索引,[Incremental] 表示僅對資料表異動的資料做索引,譬如排定每天半夜對資料表異動的資料做一次索引。按下 [OK] 和 [下一步],即定義好設定待搜查的資料表。
  這時候並未對待搜查的資料表做索引,必須於[Full-Text Catalogs] 中所設定的catalog 如 [客戶] 按右鍵選擇 [Start Population] 的 [Full Population]對整個資料表的資料重新做索引。

  以上設定將於每天半夜對資料表異動的資料做一次索引。資料表的資料有異動時,因為並未立即做索引,必須於隔天半夜做一次索引後,才可以搜尋到異動的資料。
  透過網際網路搜尋資料庫的資料如何透過網際網路或intranet,搜尋伺服器資料庫的資料呢?在Windows NT的平台上,最好的選擇就是使用IIS(Internet Information Server)的網站伺
服器,採得ASP(Active Server Pages)撰寫程式。

  讓我們先來看看Microsoft SQL Server 7.0的中文全文檢索(Full Text Search)範例ft1.asp的執行結果,於用戶端使用瀏覽器,瀏覽執行ft1.asp的結果,顯示搜尋到資料的記錄。
SQL Server 7.0的中文全文檢索十分簡易,只要於SQL指令使用CONTAINS的語
法,如下:
  select * from 資料表名稱 where CONTAINS( 欄位名稱, '搜尋的條件’)
  譬如:「SELECT * FROM Customers where CONTAINS(Address,'台北市')」可以搜尋到客戶資料表當中地址欄位有包含台北市的資料。

  首先於asp程式設定連結到資料庫,連結到SQL Server資料庫的ASP程式如下:
  cn.Open "Driver={SQL Server};Database=資料庫名稱;Server=(Local); UID=sa; PWD=”
  設定了資料庫連結後,第二個步驟就是要下SQL指令,將SQL指令查詢的結果儲存到Recordset物件rs當中,由rs(“欄位”) 讀取資料庫欄位的資料,rs.MoveNext移動到下一筆記錄,經由rs.EOF判斷是否已經到最末筆,配合Do while…Loop就可以取得查詢結果的所有記錄。SQL Server 7.0除了提供ODBC驅動程式外,也提供了OLE DB Provider,ASP如何透過OLE DB存取SQL Server呢?ASP程透過OLE DB 與ODBC驅動程式存取SQL Server 的差異處,為OLE DB 須指定Provider是誰,即只要多加一行「cn.Provider = "sqloledb"」程式就可以了,其他與ODBC驅動程式存取SQL Server 的方法相同。連結到SQL Server資料庫的ASP程式如下:
  cn.Provider = "sqloledb"
  cn.Open "server=(Local);uid=sa;pwd=;database=資料庫名稱"
  搜尋的條件可以使用AND、OR、NEAR等關鍵字。另外除了CONTAINS外,也可以使用FREETEXT的語法。詳細語法請參考SQL Server 7.0的Books Online。

来自:http://program.szata.com/


相关文章

相关软件