2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

5、單表,也可以是多表連接)或視圖名、all/distinct關(guān)鍵字、top關(guān)鍵字、字段名數(shù)組、where條件、group by子句/order by字句、檢索結(jié)果存放的二維數(shù)組名等。</p><p>  該函數(shù)的返回值為邏輯型,True代表查詢過程中未出現(xiàn)錯(cuò)誤,否則,若為False說明查詢過程中出現(xiàn)了錯(cuò)誤。</p><p>  下面給出經(jīng)調(diào)試過的通用網(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 '查詢?nèi)孔侄?lt;/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 '去掉最后一個(gè)逗號(hào)(全部字段:去掉空格)</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 ‘代表后臺(tái)數(shù)據(jù)庫是SQLSERVER</p><p>  rstemp.Cursor

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

18、;<b>  else</b></p><p>  … ‘代表后臺(tái)數(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)錯(cuò)誤</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)錯(cuò)誤,將查詢結(jié)果存放到指定的二維數(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 '查詢?nèi)孔侄?lt;/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ù)的應(yīng)用</p><p>  在筆者參與的各類基于Web的數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程中,全部使用了前文給出的通用網(wǎng)頁查詢函數(shù)。利用&lt;!-- #include file="data_getting.inc" --&gt;語句(通用網(wǎng)頁查詢函數(shù)被保存為一個(gè)獨(dú)立的文件data_getting.inc),在需要進(jìn)行數(shù)據(jù)查詢的網(wǎng)頁中

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論