通用網(wǎng)頁查詢函數(shù)的設計與應用_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  通用網(wǎng)頁查詢函數(shù)的設計與應用</p><p>  摘要:本文首先介紹了通用網(wǎng)頁查詢函數(shù)的設計思想,并給出了全部源代碼及其應用。</p><p>  關鍵詞:數(shù)據(jù)庫 WWW Internet ASP 計算機網(wǎng)絡</p><p>  1. 引言</p><p>  隨著人們對信息化潮流的逐漸認識,各種信息在

2、Internet上的發(fā)布和檢索就變得非常的重要。特別是使用B/S模式的信息發(fā)布和檢索,由于它的簡單性、靈活性,越來越得到了廣泛的應用。現(xiàn)在,經常被人們采用的B/S模式的開發(fā)工具有ASP、PHP、JSP等,這些開發(fā)工具簡單易學、功能強大,為各種信息在Internet上的發(fā)布和檢索提供了強有力的幫助。但是,隨著信息量的逐漸爆炸,如果仍然采用針對特定發(fā)布信息設計專用程序的傳統(tǒng)辦法的話,顯然將導致信息發(fā)布的效率非常地低。</p>

3、<p>  為此,筆者研究了一種通用信息發(fā)布與檢索的技術方案,使用這套方案,將極大地減輕開發(fā)者的工作量,節(jié)約成本。本文介紹的便是這套技術方案中的一個非常重要的組成部分——基于ASP的通用網(wǎng)頁查詢函數(shù)的設計與應用。</p><p>  2. 通用網(wǎng)頁查詢函數(shù)的設計</p><p>  通用網(wǎng)頁查詢函數(shù)的功能主要是:根據(jù)調用者提供的各種參數(shù),在后臺數(shù)據(jù)庫管理系統(tǒng)中進行檢索,

4、最后將檢索結果以二維數(shù)組的形式返回給調用者。</p><p>  為了實現(xiàn)上述功能,實現(xiàn)該函數(shù)的主要思想是:根據(jù)調用者提供的各種參數(shù),生成對應的SQL語句,接下來與后臺數(shù)據(jù)庫管理系統(tǒng)建立連接、提取數(shù)據(jù)、斷開連接,最后將檢索結果以二維數(shù)組的形式返回給調用者。</p><p>  該函數(shù)的輸入?yún)?shù)有:后臺數(shù)據(jù)庫管理系統(tǒng)的代號(如0代表SQLServer、1代表VFP等)、數(shù)據(jù)源名、表名(可以是

5、單表,也可以是多表連接)或視圖名、all/distinct關鍵字、top關鍵字、字段名數(shù)組、where條件、group by子句/order by字句、檢索結果存放的二維數(shù)組名等。</p><p>  該函數(shù)的返回值為邏輯型,True代表查詢過程中未出現(xiàn)錯誤,否則,若為False說明查詢過程中出現(xiàn)了錯誤。</p><p>  下面給出經調試過的通用網(wǎng)頁查詢函數(shù)的源代碼。</p>

6、<p>  function data_getting(param_database_code,param_dsn_name,param_table_name,</p><p>  param_all,param_top,param_field_names(),ByRef data(),param_condition,</p><p>  param_other,ByRef

7、rcount,ByRef fcount,ByRef fieldsname()) </p><p>  on error resume next</p><p><b>  '生成查詢語句</b></p><p>  if param_all=true then </p><p>  query

8、="select "</p><p><b>  else</b></p><p>  query="select distinct "</p><p><b>  end if</b></p><p>  query=query+param_top+&quo

9、t; "</p><p>  if param_field_names(0)="*" then '查詢全部字段</p><p>  query=query+" * "</p><p><b>  else</b></p><p><b>  d_g_

10、i=0</b></p><p><b>  fcount=0 </b></p><p>  for each item in param_field_names</p><p>  if param_field_names(d_g_i)&lt;&gt;"" then</p><

11、p>  query=query+param_field_names(d_g_i)+","</p><p>  fcount=fcount+1 '記錄集列數(shù)</p><p><b>  end if</b></p><p>  d_g_i=d_g_i+1</p><p&g

