淺談ASP編程的思路與糾錯_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP 3.0高級編程(三十九)
      8.4.3 創建記錄集 創建一個記錄集十分容易,通過調用Recordset對象的Open方法來實現: Recordset.Open [Source], [ActiveConnection], [CursorType], [LockType], [Options] 其參數及說明如表8-

      對于用ASP技術編程的初學者來說,無從下手是第一感覺,筆者曾經有這么一段經歷。經過一番"磨難"以后,你就會找到靈感。現將本人編程中積累的一些經驗,擬成本文,奉獻給讀者。

      1 首先要學習一些例子程序。

      接到任務后,不要盲目地急于編寫代碼,而是先看一下別人成功的例子,然后在其上修改或模仿調試,這樣會加快你熟悉的速度。例如,關于ASP編程的教科書上經常有這么一個例子出現,即顯示系統當前時間的語句:<%=now()%> ,別看這么簡單的一條語句,里邊卻包含了ASP的編程思想和格式,會給你后邊的工作帶來很大的幫助。比如說,測試IIS(Internet Information Server)WEB SERVER是否正常工作,用上邊的一個語句測試就足夠了。

      2 在WINDOWS NT上安裝ODBC后,要測試和后臺數據庫確實連通后,再開始編程測試。

      可能您沒有看懂題目的意思,我在這里解釋一下:比如說,后臺數據庫是ORACLE,那么在NT SEVER上首先要安裝SQL*NET(或NET 8),然后配置ODBC,確定和ORACLE數據庫連通,可以用SQL*PLUS測試,還要選擇和ORACLE數據庫相同的字符集,這個工作要在注冊表里完成。最后在ODBC里邊測試和ORACLE數據庫連通后,說明WEB SERVER 到后臺數據庫端的工作就完成了,下邊再開始編程工作。反過來,你若先編程,后做ODBC的工作,那么你無法調試程序是否正確,可能大大降低編程效率。在ODBC配置中要選擇MICROSOFT ODBC FOR ORACLE,不要選擇ORACLE ODBC DRIVER,否則不能和數據庫建立聯系。

      在ASP程序中,和數據庫連接的語句是比較固定的,舉例如下:
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "odbclink","o7people","peoplepd"
      在這里,odbclink是數據源的名字,可以說成是ODBC和數據庫連接的定義,o7people是ORACLE的一個用戶名,peoplepd是用戶o7people的密碼。

      3 記錄下出錯信息,尋找糾錯規律。
      在編程、調試過程中,是一個出錯、糾錯的循環過程,但是時間長了,會發現一些規律,排除錯誤的效率會大大提高。
      3.1 出錯信息:
      Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e14'
      [Microsoft][ODBC driver for Oracle][Oracle]ORA-00933: SQL command not properly ended
      /default.asp, 行781
      這種錯誤,一般是在執行 Conn.Execute("SQL 語句")操作時,所定義的"SQL 語句"有問題,檢查此語句就能發現問題,如日期格式不對,等等。
      zhezhong
      3.2 出錯信息:
      ADODB.Field 錯誤 '800a0bcd'
      BOF 或 EOF 中有一個是"真",或者當前的記錄已被刪除,但應用程序要求操作的是當前的記錄。
      /lzjsblr.asp, 行123
      這個錯誤,一般發生在執行下列語句的過程中:
      set RS = Conn.Execute("SQL 語句" )
      varnum1=RS(0)
      RS.CLOSE
      所取的值RS(0)無意義或無意義,還要檢查"SQL 語句"的正確性。
      3.3 出錯信息:
      Microsoft VBScript 編譯器錯誤 錯誤 '800a0409'
      未結束的字符串常量
      /people/default.asp, 行86
      insert_sql = insert_sql & dwdm & ",'" & d1 & "','" & t1 & "','" & t2 & "',
      --------------------------------------------------------------------------^
      次項錯誤也是出在SQL語句的定義上,檢查引號、單引號等的配對情況。

      4 下邊是一個基于瀏覽器的網上用戶注冊登記程序,筆者在里邊運用了一些技巧,奉獻給感興趣的讀者。
      <html>
      <head>
      ……
      <
      <%'和數據庫連接
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "odbclink","o7people","peoplepd"
      '將選擇的數據放入選擇框
      Set RS = Conn.Execute("SELECT dwmc FROM tab_dw order by dwdm")
      %>
      <% Do While Not RS.EOF %> <option><% = RS(0) %></option>
      <%
      RS.MoveNext
      Loop
      RS.Close
      %>
      <%
      '定義變量
      Dim D1,D2,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,csrq,sqrq
      '事件觸發按鈕
      B1="commit"
      B2="return"
      %>
      <%
      '將信息初始化
      Sub Reset()
      D1 = ""
      ……
      T9 = date()
      T10 = ""
      End Sub
      %>
      <%
      Call Reset()
      %>
      <%
      '信息提交條件(觸發條件)
      if Request("B1") = "commit" Then 'Save Button
      D1 = Request("D1")
      set DWDM_RS = Conn.Execute("SELECT dwdm FROM table_dw where dwmc='"&D1&"' " )
      DWDM=DWDM_RS(0)
      DWDM_RS.CLOSE
      D2 = Request("D2")
      ……
      '日期數據轉換成ORACLE識別的格式
      csrq = DAY(T6) & "-" & month_array(Month(T6)) & "-" & Year(T6)
      sqrq = DAY(T9) & "-" & month_array(Month(T9)) & "-" & Year(T9)
      '定義SQL語句
      Sql_insert = "INSERT INTO peopleuser(dwdm,dwmc,sjks,tele,address,zipcode,xm,xb,csrq,peoplename,peoplepd,sqsj,bz) VALUES ('"
      Sql_insert = Sql_insert & DWDM & "','" & D1 & "','" & T1 & "','" & T2 & "','" & T3 & "','" & T4 & "','"
      Sql_insert = Sql_insert &T5&"','"& D2 & "','" & CSRQ & "','" & T7 & "','" & T8 & "','" & SQRQ & "','"
      Sql_insert = Sql_insert & T10 & "')"
      '將信息入庫
      Set LFMC_R4 = Conn.Execute(Sql_insert)
      '信息提交完成后,將屏幕信息初始化
      call reset()
      end if
      %>

      分享:ASP中實現從dbf數據庫導出數據到sql表
      說明:dbf數據庫結構要與sql表一致 以下為引用的內容: <% Dim conndbf_dbf,Driver_dbf,SourceType_dbf,DBPath_dbf dim Conn_

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關ASP教程