在班级,我已声明:
System::Data::Odbc::OdbcConnection conn;
System::Data::Odbc::OdbcDataReader datareader; //doesnt work
System::Data::Odbc::OdbcDataReader^ datareader; //works
但是,dataReader
必须声明为OdbcDataReader^
。我不明白为什么。
答案 0 :(得分:0)
我不确定这是否可以回答你的问题但是这里有:
Connection和DataReader类在.NET Framework上成对出现,具体取决于所使用的数据库技术。因此,您有OdbcConnection
和OdbcDataReader
,SqlConnection
和SqlDataReader
等。您必须成对使用它们。无论如何,请注意所有这些都实现了公共接口IDataConnection
和IDataReader
。
修改即可。好吧,我完全误解了这个问题。 : - /
我通常使用C#,而不是C ++,但我认为这是因为您可以直接创建OdbcConnection
的新实例,但对于OdbcDataReader
,您需要通过执行来获取实例相应ExecuteReader
上的OdbcCommand
方法。 ExecuteReader返回指向新OdbcDataReader对象的指针。
答案 1 :(得分:0)
使用OdbcConnection conn;
直接实例化连接对象(在堆栈上)。不确定这是不是一个好主意,但它是可能的。
你不能用OdbcDataReader datareader;
做到这一点,因为该类只有隐藏(私有/内部)构造函数。这是设计使然,你不应该直接创建DataReader,而是通过调用ExecuteReader()
来获取它们。并且ExecuteReader返回OdbcDataReader^
。请参阅MSDN。