啪啪拉拉噼里啪啦

          初學者天堂資料匯集

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            16 隨筆 :: 73 文章 :: 16 評論 :: 0 Trackbacks

          asp常用數據庫連接方法和技巧

          轉貼:snow   日期:2005-02-28   人氣:19

          轉貼:snow   日期:2005-02-28   人氣:19

          <%
          dim conn,mdbfile
          mdbfile=server.mappath("數據庫名稱.mdb")
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=數據庫密碼;dbq="&mdbfile
          %>


          2. ASP與SQL數據庫連接:

          <%
          dim conn
          set conn=server.createobject("ADODB.connection")
          con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服務器名稱或IP地址;UID=sa;PWD=數據庫密碼

          ;DATABASE=數據庫名稱
          %>

          建立記錄集對象:

          set rs=server.createobject("adodb.recordset")
          rs.open SQL語句,conn,3,2


          3. SQL常用命令使用方法:

          (1) 數據記錄篩選:

          sql="select * from 數據表 where 字段名=字段值 order by 字段名 "
          sql="select * from 數據表 where 字段名 like ‘%字段值%‘ order by 字段名 "
          sql="select top 10 * from 數據表 where 字段名 order by 字段名 "
          sql="select * from 數據表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"
          sql="select * from 數據表 where 字段名 between 值1 and 值2"

          (2) 更新數據記錄:

          sql="update 數據表 set 字段名=字段值 where 條件表達式"
          sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

          (3) 刪除數據記錄:

          sql="delete from 數據表 where 條件表達式"
          sql="delete from 數據表" (將數據表所有記錄刪除)

          (4) 添加數據記錄:

          sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
          sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

          (5) 數據記錄統計函數:

          AVG(字段名) 得出一個表格欄平均值
          COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計
          MAX(字段名) 取得一個表格欄最大的值
          MIN(字段名) 取得一個表格欄最小的值
          SUM(字段名) 把數據欄的值相加

          引用以上函數的方法:

          sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
          set rs=conn.excute(sql)

          用 rs("別名") 獲取統的計值,其它函數運用同上。

          (5) 數據表的建立和刪除:

          CREATE TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )

          例:CREATE TABLE tab01(name varchar(50),datetime default now())

          DROP TABLE 數據表名稱 (永久性刪除一個數據表)


          (6) 記錄集對象的方法:
          rs.movenext 將記錄指針從當前的位置向下移一行
          rs.moveprevious 將記錄指針從當前的位置向上移一行
          rs.movefirst 將記錄指針移到數據表第一行
          rs.movelast 將記錄指針移到數據表最后一行
          rs.absoluteposition=N 將記錄指針移到數據表第N行
          rs.absolutepage=N 將記錄指針移到第N頁的第一行
          rs.pagesize=N 設置每頁為N條記錄
          rs.pagecount 根據 pagesize 的設置返回總頁數
          rs.recordcount 返回記錄總數
          rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否
          rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否
          rs.delete 刪除當前記錄,但記錄指針不會向下移動
          rs.addnew 添加記錄到數據表末端
          rs.update 更新數據表記錄


          判斷所填數據是數字型

          if not isNumeric(request("字段名稱")) then
          response.write "不是數字"
          else
          response.write "數字"
          end if

           


          經常使用到有關數據庫的操作。包括連接代碼、SQL命令等等,又不曾刻意去記憶它們(我本人是不愿意

          去記這東東),所以常常在用到的時候又去查書本,翻來翻去。一些比較少用的數據庫還不一定能順利找

          到,所以現在把它們全歸納到這里,提供大家參考。(個人水平有限,有缺陷之處,歡迎大家指正。)

          <一>。數據庫的連接方法:

          1.Access數據庫的DSN-less連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _
          Server.MapPath("數據庫所在路徑")

          2.Access OLE DB連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
          "Data Source=" & Server.MapPath("數據庫所在路徑")

          3.SQL server連接方法:

          set adocon=server.createobject("adodb.recordset")
          adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _
          "database=數據庫名;"

          4.SQL server OLE DB連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _
          "user ID=***;Password=***;"& _
          "inital Catalog=數據庫名"

          5.Oracle 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

          6.Oracle OLE DB 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

          7.dBase 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"

          8.mySQL 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;

          "

          9.Visual Foxpro 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Driver={microsoft Visual Foxpro

          driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

          10.MS text 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&_
          "extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

          11.MS text OLE DB 連接方法:

          set adocon=Server.Createobject("adodb.connection")
          adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_
          "Extended Properties'text;FMT=Delimited'"

          <二>。常用的四種SQL命令:

          1.查詢數據記錄(Select)
          語法:Select 字段串行 From table Where 字段=內容
          例子:想從book表中找出作者為"cancer"的所有記錄,SQL語句便如下:
          select * from book where author=’cancer’
          "*"是取出book表所有的字段,如查詢的字段值為數字,則其后的"內容"便無須加上單引號,

          如是日期,則在Access中用(#)包括,而在SQL server中則用(’)包括,
          如:

          select * from book where id=1
          select * from book where pub_date=#2002-1-7# (Access)
          select * from book where pub_date=’2002-1-7’ (SQL Server)

          提示:
          日期函數to_date不是標準sql文,不是所有的數據庫適用,所以大家在使用的時候要參考數據庫具體語法

          另外如果是查詢傳入的變量,則如下:

          strau=request.form("author")
          strsql="select * from book where author=’"&strau&"’"

          如果查詢的是數字,則:

          intID=request.form("id")
          strsql="select * from book where id="&intID

          在很多數據庫中,如:oracle,上面的語句是可以寫成:
          strsql="select * from book where id='"&intID&"'"的。
          但是字符型一定不能按照數字格式寫,需要注意。

          2.添加記錄(Insert)
          語法:Insert into table(field1,field2,....) Values (value1,value2,....)
          例子:添加一作者是"cancer"的記錄入book表:
          insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer無組件上傳程

          序’)
          同樣,如果用到變量就如下:

          strno=request.form("bookno")
          strau=request.form("author")
          strname=request.form("bookname")
          strsql="insert into book (bookno,author,bookname) values (’"&strno&"’,’"&strau&"’,’

          "&strname&"’)"

          3.用Recordset對象的Addnew插入數據的方法:
          語法:

          rs.addnew
          rs("field1").value=value1
          rs("field2").value=value2
          ...
          rs.update

          4.修改數據記錄(Update)
          語法:update table set field1=value1,field2=value2,...where fieldx=valuex
          例子:update book set author=’babycrazy’ where bookno=’CF001’
          如果用到變量就如下:

          strno=request.form("bookno")
          strau=request.form("author")
          strsql="update book set author=’"&strau&"’ where bookno=’"&strno"’"

          5.Recordset對象的Update方法:
          語法:

          rs("field1").value=value1
          rs("field2").value=value2
          ...
          rs.update

          注意:使用語法3和語法5的時候,一定要注意字段的類型(尤其是日期型)一致,否則出錯的幾率非常的

          高。


          例子:

          strno=request.form("bookno")
          strau=request.form("author")
          set adocon=server.createobject("adodb.connection")
          adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" & _
          Server.Mappath=("/cancer/cancer.mdb")
          strsql="select * from book where bookno=’"&strno&"’"
          set rs=server.createobject("adodb.recordset")
          rs.open strsql,adconn,1,3
          if not rs.eof then ’如果有此記錄的話
          rs("author").value=strau
          rs.update
          end if
          rs.close
          set rs=nothing
          adocon.close
          set adocon=nothing

          6.刪除一條記錄(Delete)
          語法:Delete table where field=value
          例子:刪除book表中作者是cancer的記錄

          delete book where author=’cancer’

          (注意:如果book表中author字段的值為cancer的記錄有多條,將會刪除所有author為cancer的記錄)

          posted on 2005-04-12 23:40 噼里啪啦的世界 閱讀(105) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昌江| 宜丰县| 丽水市| 南雄市| 盘山县| 利津县| 岳池县| 青阳县| 孝昌县| 潜江市| 江津市| 营山县| 丘北县| 桂东县| 新昌县| 莆田市| 莱西市| 昌平区| 阳西县| 新绛县| 荣昌县| 封丘县| 科尔| 罗源县| 兴义市| 宣化县| 广州市| 孟连| 云梦县| 贵州省| 鄂伦春自治旗| 赤峰市| 澄迈县| 错那县| 墨江| 秦皇岛市| 应城市| 梁平县| 益阳市| 武冈市| 夹江县|