CanaimaSoft
f90SQL
Search
Contents
f90ADO
Links
f90VB
 
 
 

Frequently Asked Questions About f90SQL

Note: This section contains only general FAQs. For technical FAQs, please go to the f90SQL support page.

Table of Contents


What is f90SQL?

f90SQL is a Fortran-90 library that allows easy access to Microsoft Windows' ODBC-API from your Fortran programs. Through the use of the ODBC-API your programs can access a large number of files created by other applications using a standard language (SQL). Windows' API functions were designed to be called from C. They make extensive use of C-specific data types, pointers, etc. Accessing these functions from your Fortran programs can be a real headache if you are not an experienced C programmer and if you are not aware of the many small details involved in cross-language programming. With f90SQL you call the ODBC-API functions the same way you would call any of your normal Fortran subroutines, without having to worry about declaring interfaces to the ODBC-API functions, without having to deal with pointers or special C data types.

Back to Top

Is f90SQL a database manager or a database engine?

No. f90SQL is neither database manager nor a database engine. f90SQL is an interface to a standard set of functions (ODBC-API) that allow reading and/or writing data from/to files created by applications that conform to the ODBC-API interface. Most database programs (for example, Microsoft Access Jet Engine, SQL servers, etc.) provide ODBC drivers to access the data stored in their proprietary file format.

Back to Top

Who are the intended users of f90SQL?

The intended users of f90SQL are Fortran programmers who need   access to data formats other than ASCII  (for example, data in a SQL server, Excel worksheets, etc.)

Back to Top

How do I install f90SQL?

The f90SQL distribution comes with a setup program that can take care of the installation details for you. In some cases, however, you may want to perform a manual installation. To do so, follow these instructions:

1) Copy the f90SQL library (f90SQL.lib) to the library directory of your Fortran compiler (for example, with Digital Fortran this would be the directory DF\LIB).

2) Copy the f90SQL dynamic link library (f90SQLxxx.DLL) into your system directory (for example, WinNT\SYSTEM32 in Windows NT). Each supported compiler has a different DLL library. For example, the .DLL for Lahey Fortran 95 is f90SQLLF95.DLL, the one for Digital Visual Fortran is f90SQLDVF.DLL. Make sure you copy the right .DLL for your compiler(s).

3) Copy the f90SQL modules (f90SQL.f90, f90SQL.mod, f90SQL.obj, f90SQLCONSTANTS.f90, f90SQLCONSTANTS.mod, f90SQLCONSTANTS.obj, f90SQLSTRUCTURES.f90 and f90SQLSTRUCTURES.mod, f90SQLSTRUCTURES.obj) into your Fortran compiler include/module directory (for example, with Digital Fortran this would be the directory DF\INCLUDE).

4) Copy the f90SQL help files (in the CD directory OnlineManuals\html) to a directory of your preference.

Back to Top

How do I use f90SQL with my Fortran programs?

To have access to f90SQL subroutines you need to do two things:

1) Add the f90SQL modules to your Fortran source. You do this by adding the following statement at the beginning of your program:

use f90SQLConstants
use f90SQLStructures
use f90SQL

2) Add the f90SQL library to the list of libraries when linking your program.

Back to Top

What application formats are supported by f90SQL ?

For an application format to be available to f90SQL it must have an ODBC driver. To find what applications with ODBC drivers are installed in your system, open the ODBC Administrator (you will find it the Control Panel of your Windows environment) and check the Drivers tab. If you do not find the ODBC Administrator in your Control Panel, then you need to install the ODBC Redistribution package. You can find this package in Microsoft Universal Data Access Web page, or if you prefer, you can download it from our Download Zone.

We also have an annotated a list of drivers for many applications. This is not a comprehensive list, but it covers the most common applications in use today. A very comprehensive list of ODBC drivers, servers and vendors is published by Ken North.

Back to Top

What is ODBC?

The following explanation was taken from Microsoft ODBC SDK documentation:

Many misconceptions about ODBC exist in the computing world. To the end user, it is an icon in the Windows Control Panel. To the application programmer, it is a library containing data-access routines. To many others, it is the answer to all database access problems ever imagined.

First and foremost, ODBC is a specification for a database API. This API is independent of any one DBMS or operating system. The ODBC API is based on the CLI specifications from X/Open and ISO/IEC. ODBC 3.5 fully implements both of these specifications — earlier versions of ODBC were based on preliminary versions of these specifications but did not fully implement them — and adds features commonly needed by developers of screen-based database applications, such as scrollable cursors.

The functions in the ODBC API are implemented by developers of DBMS-specific drivers. Applications call the functions in these drivers to access data in a DBMS-independent manner. A Driver Manager manages communication between applications and drivers.

