Here is the program:
program ReadMDB
library ('System')
library ('System.Data')
implicit none
object('System.Data.OleDb.OleDbCommand') :: myCommand
object('System.Data.OleDb.OleDbDataAdapter') :: myDataAdapter
object('System.Data.OleDb.OleDbConnection') :: myConn
object('System.Data.DataTableCollection') :: tabs
!trying to define as array produces error 1a and 2a below
!object('System.Data.DataTableCollection[]') :: tabs
object('System.Data.DataSet') :: myDataSet
object('System.Data.DataTable') :: myTab
string :: strConn
string :: strSelect
integer :: res
assembly_external(name='System.Data.OleDb.OleDbConnection.Open') dc_open
assembly_external(name='System.Data.OleDb.OleDbConnection.Close') dc_close
assembly_external(name='System.Data.OleDb.OleDbDataAdapter.Fill') da_fill
strConn = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test.mdb'
strSelect = 'SELECT * FROM tblTest'
myConn = new@('System.Data.OleDb.OleDbConnection',strConn)
myCommand = new@('System.Data.OleDb.OleDbCommand',strSelect,myConn)
myDataAdapter = new@('System.Data.OleDb.OleDbDataAdapter',myCommand)
myDataSet = new@('System.Data.DataSet')
res=da_fill(myDataAdapter,myDataSet,'Test')
tabs=MyDataset%Tables
print*, res
!result ok. Numer of selected records
print*, tabs%count
!ok. 1 table
!HOW DO I ACCESS THE ELEMENTS OF THE DATATABLECOLLECTION tabs (or any other collection?)
mytab=tabs(0)
!Error 1 Array TABS appears in this expression as rank 1, but was declared as a scalar D:\Visual Studio 2008\Projects\F95Projects\ReadFromAccess\ReadFromAccess\ReadMdb.F95 41
!Error 2 Conversion from System.Data.DataTableCollection to System.Data.DataTable not possible D:\Visual Studio 2008\Projects\F95Projects\ReadFromAccess\ReadFromAccess\ReadMdb.F95 41
!if tabs is defined as DataTableCollection[]
!Error 1a Conversion from System.Data.DataTableCollection to System.Data.DataTableCollection[] not possible D:\Visual Studio 2008\Projects\F95Projects\ReadFromAccess\ReadFromAccess\ReadMdb.F95 39
!Error 2a Member count does not exist (or is not publicly accessible) in OBJECT('System.Data.DataTableCollection[]') D:\Visual Studio 2008\Projects\F95Projects\ReadFromAccess\ReadFromAccess\ReadMdb.F95 44
!trying to access default attribute:
!mytab=tabs%item(0) ! produces
!Error 1 Internal compiler error D:\Visual Studio 2008\Projects\F95Projects\ReadFromAccess\ReadFromAccess\ReadMdb.F95 54
read *
call dc_close(myConn)
end program