『壹』 請問資料庫連接的3種方法有哪3種啊
1、運行資料庫DSN
WinCC內部變數:@DatasourceNameRT,如:CC_MyTest_06_04_08_09_05_14R
2、普通連接的ConnectionString
(1)連接運行資料庫
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CC_MyTest_06_04_08_09_05_14R;Data Source=.\WINCC"
(2)連接其它資料庫,如:Northwind
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=.\WINCC"
註:普通連接方式下,所有標準的SQL語句都可以使用。
3、歸檔資料庫的ConnectionString
strSQL="Provider=WinCCOLEDBProvider.1;Catalog=CC_MyTest_06_04_08_09_05_14R;Data Source=.\WinCC"
在此連接方式下,只能用WinCCOLEDBProvider提供的方法訪問歸檔資料庫:
(1)單個歸檔變數查詢:(2)多個歸檔變數查詢:
『貳』 資料庫連接方式有哪些
在基於微軟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的方式建立對資料庫的連接,具有更大的靈活性,也更簡便些。
『叄』 資料庫與伺服器連接的三種方式
SQL SERVER連接oracle資料庫幾種方法
--1 方式
--查詢oracle資料庫中的表
SELECT *
FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;User ID=DAIMIN;Password=DAIMIN'
)..DAIMIN.JOBS
--在sqlserver中創建與oracle資料庫中的表同名的表
select * into JOBS from
OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;User
ID=daimin;Password=daimin'
)..DAIMIN.JOBS
select * from JOBS
--2、方式
--在master資料庫中查看已經存在的鏈接伺服器
select * from sysservers
EXEC sp_addlinkedserver
@server = 'GE160',
@srvproct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'GE160'
exec sp_addlinkedsrvlogin 'GE160', false, 'sa', 'daimin', 'daimin'
--要在企業管理器內指定登錄帳號
exec sp_dropserver GE160
select * from GE160..DAIMIN.JOBS
delete from GE160..DAIMIN.JOBS
--備註:引用ORACLE伺服器上的表時,用戶名稱與表名一定要大寫字母。
SELECT *
FROM OPENQUERY(GE160, 'SELECT * FROM DAIMIN.JOBS')
--3、方式
SELECT a.*
FROM OPENROWSET('MSDAORA',
'GE160';'DAIMIN';'DAIMIN',
DAIMIN.JOBS) AS a
ORDER BY a.JOB_ID
--4、方式 ODBC
--ODBC方式比較好辦
SELECT A.*
FROM
OPENROWSET('MSDAORA','GE160';'DAIMIN';'DAIMIN', --GE160是數據源名
DAIMIN.JOBS) AS
A
ORDER BY A.JOB_ID