Although Microsoft provides a Driver Manager for computers running Windows NT Server, Windows NT Workstation, and Windows 95; has written several ODBC drivers; and calls ODBC functions from some of its applications; anybody can write ODBC applications and drivers. In fact, the vast majority of ODBC applications and drivers available for computers running Windows NT Server, Windows NT Workstation, and Windows 95 are produced by companies other than Microsoft. Furthermore, ODBC drivers and applications exist on the Macintosh and a variety of UNIX platforms.

Applications that use ODBC are responsible for any cross-database functionality. For example, ODBC is not a heterogeneous join engine, nor is it a distributed transaction processor. However, because it is DBMS-independent, it can be used to build such cross-database tools.

Back to Top

What is an API?

API is the acronym for Application Programming Interface. An API is a set of functions that allow other programs access to the functionality of an application. Microsoft Windows provides a rich set of API that allow your program access to the operating system services, for example.

Back to Top

What are the differences between f90SQL-lite and f90SQL-pro?
Do I need to buy a license to use f90SQL?

f90SQL-lite allows your Fortran programs access to the almost all the core functionality of the ODBC (3.5) API. f90SQL-pro implements an interface that give you access to the full functionality of the ODBC API, this includes all  Core, Level 1 and Level 2 functions. So f90SQL-lite is a subset of f90SQL-pro. For a more detailed list of the features supported by each version, check Features of f90SQL.

f90SQL-lite is free for academic and individual use. In simple words this means that you can use f90SQL-lite without having to pay a license fee if you are a student or a professor, and you are using f90SQL as a learning/teaching tool, or as part of an unsponsored research project in an academic institution. You can also use f90SQL-lite for personal non-profitable projects. f90SQL-lite is also free for certain Non-Profit organizations.

Private enterprises and Government Agencies can use f90SQL-lite for evaluation purposes for 30 days. After this period they must discontinue its use or buy a license for f90SQL-pro.

Please note that the previous explanations are not intended to be a complete description of the license terms for f90SQL, nor are they in any way a binding license agreement. For a complete description of the license terms for the use of f90SQL-lite and f90SQL-pro check f90SQL-lite License and f90SQL-pro License.

Back to Top

What Fortran compilers are supported by f90SQL?

Currently the following compiler on Intel platforms are supported:

  • Absoft Pro-Fortran (ver.5.0 and 6.0)
  • Digital Visual Fortran (ver. 5.0 and 6.0)
  • Lahey Fortran 90 (ver. 4.5) and LF95 Express.
  • Lahey/Fujitsu Fortran 95 (ver. 5.0), and
  • Salford Fortran 95 (ver. 1.32).

We are also working to support Digital Visual Fortran on Windows NT-Alpha, and Absoft Pro-Fortran on Linux.

Future support for other compilers will be dependent upon demand, so if you want your Fortran compiler to be supported, you should explicitly indicate so in the f90SQL Discussion group or by sending a private e-mail to Canaima Software

Back to Top

Is f90SQL the same as "Embedded SQL"?

No. Embedded SQL's are proprietary solutions that make use of a pre-processor to convert connection and SQL instructions at compile time. f90SQL is a library of Fortran subroutines, so your Fortran programs do not need any special preprocessing. Also, because f90SQL uses the standard ODBC API you can use the same compiled program to access different data sources from different vendors, as long as they have an ODBC driver available.

Back to Top

If the ODBC-API comes with Windows, why do I need f90SQL?

Because the ODBC-API is intended to be called from C. Fortran handles pointers and character strings in a different way. Also, the protocol to pass parameters to functions and subroutines is different between C and Fortran compilers. Most Fortran compilers allow you to make API calls through a more or less complicated process of declaration of interfaces, etc. But having to this will move your attention from the objective of your program to the details of the interface to the API functions. f90SQL offers an interface that is familiar to Fortran programmers so you do not have to loose your time debugging your calls to the API and instead can concentrate on the algorithms to manipulate your data. f90SQL also takes care of declaring all constants, variables and structures you need to effectively and quickly develop programs that access the ODBC-API functionality. In addition, f90SQL adds functionality of its own, facilitating the use of otherwise complicated ODBC operations.

Back to Top

Where can I get more information about ODBC and ODBC-API?

The user manual that comes with your f90SQL distribution is a good source of information about ODBC and the ODBC-API. You can also check the help file that comes with the ODBC Administrator (in your Windows Control Panel). The definitive source of information for the ODBC API is Microsoft's ODBC SDK. The SDK can be found in the MSDN CDs or in the Microsoft Web Server.

If you have Microsoft's Visual C++, you will also find a good reference (although outdated) in the documentation that comes with the compiler.

Of course, you can always post a question to the f90SQL Discussion group.

