ado資料庫語句
和樓主共同學習一下,對1樓朋友的回答有點疑問,
不打開鏈接可以執行語句嗎?不會報錯嗎?conn.Open();漏了是不?
而且cmd那裡可以簡化一下吧,直接Sqlcommand cmd=conn.CreatCommand();就行了唄,
也不用再定義一個整型變數吧?直接cmd.ExecuteNonQuery();語句就可以執行了啊。
為什麼要這樣寫呢?是因為執行效率高嗎?俺是自學的,不太懂,呵呵。
而且SQL插入語句時,不用列舉欄位吧,直接把VALUES()的值插進去就行了啊。我一直都是這么乾的。
❷ 如何用ADO連接各種資料庫的代碼
如何用ADO連接各種資料庫的代碼:
簡單介紹一下幾種ADO連接方式:ODBC DSN,ODBC DSN-Less,
OLE DB Provider,和"MS Remote" Provider.
1。ODBC DSN連接
I.DSN
oConn.Open "DSN=AdvWorks;" & _
"UID=Admin;" & _
"PWD=;"
注意:從MDAC2.1開始就不能夠在使用這樣的方式了,就是只把DSN文件名放在ConnectString中
你必須同時使用DSN,UID,PWD標志。例如下面的方式在MDAC 2.1中將會出錯:
oConn.Open "AdvWorks"
II.File DSN
oConn.Open "FILEDSN=\somepath\mydb.dsn;" & _
"UID=Admin;" & _
"PWD=;"
III.ODBC DSN-Less Connections
a)ODBC Text Driver
oConn.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=\somepath\;" & _
"Extensions=asc,csv,tab,txt;" & _
"Persist Security Info=False"
注意:需要在SQL語句中指定使用到的文件名。例如:
oRs.Open "Select * From customer.csv", _
oConn, adOpenStatic, adLockReadOnly, adCmdText
b)ODBC Driver for Access
i)普通安全模式:
oConn.Open _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"Uid=Admin;" & _
"Pwd=;"
ii)如果使用了System database:
oConn.Open _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"SystemDB=\somepath\mydb.mdw;", _
"admin", ""
c)ODBC Driver for SQL Server
i)普通安全模式
oConn.Open "Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=sa;" & _
"Pwd=;"
ii)使用信任安全模式:
oConn.Open "Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=;" & _
"Pwd=;"
注意:要使用空白的Uid和Pwdd)ODBC Driver for Oracle
i)使用現有的Oracle ODBC Driver from Microsoft:
oConn.Open _
"Driver={Microsoft ODBC for Oracle};" & _
"Server=OracleServer.world;" & _
"Uid=demo;" & _
"Pwd=demo;"
ii)使用老版本的Oracle ODBC Driver from Microsoft:
oConn.Open _
"Driver={Microsoft ODBC Driver for Oracle};" & _
"ConnectString=OracleServer.world;" & _
"Uid=demo;" & _
"Pwd=demo;"
IIII)使用微軟的OLE DB Data Link Connections方式Data Link File (UDL)
a)使用絕對路徑
oConn.Open "File Name=\somepath\pubs.udl;"
b)使用相對路徑
oConn.Open "File Name=pubs.udl;"
V)OLE DB Provider Connections方式
a)OLE DB Provider for ODBC Databases
i)Access (Jet):
oConn.Open _
"Provider=MSDASQL;" & _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"Uid=Admin;" & _
"Pwd=;"
ii)SQL Server:
oConn.Open _
"Provider=MSDASQL;" & _
"Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=sa;" & _
"Pwd=;"
b)OLE DB Provider for Microsoft Jet (Access)
i)普通安全模式:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"User Id=admin;" & _
"Password=;"
ii)如果使用了System database:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"Jet OLEDB:System Database=system.mdw;", _
"admin", ""
注意:當使用OLE DB Provider4.0版本是,需要把MDB和MDW文件轉換成4.0的資料庫格式
iii)如果MDB需要一個資料庫密碼的話:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"Jet OLEDB:Database Password=MyDbPassword;", _
"admin", ""
c)OLE DB Provider for Excel Spreadsheet:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\expenses.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
注意: "HDR=Yes"表示在第一行中是行標題,在provider中將不把第一行包括入recordset中
d)OLE DB Provider for SQL Server
i)普通安全模式:
oConn.Open "Provider=sqloledb;" & _
"Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"User Id=sa;" & _
"Password=;"
ii)使用信任安全模式:
oConn.Open "Provider=sqloledb;" & _
Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"Trusted_Connection=yes;"
注意:"Network Library=DBMSSOCN"聲明OLE DB使用TCP/IP替代Named Pipes.
e)OLE DB Provider for Oracle
oConn.Open "Provider=msra;" & _
"Data Source=OracleServer.world;" & _
"User Id=sa;" & _
"Password=;"
(VI)Remote OLE DB Provider Connections方式(就是我一直在研究的RDS方式哦,呵呵。):
a)MS Remote - Access (Jet)
i)ODBC DSN:
oConn.Open "Remote Server=http://carl2;" & _
"Remote Provider=MSDASQL;" & _
"DSN=AdvWorks;" & _
"Uid=admin" & _
"Pwd=;"
ii)OLE DB Provider:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;", _
"admin", ""
iii)OLE DB Provider自定義事務對象
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Handler=MSDFMAP.Handler;" & _
"Data Source=MyAdvworksOLEDBConnectTag;"
b)MS Remote - SQL Server
i)ODBC DSN:
oConn.Open "Remote Server=http://carl2;" & _
"Remote Provider=MSDASQL;" & _
"Network Library=DBMSSOCN;" & _
"DSN=Pubs;" & _
"Uid=sa" & _
"Pwd=;"
ii)OLE DB Provider
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Remote Provider=SQLOLEDB;" & _
"Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"User ID=sa;" & _
"Password=;"
❸ ADO+MFC資料庫編程時,修改記錄和插入記錄的代碼各條語句的意思
1. // 這個Open函數的第二個參數為什麼和
答:你這里不都是一樣的嗎?
2.m_pRecordset->AddNew(); //為什麼要這一句呢?是提示程序要添加新的記錄了嗎?
答:不是提示,這個是讓表添加一個新行。
3.m_pRecordset->PutCollect("name", _variant_t(m_Name)); // 這里的PutCollect函數的作用是什麼?
答:put 放入的意思。這里是把m_Name值放入表中的name欄位中。
4.m_pRecordset->MoveFirst(); // 這一句和下面的Move有什麼作用??
答:m_pRecordset表示記錄集。MoveFirst移動指針到記錄集中的第一行。
Move(cursel);移動到cursel)行。
5.m_pRecordset->PutCollect("age", atol(m_Age)); //為什麼這里的強制轉換是用atol,而不是用上面的_variant_t ???
答:因為在表中聲明的age是long類型。放入數據時類型要一致。