Microsoft KB Archive/38831

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 17:55, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

INF: DB-LIB and Floating Point


The information in this article applies to:

  • Microsoft SQL Server Programmer's Toolkit, version 4.2


This article explains how you can control whether or not DB-Library (DB-Lib) uses a coprocessor for floating-point operations.


DB-Lib uses floating point only if conversion or display of FLOAT data is requested. No other SQL Server data type requires floating point.

The DLL version of DB-Lib was compiled with /FPa and linked with the alternate floating-point library. It will never use the coprocessor, even if one is present and is totally independent of the floating-point compile and link requirements of the applications that call it.

The static-link version of DB-Lib was compiled with /FPi, which generates coprocessor floating-point instructions. This is why you will see 8087 instructions in DB-Lib code. Whether or not a coprocessor is required is determined at link time. If the application is linked with the coprocessor floating-point library (xLIBC7.LIB), DB-LIB will require a coprocessor. If the application is linked with the emulator floating-point library (xLIBCE.LIB), the coprocessor will be used if it is present. The C startup code detects whether a coprocessor is not present and sets up a handler to trap 8087 instructions and emulate them. The automatic selection of a coprocessor at run time may be overridden with the NO87 environment variable. Please refer to pages 508-512 Microsoft C/C++ "Environment and Tools" manual for more information on controlling floating-point options.

Additional query words: dblib Windows NT

Keywords : kbprogramming
Issue type :
Technology : kbSQLServSearch kbAudDeveloper kbSQLServPTK420

Last Reviewed: March 24, 1999
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.