ADO 记录集
ADO Recordset(记录集)
如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。
创建一个 ADO 表记录集(ADO Table Recordset)
在 ADO 数据库连接创建之后,如上一章所述,接下来就可以建立一个 ADO 记录集了。
假设我们有一个名为 “Northwind” 的数据库,我们可以通过下面的代码访问数据库中的 “Customers” 表:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Customers", conn
%>
创建一个 ADO SQL 记录集 (ADO SQL Recordset)
我们也可使用 SQL 访问 “Customers” 表中的数据:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select \* from Customers", conn
%>
从记录集中提取数据
在记录集被打开后,我们可以从记录集中提取数据。
假设我们用一个名为 “Northwind” 的数据库,我们可以通过下面的代码访问数据库中 “Customers” 表:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
for each x in rs.fields
response.write(x.name)
response.write(" = ")
response.write(x.value)
next
%>
如何遍历 ADO 记录集?
下面这个问题是网上看到的,很多人可能也会遇到;
try {
m_precordset->Open(_variant_t("data_shebei"),_variant_t((IDispatch*)conptr,true),adOpenKeyset,adLockOptimistic,adCmdTable);
while(!m_precordset->GetadoEOF()) {
FieldsPtr fds=m_precordset->GetFields();
int n = fds->GetCount();
int c;
CString ad;
for(int i=0;i<n;i++) {
FieldPtr fd=fds->GetItem(_variant_t(short(i)));
ad=(LPCTSTR)fd->GetName();
}
m_precordset->MoveNext();
}
} catch (_com_error &e){
}
出现的问题是 ad 中只显示同一的字段名,如何进行遍历
解决的办法:(LPCTSTR)(_bstr_t) 强制转换解决了