乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ASP 連接字符串 .

       aaie_ 2012-09-11

      一、存取數(shù)據(jù)庫(kù)的原理

      在ASP中,用來(lái)存取數(shù)據(jù)庫(kù)的對(duì)象統(tǒng)稱ADO對(duì)象(Active Data Objects),主要含有三種對(duì)象:Connection、Recordset和Command,其中Connection負(fù)責(zé)打開(kāi)或連接數(shù)據(jù)庫(kù),Recordset負(fù)責(zé)存取數(shù)據(jù)表,Command負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)執(zhí)行行動(dòng)查詢(Action Query)命令和執(zhí)行SQL Server的Stored Procedure。只依靠這三個(gè)對(duì)象還是無(wú)法存取數(shù)據(jù)庫(kù)的,還必須具有數(shù)據(jù)庫(kù)存取的驅(qū)動(dòng)程序:OLE DB驅(qū)動(dòng)程序和ODBC驅(qū)動(dòng)程序。對(duì)于任何一種數(shù)據(jù)庫(kù)都必須有相對(duì)應(yīng)的OLE DB驅(qū)動(dòng)程序和ODBC驅(qū)動(dòng)程序,ADO對(duì)象才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取。

      ADO對(duì)象必須與各種驅(qū)動(dòng)程序相結(jié)合才能存取各種類型數(shù)據(jù)庫(kù),不同的數(shù)據(jù)庫(kù)需要不同的驅(qū)動(dòng)程序。在Windows 9x/NT的"開(kāi)始"→"設(shè)置"→"控制面板" →"ODBC Data Source(32Bit)"中的"驅(qū)動(dòng)程序"標(biāo)簽頁(yè),可以查證機(jī)器上究竟裝了哪些驅(qū)動(dòng)程序。

      二、連接數(shù)據(jù)庫(kù)和打開(kāi)數(shù)據(jù)表

      不同數(shù)據(jù)庫(kù)的連接方法有所不同(即建立Connection實(shí)例的方法不一樣),但建立Connection實(shí)例后,利用Recordset對(duì)象進(jìn)行存取數(shù)據(jù)的方法卻大同小異。下面對(duì)于不同的數(shù)據(jù)類型,編寫了相對(duì)應(yīng)的連接函數(shù),在程序中直接引用即可。

      程序用VB Script腳本語(yǔ)言編寫。

      1.建立MdbRecordset對(duì)象。MDB數(shù)據(jù)庫(kù)是一個(gè)完整的數(shù)據(jù)庫(kù),內(nèi)部可能含有若干個(gè)數(shù)據(jù)表,在此函數(shù)中,Connection的作用是連接數(shù)據(jù)庫(kù),Recordset的作用是打開(kāi)數(shù)據(jù)表。

      1. Function CreateMdbRecordset(數(shù)據(jù)庫(kù)文件名, 數(shù)據(jù)表名或Select語(yǔ)句 )  
      2.   Dim conn,Provider,DBPath  
      3.   '建立Connection 對(duì)象  
      4.   Set conn = Server.CreateObject("ADODB.Connection")  
      5.   Provider="Provider=Microsoft.Jet.OLEDB.4.0;"  
      6.   DBPath = "Data Source=" & Server.MapPath("數(shù)據(jù)庫(kù)文件名")  
      7.   '打開(kāi)數(shù)據(jù)庫(kù)  
      8.   conn.Open Provider & DBPath  
      9.   Set CreateMdbRecordset = Server.CreateObject("ADODB.Recordset")  
      10.   '打開(kāi)數(shù)據(jù)表  
      11.   CreateMdbRecordset.Open "數(shù)據(jù)表名", conn, 2, 2  
      12. End Function   

       

      2.建立帶密碼的MDB數(shù)據(jù)庫(kù)的Recordset對(duì)象。它的建立方式與建立不帶密碼的MDB數(shù)據(jù)庫(kù)的Recordset對(duì)象類似,只是多了一個(gè)密碼參數(shù),即在與數(shù)據(jù)庫(kù)連接時(shí),必須給出密碼信息。

      1. Function CreateSecuredMdbRecordset( 數(shù)據(jù)庫(kù)文件名, 數(shù)據(jù)表名或Select語(yǔ)句,password )  
      2.  Dim conn,Provider,DBPath  
      3.  '建立Connection 對(duì)象  
      4.  Set conn = Server.CreateObject("ADODB.Connection")  
      5.  Provider = "Provider=Microsof.Jet.OLEDB.4.0;"  
      6.  DBPath = "Data Source="& Server.MapPath("數(shù)據(jù)庫(kù)文件名")  
      7.  '連接數(shù)據(jù)庫(kù),注意要帶有密碼參數(shù)  
      8.  conn.Open Provider & DBPath&"Jet OLEDB:Database Password="&assword  
      9.  Set CreateSecuredMdbRecordset = Server.  
      10.  CreateObject("ADODB.Recordset")  
      11.  '打開(kāi)數(shù)據(jù)表  
      12.  CreateSecuredMdbRecordset.Open "數(shù)據(jù)表名", conn, 2, 2  
      13. End Function   

       

      3.DBF文件不是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)文件,只相當(dāng)于標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)文件中的一個(gè)數(shù)據(jù)表,所以為了使用DBF文件,可以把所有的DBF文件放在一個(gè)目錄下,這樣把目錄名看成標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),每一個(gè)DBF文件相當(dāng)于標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)表。下面函數(shù)中的Directory是DBF所在的目錄名。

       

      1. Function CreateDbfRecordset( 目錄名, DBF文件名或Select語(yǔ)句 )  
      2.  Dim conn,Driver,SourceType,DBPath  
      3.  '建立Connection 對(duì)象  
      4.  Set conn = Server.CreateObject("ADODB.Connection")  
      5.  Driver="Driver={Microsoft Visual FoxProDriver};" SourceType = "SourceType=DBF;"  
      6.  DBPath="SourceDB=" & Server.MapPath("目錄名")  
      7.  '調(diào)用Open 方法打開(kāi)數(shù)據(jù)庫(kù)  
      8.  conn.Open Driver & SourceType & DBPath  
      9.  Set CreateDbfRecordset = Server.CreateObject("ADODB.Recordset")  
      10.  '打開(kāi)DBF文件  
      11.  CreateDbfRecordset.Open "DBF文件名或Select語(yǔ)句", conn, 2, 2  
      12. End Function   

       

      4.由FoxPro生成的DBC數(shù)據(jù)庫(kù)與MDB數(shù)據(jù)庫(kù)相似,都是一個(gè)數(shù)據(jù)庫(kù)包含幾個(gè)數(shù)據(jù)表的形式,所以對(duì)DBC數(shù)據(jù)庫(kù)的存取方法與MDB數(shù)據(jù)庫(kù)相似。

      1. Function CreateDbcRecordset( DBC數(shù)據(jù)庫(kù)文件名, 數(shù)據(jù)表名或Select語(yǔ)句 )  
      2.  Dim conn,Driver,SourceType,DBPath  
      3.  '建立Connection 對(duì)象  
      4.  Set conn = Server.CreateObject("ADODB.Connection")  
      5.  Driver="Driver={Microsoft Visual FoxPro Driver};"  
      6.  SourceType = "SourceType=DBC;"  
      7.  DBPath = "SourceDB=" & Server.MapPath("DBC數(shù)據(jù)庫(kù)文件名")  
      8.  '連接數(shù)據(jù)庫(kù)  
      9.  conn.Open Driver & SourceType & DBPath  
      10.  Set CreateDbcRecordset = Server.CreateObject("ADODB.Recordset")  
      11.  '打開(kāi)數(shù)據(jù)表  
      12.  CreateDbcRecordset.Open"數(shù)據(jù)表名或Select語(yǔ)句", conn, 2, 2  
      13. End Function  

       

      5.將Excel生成的XLS文件(book)看成一個(gè)數(shù)據(jù)庫(kù),其中的每一個(gè)工作表(sheet)看成一個(gè)數(shù)據(jù)庫(kù)表。

      1. Function CreateExcelRecordset(XLS文件名,Sheet名)  
      2.  Dim conn.Driver,DBPath  
      3.  '建立Connection對(duì)象  
      4.  Set conn = Server.CreateObject("ADODB.Connection")  
      5.  Driver="Driver={Microsoft Excel Driver (*.xls)};"  
      6.  DBPath = "DBQ=" & Server.MapPath("XLS文件名")  
      7.  '調(diào)用Open 方法打開(kāi)數(shù)據(jù)庫(kù)  
      8.  conn.Open Driver & DBPath  
      9.  Set CreateExcelRecordset = Server.CreateObject("ADODB.Recordset")  
      10.  '打開(kāi)Sheet  
      11.  CreateExcelRecordset.Open "Select * From ["&sheet&"$]", conn, 2, 2  
      12. End Function   

       

      6.SQL Server屬于Server級(jí)的數(shù)據(jù)庫(kù),使用時(shí)要求比較嚴(yán)格,必須要輸入用戶名及密碼才能使用。

       

      1. Function CreateSQLServerRecordset(計(jì)算機(jī)名稱,用戶ID, 用戶密碼,數(shù)據(jù)庫(kù)名稱 數(shù)據(jù)表或查看表或Select指令 )  
      2.  Dim Params, conn  
      3.  Set CreatSQLServerConnection = Nothing  
      4.  Set conn = Server.CreateObject ("ADODB.Connection")  
      5.  Params = "Provider=SQLOLEDB.1"  
      6.  Params = Params & ";Data Source=" & Computer  
      7.  Params = Params & ";User ID=" & UserID  
      8.  Params = Params & ";Password=" & Password  
      9.  Params = Params & ".Initial Catalog="&數(shù)據(jù)庫(kù)名稱  
      10.  Conn open Paras  
      11.  Set CreateSQLServerRecordset = Server. CreateObject("ADODB.Recordset")  
      12.  CreateSQLServerRecordset.Open source, conn, 2, 2  
      13. End Function  
      14. Dim conn,Driver,SourceType,DBPath  
      15.   ' 建立Connection 對(duì)象  
      16.   Set conn = Server.CreateObject("ADODB.Connection")  
      17.   Driver = "Driver={ Microsoft Visual FoxPro Driver};"  
      18.   SourceType = "SourceType=DBF;"  
      19.   DBPath = "SourceDB=" & Server.MapPath( "目錄名" )  
      20.   ' 調(diào)用Open 方法打開(kāi)數(shù)據(jù)庫(kù)  
      21.   conn.Open Driver & SourceType & DBPath  
      22.   Set CreateDbfRecordset = Server.CreateObject("ADODB.Recordset")  
      23.   ' 打開(kāi)DBF文件,參數(shù)二為Connection對(duì)象  
      24.   CreateDbfRecordset.Open DBF文件名或Select語(yǔ)句, conn, 2, 2   

       

      asp連接數(shù)據(jù)庫(kù)字符串:

      1. Set conn = Server.CreateObject("ADODB.Connection")  
      2. connstr = "Driver={SQL Server};Server=localhost(數(shù)據(jù)庫(kù)所在的位置),1433;NETWORK=DBMSSOCN;UID=wap(連接數(shù)據(jù)庫(kù)的用戶名);PWD=wap(連接數(shù)據(jù)庫(kù)的密碼);DATABASE=wap(連接數(shù)據(jù)庫(kù)的庫(kù)名);"  
      3. conn.Open connstr   

       

      1. <%  
      2. dim conn,rs  
      3. set conn=server.createobject("adodb.connection")  
      4. DBpath=Server.Mappath("../data/bbs.mdb")  
      5. Conn.Open "driver={Microsoft Acess Driver(*.mdb)};dbq="&Dbpath  
      6. s="select * from friend"  
      7. Set rs=Server.CreatObject("ADODB.Recordset")  
      8. rs.open s,conn,3  
      9. %>  

       


      原理:
      在實(shí)際應(yīng)用開(kāi)發(fā)中,特別是在WEB應(yīng)用系統(tǒng)中,如果JSP、Servlet或EJB使用JDBC直接訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),每一次數(shù)據(jù)訪問(wèn)請(qǐng)求都必須經(jīng)歷建立數(shù)據(jù)庫(kù)連接、打開(kāi)數(shù)據(jù)庫(kù)、存取數(shù)據(jù)和關(guān)閉數(shù)據(jù)庫(kù)連接等步驟,而連接并打開(kāi)數(shù)據(jù)庫(kù)是一件既消耗資源又費(fèi)時(shí)的工作,如果頻繁發(fā)生這種數(shù)據(jù)庫(kù)操作,系統(tǒng)的性能必然會(huì)急劇下降,甚至?xí)?dǎo)致系統(tǒng)崩潰。數(shù)據(jù)庫(kù)連接池技術(shù)是解決這個(gè)問(wèn)題最常用的方法,在許多應(yīng)用程序服務(wù)器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了這項(xiàng)技術(shù),無(wú)需自己編程,但是,深入了解這項(xiàng)技術(shù)是非常必要的。
      數(shù)據(jù)庫(kù)連接池技術(shù)的思想非常簡(jiǎn)單,將數(shù)據(jù)庫(kù)連接作為對(duì)象存儲(chǔ)在一個(gè)Vector對(duì)象中,一旦數(shù)據(jù)庫(kù)連接建立后,不同的數(shù)據(jù)庫(kù)訪問(wèn)請(qǐng)求就可以共享這些連接,這樣,通過(guò)復(fù)用這些已經(jīng)建立的數(shù)據(jù)庫(kù)連接,可以克服上述缺點(diǎn),極大地節(jié)省系統(tǒng)資源和時(shí)間。
      數(shù)據(jù)庫(kù)連接池的主要操作如下:
      (1)建立數(shù)據(jù)庫(kù)連接池對(duì)象
      (2)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫(kù)庫(kù)連接
      (3)對(duì)于一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)請(qǐng)求,直接從連接池中得到一個(gè)連接。如果數(shù)據(jù)庫(kù)連接池對(duì)象中沒(méi)有空閑的連接,且連接數(shù)沒(méi)有達(dá)到最大,創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)連接。
      (4)存取數(shù)據(jù)庫(kù)。
      (5)關(guān)閉數(shù)據(jù)庫(kù),釋放所有數(shù)據(jù)庫(kù)連接。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多