Back to Top

On what operating systems does f90SQL work?

f90SQL is available for Windows 95, Windows 98 and Windows NT on Intel platforms. We are also working to support Windows NT on Alpha platforms, and Linux on Intel platforms.

Back to Top

Can I use f90SQL with Fortran-77?

No. f90SQL makes use of many features found in Fortran 90 that are not part of the standard for Fortran 77.

Back to Top

What is ADO?

ActiveX™ Data Objects (ADO) enables you to write an application to access and manipulate data in a database server through an OLE DB provider. ADO’s primary benefits are high speed, ease of use, low memory overhead, and a small disk footprint.

ADO supports key features for building client/server and web-based applications, including the following:

  • Independently-created objects. Unlike Data Access Objects (DAO) or Remote Data Objects (RDO), you no longer have to navigate through a hierarchy to create objects because most ADO objects can be independently created. This allows you to create and track only the objects you need, and also results in fewer ADO objects and thus a smaller working set.
  • Batch updating helps improve performance by locally caching changes to data, then writing them all to the server in a single update.
  • Support for stored procedures with in/out parameters and return values.
  • Different cursor types, including the potential for support of back-end–specific cursors.
  • Support for limits on number of returned rows and other query goals for performance tuning.
  • Support for multiple recordsets returned from stored procedures or batch statements.
  • Free-threaded objects for efficient web server applications.

You now can take advantage of these features from your Fortran program using f90ADO, included in your f90SQL-pro distribution.

Back to Top

What is f90ADO?

f90ADO is a Fortran 90 interface to ADO. It was designed to mimic the way you would work with ADO if you were using it from an Object Oriented Programming environment (as Visual Basic or C++), but within the limitations of Fortran. The result is a library that is intuitive and easy to use. If you have programmed ADO, Remote Data Objects (RDO) or Data Access Objects (DAO) from Visual Basic or C++ you will find an easy transition to using  f90ADO in your Fortran programs. If you do not have experience using any of these data-access models, you will still be accessing databases in no time from your Fortran programs with f90ADO.

f90ADO is still in alpha release and being tested by a limited number of developers. We expect a commercial release before the end of the last quarter of 1999.

Back to Top

Can I use f90ADO with my version of f90SQL-lite?

No. f90SQL-lite doesn't not include f90ADO. During a limited time, we offered an free license for f90ADO to customers that bought f90SQL-pro. This offer is not longer available. However, customers that buy the commercial release of f90ADO will get, as part of their purchase, a license to f90SQL-pro.

Back to Top

Where can I get more information about ADO?

You can get general information about ADO in the Microsoft Web Server. The documentation included with your copy of f90ADO is also a good source of information. You can also post your questions to the f90SQL discussion group.

Back to Top

What is the difference between f90SQL and f90ADO?

They are two different products that take different approaches to data access. f90SQL is a procedural interface to the ODBC API. It works at a lower level and is slightly more tedious to use. The advantages of f90SQL are that database access is extremely fast, you are offer incredible flexibility and the data-access model is very similar to the normal procedural approach you take in Fortran programming.

f90ADO is based on the Object Oriented Programming (OOP) paradigm. Instead of a procedural interface, you are faced with objects, their properties and methods. This is a departure of the programming paradigm Fortran programmers are used to. The advantages of f90ADO are that is easy to use, efficient and very standard in the way you will access different data sources. It also allows you to take advantage of your previous knowledge from using DAO, RDO or ADO in other languages. The main disadvantage of f90ADO is that it tends to be slower than direct access through the ODBC-API. Also, because Fortran is not an OOP language, the implementation of f90ADO interface to ADO is not exactly object oriented, but instead a mimic of it.

Back to Top

What does Canaima mean?

OK, we have gotten this question asked so many times, that we have decided to create a simple page explaining where our name comes from.  Click here to open this page.

Back to Top


Are f90SQL and f90ADO Y2K-compliant?

Yes, they are. You should notice, however, that f90SQL and f90ADO use several Windows 95/98 and NT services, as well as the ODBC drivers provided by your database vendor. To ensure 100% Y2K compliance, you should make sure that you have installed the required OS and database service packs. In particular,  you should install Microsoft Data Access Components 2.0 Service Pack 2 (SP2), which fixes several Y2K issues in the Windows' ODBC Driver Manager. You can download MDAC-SP2 from the Microsoft Web Server or from our Download Zone.

The following links contain Y2K compliance statements for f90SQL-pro and f90SQL-lite.

f90SQL Y2K-Compliance Statement (html)
f90SQL Y2K-Compliance Statement (Postscript)

Back to Top


Copyright © 1998-2000 Canaima Software
For questions regarding this site, send an e-mail to
webmaster@canaimasoft.com