啪啪拉拉噼里啪啦

          初學(xué)者天堂資料匯集

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            16 隨筆 :: 73 文章 :: 16 評(píng)論 :: 0 Trackbacks

          asp常用數(shù)據(jù)庫(kù)連接方法和技巧

          轉(zhuǎn)貼:snow   日期:2005-02-28   人氣:19

          轉(zhuǎn)貼:snow   日期:2005-02-28   人氣:19

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


          2. ASP與SQL數(shù)據(jù)庫(kù)連接:

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

          ;DATABASE=數(shù)據(jù)庫(kù)名稱(chēng)
          %>

          建立記錄集對(duì)象:

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


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

          (1) 數(shù)據(jù)記錄篩選:

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

          (2) 更新數(shù)據(jù)記錄:

          sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"
          sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"

          (3) 刪除數(shù)據(jù)記錄:

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

          (4) 添加數(shù)據(jù)記錄:

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

          (5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):

          AVG(字段名) 得出一個(gè)表格欄平均值
          COUNT(*|字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
          MAX(字段名) 取得一個(gè)表格欄最大的值
          MIN(字段名) 取得一個(gè)表格欄最小的值
          SUM(字段名) 把數(shù)據(jù)欄的值相加

          引用以上函數(shù)的方法:

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

          用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。

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

          CREATE TABLE 數(shù)據(jù)表名稱(chēng)(字段1 類(lèi)型1(長(zhǎng)度),字段2 類(lèi)型2(長(zhǎng)度) …… )

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

          DROP TABLE 數(shù)據(jù)表名稱(chēng) (永久性刪除一個(gè)數(shù)據(jù)表)


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


          判斷所填數(shù)據(jù)是數(shù)字型

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

           


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

          去記這東東),所以常常在用到的時(shí)候又去查書(shū)本,翻來(lái)翻去。一些比較少用的數(shù)據(jù)庫(kù)還不一定能順利找

          到,所以現(xiàn)在把它們?nèi)珰w納到這里,提供大家參考。(個(gè)人水平有限,有缺陷之處,歡迎大家指正。)

          <一>。數(shù)據(jù)庫(kù)的連接方法:

          1.Access數(shù)據(jù)庫(kù)的DSN-less連接方法:

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

          2.Access OLE DB連接方法:

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

          3.SQL server連接方法:

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

          4.SQL server OLE DB連接方法:

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

          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.查詢數(shù)據(jù)記錄(Select)
          語(yǔ)法:Select 字段串行 From table Where 字段=內(nèi)容
          例子:想從book表中找出作者為"cancer"的所有記錄,SQL語(yǔ)句便如下:
          select * from book where author=’cancer’
          "*"是取出book表所有的字段,如查詢的字段值為數(shù)字,則其后的"內(nèi)容"便無(wú)須加上單引號(hào),

          如是日期,則在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)

          提示:
          日期函數(shù)to_date不是標(biāo)準(zhǔn)sql文,不是所有的數(shù)據(jù)庫(kù)適用,所以大家在使用的時(shí)候要參考數(shù)據(jù)庫(kù)具體語(yǔ)法

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

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

          如果查詢的是數(shù)字,則:

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

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

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

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

          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對(duì)象的Addnew插入數(shù)據(jù)的方法:
          語(yǔ)法:

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

          4.修改數(shù)據(jù)記錄(Update)
          語(yǔ)法: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對(duì)象的Update方法:
          語(yǔ)法:

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

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

          高。


          例子:

          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)
          語(yǔ)法:Delete table where field=value
          例子:刪除book表中作者是cancer的記錄

          delete book where author=’cancer’

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

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 苏尼特左旗| 光泽县| 南郑县| 建湖县| 来宾市| 昌吉市| 晋中市| 清水县| 海口市| 鱼台县| 五大连池市| 缙云县| 桃园市| 淄博市| 台东市| 郎溪县| 华宁县| 二连浩特市| 金平| 蒙城县| 资中县| 张家口市| 闽清县| 枝江市| 宁明县| 延川县| 杂多县| 绥化市| 阜康市| 昔阳县| 青河县| 巴青县| 马山县| 河南省| 岱山县| 万全县| 屏山县| 怀仁县| 湟源县| 利津县| 喀喇|