Deal with Hierarchal ResultSet : OleDbDataReader « Database ADO.net « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » Database ADO.net » OleDbDataReader 
Deal with Hierarchal ResultSet
 
#include "stdafx.h"
using namespace System;
using namespace System::Data;
using namespace System::Data::OleDb;

void TraverseReader(OleDbDataReader^ Reader){
    while Reader->Read() )
        for int i = 0; i < Reader->FieldCount; i++ ){
            Object^ Value = Reader->GetValue(i);
            if Value->GetType() == OleDbDataReader::typeid )
                TraverseReader(static_cast<OleDbDataReader^>(Value));
            Console::Write(gcnew String(' ', Reader->Depth*2));
            Console::WriteLine("{0} ({1}):\t{2}", Reader->GetName(i),Reader->GetDataTypeName(i), Value);
        }
}
void main(){
    OleDbConnection^ myConnection = nullptr;
    
    myConnection = gcnew OleDbConnection("Provider=MSDataShape;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music.mdb");        
    myConnection->Open();
        
    OleDbCommand^ myCommand = gcnew OleDbCommand(
            "SHAPE {SELECT Name, Description FROM Genre}\
            APPEND ({SELECT GenreName, Title, Duration FROM Music}\
            AS MusicByGenre\
            RELATE Name TO GenreName)",
            myConnection);
    TraverseReader(myCommand->ExecuteReader());
    myConnection->Close();
}

   
  
Related examples in the same category
1.Using DataReader
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.