12、t;<b>  next</b></p><p><b>  end if</b></p><p>  query=left(query,len(query)-1)+" from "+param_table_name '去掉最后一個逗號(全部字段:去掉空格)</p><p>  if len

13、(param_condition)&gt;0 then</p><p>  query=query+" where "+param_condition</p><p><b>  end if</b></p><p>  if len(param_other)&gt;0 then</p><

14、;p>  query=query+" "+param_other</p><p><b>  end if</b></p><p><b>  '打開記錄集</b></p><p>  set conntemp=server.createobject("ADODB.Connect

15、ion") </p><p>  conntemp.ConnectionString=param_dsn_name </p><p>  conntemp.Open </p><p>  conntemp.errors.clear </p><p>  Set rstemp=Se

16、rver.CreateObject("ADODB.Recordset") </p><p>  rstemp.ActiveConnection=conntemp </p><p>  if param_database_code=0 then ‘代表后臺數(shù)據(jù)庫是SQLSERVER</p><p>  rstemp.Cursor

17、Type=3</p><p>  rstemp.LockType=1</p><p>  else if param_database_code=1 then ‘代表后臺數(shù)據(jù)庫是VFP</p><p>  rstemp.CursorType=1</p><p>  rstemp.LockType=1</p><p>

18、;<b>  else</b></p><p>  … ‘代表后臺數(shù)據(jù)庫是其它數(shù)據(jù)庫管理系統(tǒng)(代碼略)</p><p><b>  end if </b></p><p>  rstemp.Source=query </p><p>  rs

19、temp.open </p><p>  ‘判斷查詢過程中是否出現(xiàn)錯誤</p><p>  if conntemp.errors.count&gt;0 then </p><p>  data_getting=false</p><p>  rcount=0 </p><p><b

20、>  else</b></p><p>  ‘如果查詢過程中未出現(xiàn)錯誤,將查詢結果存放到指定的二維數(shù)組中</p><p>  rcount=rstemp.recordcount '記錄集行數(shù) </p><p>  if rcount=0 then</p><p>  data_getting=true&

21、lt;/p><p><b>  else</b></p><p>  data_getting=true</p><p>  if param_field_names(0)="*" then '查詢全部字段</p><p>  fcount=rstemp.fields.count</p&

22、gt;<p><b>  end if</b></p><p>  ReDim data(rcount-1,fcount-1),fieldsname(fcount-1)</p><p>  for d_g_i=1 to rcount</p><p>  for d_g_j=1 to fcount</p><p&

23、gt;  data(d_g_i-1,d_g_j-1)=trim(rstemp.fields(d_g_j-1).value)</p><p>  if d_g_i=1 then</p><p>  fieldsname(d_g_j-1)=rstemp.fields(d_g_j-1).name</p><p><b>  end if </b>

24、</p><p><b>  next</b></p><p>  rstemp.movenext</p><p><b>  next</b></p><p><b>  end if</b></p><p>  end if <

25、/p><p>  rstemp.close </p><p>  set rstemp=nothing </p><p>  conntemp.close </p><p>  set conntemp=nothing </p><p>  end function</p>

26、<p>  3. 通用網(wǎng)頁查詢函數(shù)的應用</p><p>  在筆者參與的各類基于Web的數(shù)據(jù)庫應用系統(tǒng)的開發(fā)過程中,全部使用了前文給出的通用網(wǎng)頁查詢函數(shù)。利用&lt;!-- #include file="data_getting.inc" --&gt;語句(通用網(wǎng)頁查詢函數(shù)被保存為一個獨立的文件data_getting.inc),在需要進行數(shù)據(jù)查詢的網(wǎng)頁中

27、,嵌入該函數(shù),然后在ASP頁面只需調用該函數(shù),就能得到希望得到的查詢結果,從而大大減輕了編程的工作量,并便于ASP頁面的簡化和美化。</p><p>  4. 結束語</p><p>  本文給出的通用網(wǎng)頁查詢函數(shù),以及筆者開發(fā)的其它的一些通用函數(shù)(用于執(zhí)行一系列SQL命令的函數(shù)、用于調用數(shù)據(jù)庫端存儲過程的函數(shù)等),大大減輕了在系統(tǒng)開發(fā)過程中的工作量,基本實現(xiàn)了代碼復用的目的,希

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論