連接資料庫
『壹』 資料庫與軟體連接的方法是什麼
軟體可以通過好多種方式連接資料庫,有微軟提供的(ODBC)開放式資料庫連接,和SUN提供的JDBC(java 資料庫連接),也可以用資料庫服務商提供的API來實現資料庫訪問。
資料庫系統也有好多種,有IBM公司的DB2,有甲骨文公司提供的oracle系列,還有微軟提供的sql Server, 還有免費版的MySQL。
你看到的大多數小網站用的都是MySQL。
你可以學學這個資料庫系統,再看看JDBC.這方面的教程太多了。
『貳』 資料庫怎麼連接
首先本地要有一個資料庫軟體1、遠程公網的IP地址2、資料庫名3、用戶名4、密碼在你的本地資料庫搜索加入組。就可以在本地直連接到遠程資料庫了!或者空間商會提供你資料庫的IP你可以在本地備份好資料庫用FTP上傳軟體上傳到空間商的網頁管理器還原資料庫,就可以了!
『叄』 請問Sql如何連接資料庫
ASP的鏈接方式
<%
'連接資料庫
on error resume next
'connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("資料庫路徑") '連接ACESS
connstr="Provider = Sqloledb; User ID =用戶名; Password =密碼; Initial Catalog = 資料庫名稱; Data Source = 資料庫地址 ;" '連接MSSQL
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
If Err Then
response.Write "連接資料庫出錯!"
err.Clear
Set conn = Nothing
Response.End
End If
%>
.net的連接方式
直接在web.config里修改
『肆』 如何連接資料庫
如果您是ACCESS資料庫。這是最簡單的一種資料庫,它通常都是隨著資料庫源碼可以放在一起的,只需要知道FTP地址、賬戶與密碼就可以連接。利用FTP上傳工具上傳即可。上傳工具小編在下方資料參考處提供軟體下載鏈接。
『伍』 網路怎麼連接資料庫
VB訪問SQL Server資料庫技術全揭密(1)
本文討論了Visual Basic應用程序訪問SQL Server資料庫的幾種常用的方法,分別說明了每種方法的內部機理並給出了每種方法的一個簡單的實例,最後比較了每種方法性能和優缺點。
一、引言
SQL Server是微軟推出的中小型網路資料庫系統,是目前最常用的資料庫系統之一。隨著SQL Server網路資料庫應用程序日益增多,這種Web資料庫應用系統的正常運行一般依賴於已存在的用戶資料庫。創建維護資料庫的工作可用SQL Server提供的SQL Enterprise Manager工具來進行,如能提供一種定製的資料庫管理工具,通過管理應用程序來管理資料庫及其設備,對用戶來說無疑是最理想的。
Visual Basic作為一種面向對象的可視化編程工具,具有簡單易學,靈活方便和易於擴充的特點。而且Microsoft為其提供了與SQL Server通信的API函數集及工具集,因此它越來越多地用作大型公司數據和客戶機—伺服器應用程序的前端,與後端的Microsoft SQL Server相結合,VB能夠提供一個高性能的客戶機—伺服器方案。
二、VB訪問SQL Server數據的常用方法
使用Visual Basic作為前端開發語言,與SQL Server介面有幾種常用的方法,即:
①數據訪問對象/Jet
②為ODBC API編程
③使用SQL Server的Visual Basic庫(VBSQL)為DB庫的API編程
④RDO 遠程數據對象(RemoteData Objects)
⑤ADO 數據對象(Active Data Objects)
1、數據訪問對象/Jet
VB支持Data Access Objects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—伺服器之間的對話方式,但它的確有許多優點。DAO/Jet是為了實現從VB訪問Access資料庫而開發的程序介面對象。使用DAOs訪問SQL Server的過程如下:應用程序准備好語句並送至Jet,Jet引擎(MASJT200.DLL)優化查詢,載入驅動程序管理器並與之通訊,驅動程序管理器(ODBC.DLL)通過調用驅動器(SQLSRVR.DLL)的函數,實現連接到數據源,翻譯並向SQL Server提交SQL語句且返回結果。下面是一個用DAOs訪問SQL Server的VB實例。
注釋:Form Declarations
Dim mydb As Database
Dim mydynaset As Dynaset オ
Private Sub Form_Load()
Set mydb = OpenDatabase("", False, False, "ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales")
Set mydynaset = mydb CreateDynaset("Select*from Customers") オ
End Sub ァ
上述例子是以非獨占、非只讀方式打開sales資料庫,並檢索Customers表中的所有欄位。OpenDatabase函數的最後一個參數是ODBC連接字元串參數,它指明了Microsoft Access連接到SQL Server所需要知道的一些內容。其中「DSN」為數據源名,「WSID」為工作站名,「DATABASE」為所要訪問的資料庫名。
2、利用ODBC API編程
ODBC(Open Database Connectivity)的思想是訪問異種資料庫的一種可移植的方式。與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器反過來通過驅動器(SQLSRVR.DLL)把它們送到伺服器中。
下面的代碼使用上面一些函數先登錄到一個伺服器資料庫,並為隨後的工作設置了語句句柄。
Global giHEnv As Long
Global giHDB As Long
Global giHStmt As Long
Dim myResult As integer
Dim myConnection As Srting
Dim myBuff As String*256
Dim myBufflen As Integer
If SQLAllocEnv(giHEnv)<>SQL_SUCCESS Then
MsgBox"Allocation couldn注釋:t happen!"
End If
If SQLAllocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then
MsgBox "SQL Server couldn注釋:t connect!"
End If
myConnection="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales"
myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)
myResult=SQLAllocStmt(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rsSQL="Select * from Customers Where City = "Hunan""
myResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))
3、使用VBSQL對DB庫API編程
DB庫是SQL Server的本地API,SQL Server的Visual Basic庫(VBSQL)為Visual Basic程序員提供API。從一定意義上說,VBSQL是連接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三個文件:
VBSQL.VBX: 包含庫函數,具有訪問重要的消息和處理錯誤的能力
VBSQL.BI:包括所有的常量和變數說明
VBSQL.HLP:Windows幫助文件,使用VBSQL的指南
使用VBSQL時,必須將VBSQL.BI加入到Visual Basic工程文件中,並確保VB程序運行時有VBSQL.VBX文件。
一般的DB庫API編程的過程是這樣的:先通過調用SqlInit對DB庫進行初始化,再調用SqlConnection打開一個連接,然後就可做一些工作。下面的代碼是一個初始化DB庫並登錄到伺服器的通用常式『陸』 怎麼才能連接資料庫啊
問:資料庫連接不上;運行科脈商業管理系統後出現連接資料庫的提示界面,進入了科脈系統?
答:(1)先檢查網路是否正常,再檢查SQL SERVER是否正常,可使用TELNET IP 1433命令來幫助分析。
(2)確認是資料庫被掛起(是否斷電的原因造成的)。
(3)如有備份,則可使用DB_SETUP重新裝載備份的資料庫文件即可恢復數據成功,所以必須要求客戶每日備份數據。 科脈其他常見問題:1. 問:系統初始化加密狗失敗,錯誤代碼為「15」?
答:查看你的網路是否連通,插緊加密狗,有沒有安裝好加密狗驅動程序,如果沒有請重新安裝。
2. 問:初始化科脈系統時,系統提示連接不到科脈資料庫?
答:有沒有裝載科脈資料庫(DB_SETUP),或打開SQL SERVER的企業管理器,查看Databases下面有無KMJXC的資料庫,如果沒有請重新裝載科脈資料庫。
3. 問:為何在科脈商業管理系統中更改或刪除條形碼時只能用系統工程管理員去更改?
答:為了客戶能安全使用科脈商業管理系統,所以在科脈中只能用系統管理員去更改或刪除條形碼,而一般的操作員是沒有許可權更改或刪除條形碼的。
4. 問:前台列印小票時,上一張小票與下一張小票空格太寬?
答:在前台收銀機外設設置處把添加空行數目處,將頭和尾的值進行修改,重新啟動收銀系統即可。
5. 問:類別毛利總金額與收銀員匯總報表的總金額對不上、前台商品銷售明細流水報表多於後台銷售按商品匯總報表?
答:請做綜合數據日結,在一般的情況下這兩個報表是相等的,用戶把一些商品資料從基本檔案刪除了,而前台收銀機上還有這些商品資料。所以導致這兩個報表對不上。
6. 問:在分布式版中為何分店的會員卡積分在總店不能查詢?
答:分店的會員卡積分中能在各分店查詢各自的會員卡積分,分店的會員卡積分不能傳上總店,所以在總店不能查詢分店會員卡積分的積分。
7. 問:為何在科脈啟謀商業管理系統里設置電子稱列印的標簽格式不對?
答:在編輯標簽後,保存時應注意保存到第幾號標簽,同時應設置電子稱使用該標簽,如果不是一致的就會導致列印格式不正確。
8.問:在前台銷售的商品時,為何有些商品不能夠打折?
答:(1)查看此收銀員是否有打折的許可權;
(2)在系統設置的前台POS機銷售設置的界面上是否設置了啟用前台指定商品不允許優惠控制功能,而這些不能打折的商品正好屬於不允許優惠商品。
9. 問:在科脈啟謀商業管理系統中,怎樣設置驗收入庫單列印商品數量、進價和進價金額?
答:在kmjxc.ini的配置設置裡面增加如下程序:在[app_env]下面增加「sheetprint_pi=prc1」保存設置即可。
10.問:安裝科脈瑞通商業管理系統單機版,在初始化時系統提示連接不到資料庫?
答:缺少SQLANYWHERE5.0資料庫,請到相關網站下載或聯系我公司技術支持部。
11.問:為何有些商品的電腦庫存是一個負很大的數據?
答:請查看商品出入庫報表,確認這些商品是否做過驗收入庫單,如果沒有;請做商品驗收入庫單。
12.問:在前台設置中用DIY—POS—LED8[單行串口數字]客顯啟動錢箱,錢箱為何打不開?
答:因為用客顯啟動與列印機啟動錢箱的指令不同,把原來開錢箱的指令改成「2,77」,然後設置好錢箱埠與客顯埠一致即可。
13.問:資料庫連接不上;運行科脈商業管理系統後出現連接資料庫的提示界面,進入了科脈系統?
答:(1)先檢查網路是否正常,再檢查SQL SERVER是否正常,可使用TELNET IP 1433命令來幫助分析。
(2)確認是資料庫被掛起(是否斷電的原因造成的)。
(3)如有備份,則可使用DB_SETUP重新裝載備份的資料庫文件即可恢復數據成功,所以必須要求客戶每日備份數據。
14.問:盈虧數量是怎樣得出來的,商品電腦庫存為負應怎樣解決?
答:(1)盈虧數量是電腦庫存與實盤數量之差的結果。
(2)商品的電腦庫存為負,應找出它為負的原因,如這個商品從來就沒有做過驗收入庫但前台又在銷售,它的庫存肯定為負,這時可以通過重新做驗收入庫或用其它單做入庫處理。
15.問:在科脈商業管理系統V2.0中儲值卡是怎樣充值的?
答:打開發放儲值卡的菜單,輸入要充值的卡號;按下充值管理輸入卡號、充值金額,然後按下充值鍵即可。
16.問:入庫單審核後在已審核單中未查到?
答:日期錯誤導致該單據被記錄在別的日期下面,在當天的記錄中當然找不到,請先檢查這方面的原因。
17.問:能否把前台銷售流水數據報表裡面的小計金額去掉?
答:可以,打開前台銷售流水數據報表上的設置鍵,打開報表屬性設置——明細設置,把小計金額後面的「X」去掉就可以了。
18.問:在前台銷售商品的數據跟後台商品數據對不上,如在前台銷售50個同一商品,為何在後台查看商品銷售時只有25個?
答:請在後台系統設置裡面是否啟用了萬能數據處理功能,如果啟用了此功能後台的數據隨著數據處理的百分比的改變而改變。
19.問:在一台機器上設置好的商品價格標簽列印的模塊可否在其它的機器上調用?
答:可以,將設置好的模塊保存後,在KMJXC的安裝目錄下的REPORT的LABELPRINT.PSR文件復制到另外一台機器上的REPORT文件下面。
20.問:在科脈瑞通商業管理系統中,在結算時因儲值卡上的金額不夠可否用另外一張儲值卡繼續結帳?
答:可以。在結算時儲值卡上的金額不夠系統會提示儲值卡付款多少錢,待付金額多少錢,此時再按下儲值卡鍵輸入卡號繼續付款。
21.問:科脈啟謀商業管理系統中的盤點過程是怎樣的?
答:首先完成綜合數據日結,其次做盤點初始化生成一個盤點批次號、盤點鎖庫、列印空盤點表、然後盤點單錄入、復盤單錄入(可選項)、生成盤點差異、生成漏盤商品、最後盤點審核。注意:在盤點過程還沒有完成之前不能做任何影響庫存的業務。
22.問:科脈啟謀商業管理系統中注冊後,提示注冊成功但是不能進入科脈系統?
答:此為伺服器資料庫工作不正常,非輸入序列號引起的錯誤,請重啟伺服器。
23.問:調進貨價單與庫存調價有何區別?
答:前者是調進價,後者是對以前某一次進貨剩餘的商品庫存進行調價。
24.問:營業間在後台查詢庫存能否用商品條碼來查詢商品的庫存?
答:可以,既可用商品編碼又可以用條碼查詢商品的庫存。
25.問:在分布式版中為何在總店做了零售特價單在分店不能實現?
答:(1)分店的倉庫編碼設置是否與總店設置分店的倉庫編碼一致,分店前台商品的出貨倉是否選擇本分店的倉庫編碼。
(2)查看商品零售特價單設置的有效時間。
26.問:能否把商品的特價信息用EXCEL的格式導出?
答:因為商品的特價信息不屬於商品的基本檔案,所以不能用EXCEL的格式導出,它只能列印出來。
27.問:會員特價單能否調出單據修改其中某些商品的特價信息,如某一商品的特價時間還未結束又將這商品做特價單,可以嗎?商品銷售又是按那個價格銷售的?
答:(1)不能調出已審核過的單據進行修改,因為審核過的單據是不能修改的。
(2)在規定商品特價時間還未結束時可以再將這個商品做特價,銷售是按新價格進行銷售的。
28.問:前台折扣報表為何會出現折扣金額為負?有的商品為何上午可以打折而到了下午卻不能打折?
答:(1)商品特價的金額高於商品原價金額時,前台折扣報表就會出現折扣金額為負。
(2)是否做了商品零售特價而又同時做了固定時間特價,而下午沒有折扣是因為特價的時間還未到。
29.問:驗收入庫單與贈品入庫單是否都跟供應商結算?
答:贈品入庫單只增加商品庫存的數量不用跟供應商結算,跟供應商結算的只是驗收入庫單。
30.問:為何在商品基本檔案用手工錄入8位的商品條碼在前台不能掃描,系統提示沒有此商品?
答:商品基本檔案手工錄入的8位條碼是否與掃描槍掃出來的8位條碼是否一致。如果不一致,請在商品基本檔案修改的條碼使它與掃描槍掃描出來的條碼一致。
31.問:盤點可否做其它影響庫存的業務?
答:在盤點過程還沒有結束時,不能做任何影響庫存的業務包括日結。
32.問:為何普通收銀員沒有前台設置許可權的都可以按F6鍵選擇商品的出貨倉?
答:收銀員無論有無前台設置許可權的都可以按F6鍵選擇商品的出貨倉,是沒有限制的。
33.問:為何在客流量大時前台鍵盤、條碼槍停止響應?
答:這應從硬體方面考慮機箱散熱的問題,可以打開主板BIOS中的溫度保護、增加內存;也可以在科脈商業管理系統中清空部分歷史數據(註:在清空前先備份數據)
34.問:加密狗站點升級不成功?運行加密狗升級程序出錯,報「當前使用非法,程序將關閉」?
答:系統未找到加密狗或加密狗驅動未安裝,導致許可證管理程序找不到介面出錯,安裝加密狗驅動應可正常。
35.問:在前台完成了盤點數據的錄入,但查詢庫存為「0」?
答:雖然完成了盤點數據錄入,但未進行數據處理,須將前台盤點數據文件拷貝到後台,並在盤點錄入單中導入數據,前台盤點數據默認保存在安裝目錄下的POSDATE中且帶有日期的格式文件;按下盤點單上的編輯鍵導入「盤點數據」即可,然後保存審核才能生效。
36.問:在科脈啟謀商業管理體系統中盤點時有些為負庫存的商品未點數,可否更正這些商品的庫存數量。
答:可以,通過列印漏盤商品報表來確認未盤商品及其數量,然後通過再次盤點錄入或其它單來作入庫調整。
37.問:列印機沒有錢箱介面,用川田的VFD8CV客顯可否打開錢箱?
答:可以,將客顯接在相應埠並連接好錢箱,在軟體中設置錢箱埠與客顯相同,並將開錢箱的指令修改為「31,77」即可。(註:本指令只能打開12V的錢箱)
38.問:會員特價按折扣的如何設置?會員特價單中如何讓電腦自動按一定折扣生成特價?
答:(1)在會員卡類別是定義折扣卡,可定出如8折或9折的卡類別。
(2)可以實現此功能,在系統設置中定義「會員特價率」,則系統在製作會員特價單時將自動按進價、售價、會員特價率自動計算會員特價。
39.問:分布式分店初始化不了,在分店使用數據通信中的初始化時,軟體提示沒有設置傳輸許可權?
答:由於在分店先安裝了一套網路版並使用進入了軟體,然後又只是安裝了軟體分布式客戶端,然後再使用數據通信中的初始化,此時軟體肯定提示說沒有傳輸許可權,因為此時在此店的資料庫中本店倉庫代碼是00(即網路版默認倉庫),但00是總店的倉庫代碼,肯定不在總店的傳輸許可權設置中,所以撥號後傳輸初始化時出現此提示。解決方法:重新安裝分店的資料庫,則運行程序後會提示輸入分店名稱和代碼,則輸入後初始化即可。
40.問:在科脈啟謀商業管理系統分布式版中,在總店做分店的入庫單後在總店查商品庫存匯總報表(倉庫)和在分店查的商品匯總報表(倉庫)對不上?
答:請檢查總店與分店驗收單據的數量,如果對不上,請在分店重新下載數據或下載全部數據;也可以利用數據通信輔助處理功能把某些還未傳下分店的單據傳到分店。
41.問:在科脈啟謀商業管理系統中,在商品基本檔案中,如果當前已有一個商品的資料,且該商品有類別和供應商,點新增按鈕後程序不能提供商品的供應商和類別,以前的程序是可以的?
答:以前的程序的確可以。但考慮到商品的供應商會對業務產生影響,包括進貨和進銷存結余等會與結算產生關系,為了不對各種報表及結算數據造成很大的錯誤影響,程序不再默認採用原來的商品的供應商,而要求錄入員手工輸入。
42.問:在科脈啟謀商業管理系統中,為何前台班結後收銀員班結報表上的金額比實際收銀金額少很多?
答:因為經常退出收銀系統或重新啟動計算機造成的原因,這種情況下班結時系統只當前的收銀記錄做班結而沒有對以前曾退出收銀系統或重新啟動計算機後重新進入收銀系統做記錄,所以班結後的報表會比實際收銀員的報表上有金額少。
43.問:列印商品資料時內容太多,有些東西是不想列印的;浪費紙。
答:可以在瀏覽界面中通過拖動標題欄來屏蔽一些不要的列。
44.問:要列印某供應商的商品,但太多供應商了很麻煩?
答:可以在供應商商品瀏覽列印,這樣可以只列印一個供應商所供應的商品。
45.問:商品進價經常變化,但又不能定死;能不能監控價格變化?
答:在采購入庫報表中可以查看每個商品的入庫歷史、價格。
46.問:商品進貨時進價過度,銷售一段時間後供應商同意將未銷售的部分商品降低供貨價,在科脈商業管理系統V3.0中如何處理?
答:(1)常規方法是採用「空退空進」的方式來解決,即先用原來的進價將剩餘部分退貨出去,然後再用新的進價做入庫,可以達到目的,但此部分商品的帳期會順延。
(2)採用「庫存調價單」也可以達到目的,即將上次或歷次進貨的部分或全部商品的進價作出調整。
47.問:在科脈啟謀商業管理系統中能否提供一套比較正確的影響成本的單據方法?
答:一般來說,只要是非銷售的、出入庫且不以成本價出入庫的單據就要影響成本。這些業務建議影響成本:贈送入庫單、庫存調價單、庫存更正單、其它單、盤點審批單、驗收入庫單、銷售退貨單、采購退貨單。另外,還有些單據如果企業內部規則不以成本價計的也要讓其影響成本,如:報損單、領用單、各種調撥單等『柒』 資料庫怎麼連接
import java.sql.*;
public class JDBCTest {
public static void main(String[] args){
// 驅動程序名 String driver = "com.mysql.jdbc.Driver";
// URL指向要訪問的資料庫名scutcs String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
// MySQL配置時的用戶名 String user = "root"; // MySQL配置時的密碼 String password = "root";
try { // 載入驅動程序 Class.forName(driver);
// 連續資料庫 Connection conn = DriverManager.getConnection(url, user, password);
這是Java 鏈接MYSQL資料庫的『捌』 鏈接資料庫有哪些方法
常見的資料庫連接方法如下:
一、連接Access資料庫
1. 使用已有DSN的連接字元串進行連接(ODBC);
2.使用無DSN的連接字元串進行連接(ODBC);
3.使用連接字元串進行連接(OLEDB);
4.使用UDL文件進行連接;
使用UDL文件連接數據源的步驟如下:
(1)新建一個記事本,其擴展名為.udl。
(2)雙擊該UDL文件,彈出「數據連接屬性」對話框。
(3)該對話框首頁顯示「提供程序」選項卡,選擇要使用的OLEDB提供程序。
(4)單擊「下一步」,顯示"l連接「選項卡」,設置好正確的參數後,單擊「測試連接」
二、連接MySQL資料庫
1.使用已有DSN的連接字元串進行連接;
2.使用無DSN的連接字元串進行連接;
三、連接Oracle資料庫
1.使用Oracle.NET Data Provider(需要安裝Oracle客戶端)
2.使用ODBC.NET Data Provider
3.使用OLE DB.NET Data Provider
『玖』 資料庫連接方式有哪些
在基於微軟IIS/PWS的網路平台上,通過伺服器端運行的ASP程序來訪問後台資料庫,是一種最常見的模式了。而對於小型的資料庫應用需求,微軟的Access資料庫,應該是與ASP程序配套使用的首選。由於Access資料庫的ODBC驅動程序支持的SQL指令全,執行效率高,所以Access後台資料庫+ASP伺服器端程序+客戶端IE瀏覽器,是一個精練實用高效的組合模式。
在這種使用模式中,ASP程序無疑是最重要的,是溝通客戶端和後台資料庫之間的橋梁。在ASP程序中,通過VB Script,建立對Access資料庫的連接,是客戶能夠訪問後台資料庫的前提。
一、建立Access資料庫連接的常用方法
在ASP中建立對Access資料庫連接的一般格式如下:
<%
DbPath=Server.MapPath(資料庫名)
Set Conn=Server.CreatObject(「ADODB.Connection」)
Conn.Open 「driver=;dbq=」& DbPath
Set rs=Server.CreatObject(「ADODB.Recordset」)
Rs.Open 數據表名或SQL指令,Connection對象,Recordset類型,鎖定類型
… …
%>
它的各步驟及參數意義如下:
第一行程序:利用Server對象的MapPath函數,取得要打開資料庫的完整的文件路徑,並存儲在變數DbPath中。這其中,資料庫名是我們需要指定的參數,應該用我們要打開的資料庫的實際名稱替代。如果資料庫名是直接作為常量出現,要用引號將其括起來,並且不能丟掉擴展名。例如資料庫是Test.mdb,則該行程序成為:DbPath=Server.MapPath(「Test.mdb」)。
第二行程序:建立一個ADO對象集中的Connection對象,也即連接對象。這是建立資料庫連接的初始步驟。執行這行程序後,Conn成為一個連接對象。
第三行程序:利用連接對象Conn的Open方法打開一個指定的資料庫。因為我們要打開的是Access資料庫,所以要指定ODBC驅動程序參數,表示要透過Access的ODBC驅動程序來訪問資料庫:driver=;。另一個參數dbq= & DbPath,運算後等效於dbq=Server.MapPath(資料庫名) ,是利用了第一行的Server.MapPath(資料庫名)函數,用來指定要打開的資料庫文件。到這里,就已經打開了資料庫名指定的資料庫。如果資料庫名是「test.mdb」,則打開Access資料庫Test.mdb。在這一行里指定的參數,要嚴格按照格式原樣寫出,不能省略或改動,也沒有可變參數。
第四行程序:建立一個ADO對象集中的Recordset對象,以便利用Recordset對象操作資料庫(當然,這只是對資料庫操作的多種方式之一)。執行這行後,rs就成為一個Recordset對象。
第五行程序:利用rs對象的Open方法打開資料庫中的數據表。這其中有四個參數,其意義如下:
數據表名或SQL指令串:在這個參數里指定要打開的資料庫內的數據表名稱,或者是用SQL的Select指令串確定的數據表的指定范圍數據,例如,資料庫Test.mdb中有數據表Number,則該參數成為「Number」,注意引號不能丟;若想打開數據表Number中xh欄位值小於90的數據記錄,則該參數可能成為如下的形式:
「Select * From Number Where xh < 90」。
Connection對象:指定已經打開的資料庫的Connection對象,在這里固定是Conn,注意無須引號的。
Recordset類型:表示打開數據表的方式,有四種選擇。數字0表示只讀方式,且當前記錄只能下移;數字1表示可讀寫方式,當前記錄可自由上下移動,但不能及時看到別的用戶建立的新記錄,除非重新啟動;數字2表示可讀寫方式,當前記錄可自由移動,而且可以及時看到別的用戶增加的新記錄;數字3表示只讀方式,但當前記錄可以自由移動。一般選擇2為好,除非為了禁止數據被修改。
鎖定類型:這個參數指定資料庫的鎖定功能。因為網路上的資料庫都是多用戶的,很可能同時有多個用戶在操作資料庫。為了避免錯誤,讓同一時間只可能有一個用戶修改數據,就要用鎖定功能。有四種選擇:數字1表示只讀方式鎖定,用戶不能更改數據;數字2表示悲觀鎖定,當一個用戶用rs對象開始修改數據時就鎖定資料庫,直到用戶用rs.Update更新記錄後,才解除鎖定;數字3表示樂觀鎖定,只有在數據寫入資料庫中時候才鎖定,不保險,慎用!數字4表示批次樂觀鎖定,只有在使用rs.UpdateBatch成批更新數據時候才鎖定數據記錄。屬於很少使用的。一般地,使用悲觀鎖定比較安全,但是效率要低些。
二、使用Recordset對象操作數據
用上面的方法打開資料庫,是利用了Recordset對象建立的資料庫連接,然後的對數據操作,也要使用該對象。
用rs.open 「數據表名」,Conn,2,2 方式打開數據表,就可以方便的對數據進行操作:
常見的操作對象:
rs.addnew :添加一個新記錄在數據表末尾。
rs.delete :刪除當前記錄。
rs.eof :判斷是否已過最後記錄。
rs.bof :判斷是否移過首記錄。
rs.update :數據修改生效。
rs(「欄位名」):當前記錄指定欄位的值。
從數據表中提取數據:用x=rs(「欄位名」)的格式,提取數據表中當前記錄指定欄位的值。
向數據表中填入或修改數據:用rs(「欄位名」)=數據值或變數的方式,修改當前記錄指定欄位的值。
三、使用SQL指令操作資料庫
在使用SQL指令對資料庫進行操作時,要用如下方式打開資料庫和操作:
<%
DbPath=Server.MapPath(資料庫名)
Set Conn=Server.CreatObject(「ADODB.Connection」)
Conn.Open 「driver=;dbq=」& DbPath
Sql=操作資料庫的指令串
Conn.Execute sql
… …
%>
四、使用DSN連接資料庫
在以上連接資料庫的方式中,都是在程序中指定資料庫,指定ODBC驅動程序。如果數據源有變化,就需要修改程序。如果在系統級別上,預先定義好數據源DSN,就可以避免這個麻煩。
在定義DSN的過程中,就已經指定好了數據源需要的ODBC驅動程序,也指定好了資料庫文件的實際路徑和名字,我們在程序中,只需要引用預先定義的數據源名DSN即可。
設定義好的DSN為test,則打開資料庫的方式為:
五、結束語
在ASP程序中,建立資料庫的連接和訪問資料庫,有很多方式和技術細節,在此難以一一詳述。實際上,對SQL Server資料庫,DBF資料庫,文本文件,電子表格文件等,也都可以很方便的打開和訪問,與對Access資料庫的訪問大同小異而已。如果說方便,Access應該是首選。如果考慮安全保密性,SQL資料庫更好些。使用系統數據源DSN的方式建立對資料庫的連接,具有更大的靈活性,也更簡便些。