新聞中心
隨著互聯(lián)網(wǎng)技術的不斷發(fā)展,越來越多的應用程序需要連接遠程數(shù)據(jù)庫來獲取數(shù)據(jù),以便滿足用戶的需求。ADO(ActiveX Data Objects)是一種面向對象的數(shù)據(jù)庫連接技術,可以用來連接各種類型的數(shù)據(jù)庫。本文將介紹利用ADO實現(xiàn)遠程數(shù)據(jù)庫連接的技巧。

成都創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都做網(wǎng)站、網(wǎng)站設計、外貿營銷網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元烏爾禾做網(wǎng)站,已為上家服務,為烏爾禾各地企業(yè)和個人服務,聯(lián)系電話:13518219792
一、安裝ADO
在使用ADO之前,需要先安裝ADO。ADO是一個Microsoft Windows組件,通常安裝在系統(tǒng)的“C:\Program Files\Common Files\System\ado”目錄下。如果系統(tǒng)中沒有ADO,可以在Microsoft官網(wǎng)下載并手動安裝。
二、連接遠程數(shù)據(jù)庫
在ADO中,需要使用Connection對象來連接數(shù)據(jù)庫,使用Recordset對象來獲取和處理數(shù)據(jù)。
連接遠程數(shù)據(jù)庫的基本格式:
“`
Set conn = Server.CreateObject(“ADODB.Connection”)
conn.Open “Provider=SQLOLEDB; Data Source=RemoteServerName; Initial Catalog=DatabaseName; User Id=UserName; Password=Password;”
“`
其中,RemoteServerName是遠程服務器名,DatabaseName是要連接的數(shù)據(jù)庫名,UserName和Password是連接遠程數(shù)據(jù)庫所需的用戶名和密碼。
需要注意的是,如果遠程數(shù)據(jù)庫使用的是SQL Server,需要將Provider設置為SQLOLEDB。如果使用的是Access數(shù)據(jù)庫,則將Provider設置為Microsoft.Jet.OLEDB.4.0。
三、處理遠程數(shù)據(jù)
連接上遠程數(shù)據(jù)庫后,就可以使用Recordset對象來獲取和處理數(shù)據(jù)了。Recordset對象是ADO中的一個重要對象,用于存儲從數(shù)據(jù)庫中讀取的數(shù)據(jù)。
從遠程數(shù)據(jù)庫中獲取數(shù)據(jù)的基本格式:
“`
Set rs = Server.CreateObject(“ADODB.Recordset”)
rs.Open “SELECT * FROM TableName”, conn
“`
其中,TableName是要查詢的表名,conn是連接遠程數(shù)據(jù)庫所使用的Connection對象。
有時候需要使用參數(shù)進行查詢,例如查詢一個指定ID的記錄:
“`
Set cmd = Server.CreateObject(“ADODB.Command”)
cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = “SELECT * FROM TableName WHERE ID = ?”
Set param = cmd.CreateParameter(“ID”, adInteger, adParamInput)
param.Value = 123
cmd.Parameters.Append param
Set rs = cmd.Execute
“`
其中,adCmdText是CommandType屬性的一個值,表示要執(zhí)行的SQL語句類型為文本;adInteger是數(shù)據(jù)類型,表示參數(shù)的數(shù)據(jù)類型為整數(shù);adParamInput是參數(shù)類型,表示參數(shù)是輸入?yún)?shù)。在上面的例子中,將參數(shù)ID的值設置為123,然后執(zhí)行查詢。
四、關閉數(shù)據(jù)庫連接
在使用完連接對象和記錄集對象之后,需要優(yōu)化代碼并關閉數(shù)據(jù)庫連接,以釋放系統(tǒng)資源:
“`
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
“`
五、使用Try Catch處理異常
在實際開發(fā)中,有時候會出現(xiàn)連接遠程數(shù)據(jù)庫失敗的情況。為了使程序更加健壯,建議使用Try Catch語句處理異常。
“`
On Error Resume Next
Set conn = Server.CreateObject(“ADODB.Connection”)
conn.Open “Provider=SQLOLEDB; Data Source=RemoteServerName; Initial Catalog=DatabaseName; User Id=UserName; Password=Password;”
If Err.Number 0 Then
Response.Write “連接遠程數(shù)據(jù)庫出錯!”
Else
Response.Write “連接遠程數(shù)據(jù)庫成功!”
End If
Err.Clear
On Error Goto 0
“`
在上面的例子中,使用On Error Resume Next語句將錯誤處理方式設置為繼續(xù)執(zhí)行代碼,并不中斷程序。如果連接遠程數(shù)據(jù)庫失敗,則通過Err.Number獲取錯誤代碼,然后清除錯誤信息,將錯誤處理方式恢復為默認值,使程序可以繼續(xù)運行下去。
【注意事項】
1.在連接數(shù)據(jù)庫的過程中,需要保證用戶名和密碼的正確性,否則會出現(xiàn)連接失敗的情況。
2.在使用完連接對象和記錄集對象之后,需要關閉服務器上的數(shù)據(jù)庫連接。
3.為了使程序更加健壯,建議使用Try Catch語句處理異常。
4.為了提高程序的可讀性和可維護性,建議使用函數(shù)和變量來封裝數(shù)據(jù)庫連接代碼。
利用ADO實現(xiàn)遠程數(shù)據(jù)庫連接是非常重要的技能,在實際開發(fā)中經(jīng)常遇到。本文介紹了利用ADO連接遠程數(shù)據(jù)庫的技巧,包括連接遠程數(shù)據(jù)庫、處理遠程數(shù)據(jù)、關閉數(shù)據(jù)庫連接和使用Try Catch處理異常等方面。熟練運用這些技巧,可以大大提高開發(fā)效率,提高代碼質量。
相關問題拓展閱讀:
- VB用ADO連接遠程ACCESS數(shù)據(jù)庫,怎么在VB里面設置遠程機器的賬號密碼,遠程放ACCESS文件的文件夾已共享
- vb用ado控件連接數(shù)據(jù)庫
- 用ADO怎么連接Access數(shù)據(jù)庫?
VB用ADO連接遠程ACCESS數(shù)據(jù)庫,怎么在VB里面設置遠程機器的賬號密碼,遠程放ACCESS文件的文件夾已共享
Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\” & _
遠程計埋悄陸算機名 & “\共運帆享彎頃文件夾名\數(shù)據(jù)庫文件名.mdb;Persist Security Info=False”
OK啦!
不需要在連接字符串中設置遠程機器的賬戶密碼。但是你這臺電腦要訪螞羨問一下遠程電腦,只要一次訪問成塌就可以了。團物信
要訪問一下遠程電腦,只要一次訪問成功就可以了。
sdfgsdf
vb用ado控件連接數(shù)據(jù)庫
vb用ado控件缺舉連接數(shù)據(jù)庫分為兩種情況,一個是Access數(shù)據(jù)庫,一個是SQL server數(shù)據(jù)庫。
1)敏頌Access數(shù)據(jù)庫的代碼是
2)SQL server數(shù)據(jù)庫的代碼是
正確添加了ADO控件后,設置ADO控件的Connectionstring屬性,它指出了ADO控件和數(shù)據(jù)早梁信庫連接的字符串,打開這個屬性的渣鎮(zhèn)屬性頁,可以通過三種方式設置連接方式,常設置為OLEDB方式:
Connectionstring=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=你的數(shù)據(jù)庫路徑”
然后設置RecordSource屬性指出可以操作的數(shù)據(jù)庫的來源(即結果字符串,可以是陸輪SQL查詢產(chǎn)生的).
在設置好后,可以用文本框(textbox)等綁定數(shù)據(jù)表中的字段進行顯示.
用ADO怎么連接Access數(shù)據(jù)庫?
要自己創(chuàng)建這個類(關于握穗喚ADO的類)
可以參考如下代碼族大:
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance(“ADODB.Connection”);
_bstr_t strConnect=”uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=AddressBook.mdb;”;//這段就是段凱連接Access數(shù)據(jù)庫
m_pConnection->Open(strConnect,””,””,adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_pRecordset;
}
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
_variant_t RecordsAffected;
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
e.Description();
return false;
}
}
void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
}
步驟如下:
一、用有源ODBC DSN的方法和無源OLE DB的方法連接數(shù)據(jù)庫:
1、無源OLE DB:
string strConn=”Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=intels.mdb” ;
2、有源臘敬ODBC DSN:
string strConn=”Data Source=intels”;
如果采用ADO.NET連接SQL Server或者Oracle,方法和VB中連尺搏接相應數(shù)據(jù)陵局祥的連接字符串一致。
二、開始連接數(shù)據(jù)庫:
ADOConnection Conn = new ADOConnection(strConn);
三、執(zhí)行一個select SQL 查詢:
string strSQL = “Select id from test” ;
ADOCommand ADOCmd=new ADOCommand(conn,Conn);
Conn.Open();
ADODataReader reader;
ADOCmd.Execute(out reader);
四、得到ADODataReader中包含的數(shù)據(jù):
先執(zhí)行:
reader.Read();
然后就可以取得數(shù)值:
reader.ToString();
依次類推。
五、delete(刪除)語句,insert和update相同:
strSQL=”delete from test where id=’1’”;
//strSQL=”insert into test values(’1’)”;
//strSQL=”update test set id=’1’”;
ADOCommand ADOCmd=new ADOCommand(conn,Conn);
Conn.Open();
ADOCmd.Execute();
_ConnectionPtr m_pConnection;
CoInitialize(NULL);
m_pConnection.CreateInstance(__uuidof(Connection));
// 在ADO操作中建議語句中要常用try…catch()來捕獲錯誤信息,
// 因為它有時會經(jīng)常出現(xiàn)一些想耐灶不到的錯誤。
try
{
// 打開本地Access庫db1.mdb
m_pConnection->Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb”,””,””,adModeUnknown);
}
catch(_com_error e)
{
coutOpen(“SELECT * FROM Home2”,
m_pConnection.GetInterfacePtr(), // 獲取庫接庫的IDispatch指針
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
//AfxMessageBox(e->ErrorMessage());
coutErrorMessage()BOF)
m_pRecordset->MoveFirst();
else
{
coutadoEOF)
{
var = m_pRecordset->GetCollect(“ID”);
if(var.vt != VT_NULL)
strID= _com_util::ConvertBSTRToString((_bstr_t)var); //_variant_t轉字遲畝旦符串
var = m_pRecordset->GetCollect(“X”);
if(var.vt != VT_NULL)
strX=_com_util::ConvertBSTRToString((_bstr_t)var);
var = m_pRecordset->GetCollect(“Y”);
if(var.vt != VT_NULL)
strY=_com_util::ConvertBSTRToString((_bstr_t)var);
coutMoveNext();
}
}
catch(_com_error *e)
{
coutErrorMessage()Close();
m_pRecordset = NULL;
//–
//關閉數(shù)據(jù)庫連接
//–
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
CSize本身屬于無量綱的單帶則位,不存在換算問題。
你上面獲得的Size,本身單位就是像素。
不過CreateFont函數(shù)本身w并不能精確控制知行塌創(chuàng)建的字體,頂多創(chuàng)建一個接近你的要求的字體。
如果你的搭圓字體比例太奇怪,CreateFont是做不到和你要求一樣的。
關于ado 連接遠程數(shù)據(jù)庫連接的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(lián)服務器托管擁有成都T3+級標準機房資源,具備完善的安防設施、三線及BGP網(wǎng)絡接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務器托管業(yè)務安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。
新聞標題:利用ADO實現(xiàn)遠程數(shù)據(jù)庫連接技巧(ado連接遠程數(shù)據(jù)庫連接)
標題URL:http://fisionsoft.com.cn/article/djedpjh.html


咨詢
建站咨詢
