_RecordsetPtr m_pRecordset("adodb.recordset");
m_pRecordset = m_pConnection->OpenSchema(adSchemaTables);
while(!m_pRecordset->endoffile)
.....程序报错,说'endoffile' : is not a member of '_Recordset'晕 怎么回事 该怎么处理
m_pRecordset = m_pConnection->OpenSchema(adSchemaTables);
while(!m_pRecordset->endoffile)
.....程序报错,说'endoffile' : is not a member of '_Recordset'晕 怎么回事 该怎么处理
解决方案 »
- 三维的连续平滑处理
- *argv[]作为函数的参数,如何调用该函数。
- shellexecute 关闭
- 来者有分,要做一个基于USB接口的数据采集系统设计,请高手指点
- CTreeCtrl 显示图表为空白(无法正常显示图标)怎么回事?
- 将一个字符串按网络字节顺序,以socket字符流方式发送,怎么实现?
- Agilent的串口通讯不上,有用过的大侠没有?
- 请问怎么把txt文件放进资源中?
- 请教大虾:调用多个线程,彼此间没有交集,就是运算量大,若不延迟1s以上就会出错
- GetDisplayMode出错(dx)
- Case-translation convention是什么意思啊?
- VC6.0中 怎么样调用windows计数器?
这个忘了说了
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","EndOfFile")
在StdAfx.h中,加入如下代码
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")while(!m_pRecordset->->adoEOF)
http://blog.csdn.net/handsomerun/archive/2006/08/12/1055311.aspx
#这个我是添加的,只是还是不认识.
还有就是,我想要读取的是用户表的表名,while(!m_pRecordset->->adoEOF)是双箭头?
应该是单箭头
rename("EOF","EndOfFile")
rename("EOF","adoEOF")
就是把EOF用后者代替,防止冲突
你前面写的
_RecordsetPtr pRstSchemaTable("ADODB.Recordset");
pRstSchemaTable=m_pConn->OpenSchema(adSchemaTables);
while(!pRstSchemaTable->EndOfFile){
_bstr_t tableName=pRstSchemaTable->Fields->GetItem("TABLE_NAME")->Value;//读取表名
_bstr_t tableType=pRstSchemaTable->Fields->GetItem("TABLE_TYPE")->Value;//读出来的不只是表而已^_^
if(!lstrcmp(str_type,_T("TABLE"))//将表名都读出来,其中{}是该怎么做?然后 读出来所有的名称都按顺序放在tableName里?
while(!m_pRecordset->EndOfFile)
{
tableName =m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;//读取表名
}
中的tableName获取表名后是空,表明不能正确获取,是怎么回事,是不是哪错了?
while(!m_pRecordset->EndOfFile)
{
tableName =m_pRecordset->Fields->GetItem("TABLE_NAME")->Value;//读取表名
}
当执行它时出错,如果把while这个循环去掉,是可以获得第一个系统表名的,但是我不知道该怎么样循环获得所有表名.
http://community.csdn.net/Expert/topic/5747/5747562.xml?temp=.7158319
CString str;
str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + DB_PathName;
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=3;
hr = m_pConnection->Open((_bstr_t)str,"","",adModeUnknown);
}
}然后就是读取表名了,我的写法是:
m_pRecordset = m_pConnection->OpenSchema(adSchemaTables);
_bstr_t table_name;
table_name = m_pConnection->fields->getitem("table_name")->value;
CString name;
name = (char*)(_bstr_t)tableName;
MessageBox(name);
但是只会显示第一个表名,不知道该怎么显示所有的表,最好是显示所有的用户表
-------------------------------------------------------------------
是不是应该m_pRecordset->Fields->GetItem("TABLE_NAME")->Value
一次只能取得记录集中的一条记录
在用m_pRecordset->MoveNext(),取得第二条记录就可以了吧
m_pConnection->fields->getitem("table_name")->value;
都出错,'fields' : is not a member of '_Connection'我该添加的都加了 怎么会出这个错
应该不是'fields' : is not a member of '_Connection'吧
这样的话出错:'fields' : is not a member of '_Recordset'
晕 昨天还好好的可以读一个表...可能会是什么原因呢?
Public Sub OpenSchemaX() Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close
cnn1.Close
End Sub
但是不知道该怎么用VC来写.
这样的话出错:'fields' : is not a member of '_Recordset'
晕------------居然是大小写问题
_bstr_t tableType tableType=m_Recordset->Fields->GetItem("TABLE_TYPE")->Value;
为什么结果是access type table,我怎么才能获得表中属性的名称和类型呀?谢谢了!