List:Commits« Previous MessageNext Message »
From:pharvey Date:July 19 2006 6:22am
Subject:Connector/ODBC 5 commit: r450 - trunk/examples/CPP/7/ADO
View as plain text  
Modified:
   trunk/examples/CPP/7/ADO/main.cpp
Log:


Modified: trunk/examples/CPP/7/ADO/main.cpp
===================================================================
--- trunk/examples/CPP/7/ADO/main.cpp	2006-07-18 22:42:12 UTC (rev 449)
+++ trunk/examples/CPP/7/ADO/main.cpp	2006-07-19 04:22:35 UTC (rev 450)
@@ -1,3 +1,7 @@
+#include <oledb.h>
+#include <msdadc.h>
+#include <msdaguid.h>
+
 #include <ole2.h>
 #include <stdio.h>
 #include <conio.h>
@@ -19,7 +23,7 @@
 	rename( "EOF", "EndOfFile") 
 
 inline void TESTHR( HRESULT x ) { if FAILED(x) _com_issue_error(x); };
-
+IDataConvert *pDataConvert  = NULL;
 _ConnectionPtr pConnection  = NULL;
 char *pszConnectionString   = "NorthwindMySQL";
 char *pszUserID             = "myodbctest";
@@ -71,6 +75,8 @@
     /* rows */
     while ( !(pRecordset->EndOfFile) )
     {
+        wprintf( pRecordset->GetString( adClipString, 1, "|", "\n", "<NULL>" )
);
+/*
         for ( long nField = 0; nField < pRecordset->Fields->Count; nField++ )
         {
             if ( !nField )
@@ -78,9 +84,13 @@
             switch ( pRecordset->Fields->Item[nField]->Value.vt )
             {
                 case VT_EMPTY:
+                    printf( "%s |", "" );
+                    break;
                 case VT_NULL:
+                    printf( "%s |", "<NULL>" );
+                    break;
                 case VT_I2:
-                    printf( "! %d |", pRecordset->Fields->Item[nField]->Value.vt
);
+                    printf( "%d |", pRecordset->Fields->Item[nField]->Value.iVal
);
                     break;
                 case VT_I4:
                     printf( "%ld |",
pRecordset->Fields->Item[nField]->Value.lVal );
@@ -94,12 +104,39 @@
                     printf( "%f |", pRecordset->Fields->Item[nField]->Value.date
);
                     break;
                 case VT_BSTR:
+                    printf( "%s |",
(LPCSTR)pRecordset->Fields->Item[nField]->Value.bstrVal );
+                    break;
                 case VT_DISPATCH:
                 case VT_ERROR:
                 case VT_BOOL:
                 case VT_VARIANT:
                 case VT_UNKNOWN:
+                    printf( "! %d |", pRecordset->Fields->Item[nField]->Value.vt
);
+                    break;
                 case VT_DECIMAL:
+                    {
+                        char        szValue[100];
+                        DBLENGTH    nDestLength = 0;
+                        DBSTATUS 	pnStatusNotUsed;
+                        BYTE		bPrecisionNotUsed;
+                        BYTE        bScaleNotUsed;
+                        HRESULT     hResult = pDataConvert->DataConvert(
DBTYPE_DECIMAL, DBTYPE_STR, sizeof(DECIMAL), nDestLength,
pRecordset->Fields->Item[nField]->Value.decVal, szValue, sizeof(szValue) );
+                                                                         DBSTATUS_S_OK, 
+                                                                        
&pnStatusNotUsed,
+                                                                        
bPrecisionNotUsed,
+                                                                         bScaleNotUsed,
+                                                                        
DBDATACONVERT_DEFAULT );
+                        pIcvt->DataConvert(DBTYPE_NUMERIC,DBTYPE_I4, // src, dest
types
+                           (ULONG) sizeof(struct  tagDB_NUMERIC), &cbDstLength,
+                           (void *) &pMyData->indx, 
+                           &pMyData->indxInt,
+                           (ULONG) sizeof (int),  
+                           DBSTATUS_S_OK,
&pdbsStatusNotUsed,bPrecisionNotUsed,bScaleNotUsed,
+                           DBDATACONVERT_DEFAULT);
+
+                        printf( "%s |", szValue );
+                    }
+                    break;                     
                 case VT_I1:
                 case VT_UI1:
                 case VT_UI2:
@@ -131,6 +168,7 @@
                 case VT_VERSIONED_STREAM:
                     printf( "! %d |", pRecordset->Fields->Item[nField]->Value.vt
);
                     break;
+*/
 /*
                 case VT_BSTR_BLOB:
                 case VT_VECTOR:
@@ -141,13 +179,14 @@
                 case VT_ILLEGALMASKED:
                 case VT_TYPEMASK:
 */
+/*
                 default:
                     printf( "! %d |", pRecordset->Fields->Item[nField]->Value.vt
);
                     break;
             }
         }
         printf( "\n" );
-
+*/
         pRecordset->MoveNext(); 
     }
 
@@ -182,7 +221,7 @@
     try
     {
         TESTHR( pCommand.CreateInstance( __uuidof( Command ) ) );
-        pCommand->CommandText = "SELECT EmployeeID, OrderID, OrderDate FROM orders
WHERE EmployeeID = ? ORDER BY OrderDate";
+        pCommand->CommandText = "SELECT * FROM orders WHERE EmployeeID = ? ORDER BY
OrderDate";
         pCommand->CommandType = adCmdText;
 
         variantEmployeeID.vt    = VT_I2;
@@ -236,6 +275,8 @@
     if ( FAILED( ::CoInitialize( NULL ) ) )
         return;
 
+    TESTHR( CoCreateInstance( CLSID_OLEDB_CONVERSIONLIBRARY, NULL, CLSCTX_INPROC_SERVER,
IID_IDataConvert, (void **)&pDataConvert) );
+
     /* do it */
     if ( doConnect() )
     {

Thread
Connector/ODBC 5 commit: r450 - trunk/examples/CPP/7/ADOpharvey19 Jul