All these examples work very well with GNAT3.13 and GNATCOM-1.3. But I am looking for something under GNAT 3.04. Rohit "Anders Wirzenius" wrote in message news:1Bkp6.5$Sz3.1480@read2.inet.fi... > > WJT wrote in message <982ogg$64t$1@tribune.oar.net>... > ... > >A small example of connecting to an Access database, and loading up a > >Dataset with a SQL select statement would get me going. > ... > > The following code is a result of modifying examples in the Samples > directories in GNATCOM-1.3p for WinNT. Remove the HTML tags where they > appear. The SQL is made using MS Access query builder, hence the unnecessary > complexity of the SQL-command. > > Makefile: > > gnatmake -IC:\gnatcom-1.3p\binding -IC:\gnatcom-1.3p\samples\bindings -IC:\g > natcom-1.3p\samples %1 -largs -lodbc32 > > Ada code: > > with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; > with GNAT.IO; use GNAT.IO; > > with GNATCOM.Types; > with GNATCOM.BSTR; use GNATCOM.BSTR; > with GNATCOM.VARIANT; use GNATCOM.VARIANT; > with GNATCOM.Initialize; > > with ADO.uConnection_Interface; use ADO.uConnection_Interface; > with ADO.uCommand_Interface; use ADO.uCommand_Interface; > with ADO.uRecordset_Interface; use ADO.uRecordset_Interface; > with ADO.Fields_Interface; use ADO.Fields_Interface; > with ADO.Field_Interface; use ADO.Field_Interface; > > procedure Botnia is > use type GNATCOM.Types.VARIANT_BOOL; > > Connection : uConnection_Type; > Command : uCommand_Type; > Recordset : uRecordset_Type; > SQL : Constant > GNATCOM.Types.BSTR := To_BSTR ( > "SELECT Botniahalli.Botniahalli_Viite, > Botniahalli.P�iv�m��r�, " & > "Botniahalli.Alkaa, Botniahalli.Loppuu, > Joukkueet.Joukkuenumero, " & > "Botniahalli.Joukkue, Joukkueet.Joukkuenimi, " & > > "((Hour([Loppuu])-Hour([Alkaa]))*60+Minute([Loppuu])-Minute([Alkaa]))/30 " & > "AS Vuoroja, " & > > "Int(((Hour([Loppuu])-Hour([Alkaa]))*60+Minute([Loppuu])-Minute([Alkaa]))/30 > *[Hinta]+0.5) " & > "AS Vuokra, KenttaVuokrat.KenttaNimi, > Botniahalli.Botniahalli_Viite " & > "FROM (Botniahalli INNER JOIN Joukkueet ON " & > "Botniahalli.Joukkue = Joukkueet.Joukkuekoodi) " & > "INNER JOIN KenttaVuokrat ON " & > "Botniahalli.Kentt� = KenttaVuokrat.KenttaKoodi " & > "WHERE (((Botniahalli.Botniahalli_Viite) Is Not Null) > AND " & > "((Joukkueet.Joukkuenumero)=144 Or > (Joukkueet.Joukkuenumero)=152 Or " & > "(Joukkueet.Joukkuenumero)=172))"); > begin > GNATCOM.Initialize.Initialize_COM; > Put_Line ("Content-type: text/html" ); > New_Line; > Put_Line("Anders"); > Put_Line(""); > > Put_Line ("Create ADO Engine
"); > Create (Connection, ADO.CLSID_Connection); > > Put_Line ("ADO Version is : " & To_Ada (Get_Version (Connection))); > New_Line; > Put_Line ("Open Connection to Database
"); > > Put_ConnectionString > (Connection, > To_BSTR ("DSN=adademo") ); > > > Open (Connection, null, null, null, 0); > > Create (Command, ADO.CLSID_Command); > PutRef_ActiveConnection (Command, Pointer (Connection)); > > Put_CommandText (Command, SQL); > > Create (Recordset, ADO.CLSID_Recordset); > > Open (Recordset, > Source => To_VARIANT_From_Dispinterface (Command), > CursorType => ADO.AdOpenForwardOnly, > LockType => ADO.AdLockReadOnly, > Options => 0, > Free => False); > > MoveFirst (Recordset); > > while Get_EOF (Recordset) /= GNATCOM.Types.VARIANT_BOOL_TRUE loop > declare > Fields : Fields_Type; > begin > Attach (Fields, Get_Fields (Recordset)); > Put_Line ( "

" ); > for N in 0 .. Integer (Get_Count (Fields)) - 1 loop > declare > Field : Field_Type; > begin > Attach (Field, Get_Item (Fields, To_VARIANT (N))); > Put_Line (To_Ada (Get_Name (Field)) & " = " & > To_Ada (Get_Value (Field)) & "
"); > end; > end loop; > end; > MoveNext (Recordset); > New_Line; > end loop; > > Put_Line ("Close Connections"); > Put_Line(""); > Close (Recordset); > Close (Connection); > end Botnia; > > Another binding using ODBC you may find at Pascal Obry's home page > http://perso.wanadoo.fr/pascal.obry/adas.html > > Hope this helps. > Anders > >