Microsoft KB Archive/107672

= VB3: Possible Reasons for "Couldn't Find Installable ISAM" Error =

PSS ID Number: 107672

Article Last Modified on 1/9/2003

-

The information in this article applies to:


 * Microsoft Visual Basic Standard Edition for Windows 3.0

-



This article was previously published under Q107672



3.00 WINDOWS kbinterop kbprg



SUMMARY
There are a number of reasons that can cause the "Couldn't Find Installable ISAM" error message. Below is a list of the possible reasons for the error.



MORE INFORMATION
The Data Access Guide in "Professional Features Book 2" has information in the sections: 'General Tips for Using External Tables' and 'Initialization File Details' that can be used as an additional reference. These sections begin on pages 134 and 148.

The path for the installable ISAM driver should be listed in the file VB.INI in the \WINDOWS directory. Here is an example showing what the Installable ISAM section in VB.INI should look like:

[Installable ISAMs] Btrieve=C:\WINDOWS\SYSTEM\btrv110.dll FoxPro 2.0=C:\WINDOWS\SYSTEM\xbs110.dll FoxPro 2.5=C:\WINDOWS\SYSTEM\xbs110.dll dBASE III=C:\WINDOWS\SYSTEM\xbs110.dll dBASE IV=C:\WINDOWS\SYSTEM\xbs110.dll Paradox 3.X=C:\WINDOWS\SYSTEM\pdx110.dll

List of Possible Reasons for Error (Couldn't find Installable ISAM)
 An entry in the [Installable ISAM] section in VB.INI or .INI is incorrect. For example, this error occurs if you're accessing a Paradox external table, and the Paradox entry of the APP.INI file points to a nonexistent directory.

To correct this problem, exit Visual Basic. Then make necessary corrections in VB.INI or .INI by using Microsoft Windows Notepad or another text editor. Then restart Visual Basic, and try the operation again. One of the entries in the [Installable ISAM] section in VB.INI points to a network drive, and that drive isn't connected. Check to make sure the network is available and the correct drive letter is established. Then try the operation again. The APP.INI file isn't in the Windows directory. The APP.INI file doesn't have the same name as the .EXE file. The path to the IISAM specified in the .INI file is incorrect.</li> There are extraneous spaces in the APP.INI file.</li> The APP.INI file doesn't contain the same IISAM syntax as in the VB.INI for each database that uses the drivers.</li> The connect string should be 'Paradox 3.X;' NOT 'Paradox;' this is a documentation error in the manual.</li> Another possibility is that if you installed Microsoft Access after installing Visual Basic, an older driver may have replaced a newer Visual Basic driver. Check to ensure that the following files are all dated 4-28-93 (the Visual Basic version 3.0 file date stamp):

MSAES110.DLL

MSAJT110.DLL

VBDB300.DLL

</li> The error can also occur when the Connect property of Tabledef is not filled with the exact characters needed.

The Connect property is analogous to the connect portion of the OpenDatabase method, so the parser looks for semicolons after every entry -- other than the null entry in the case of a native Microsoft Access database. In the case of an attached table, Visual Basic syntax requires an entry in the Connect property. There needs to be a leading semicolon before any optional parameters in the Connect property, if the source database of the attached table is Microsoft Access. If it is omitted, the error occurs.

In other words, the leading semicolon is needed when attaching a native Microsoft Access table. If it is omitted, the first parameter placed in the Connect property is seen as the database type. The error occurs because the parser tries to find an entry in the .INI file that corresponds to the first entry in the Connect property, but it doesn't exist. In the first example, the parser looks for a match for "database=" and fails to find it.</li> Providing an extra space between dBASE and IV, as in dBASE IV, prevents the Microsoft Access engine from finding the entry in the .INI file, so the error occurs.

</li> Another possible reason for this error message is that the ISAM driver can't be loaded because the file is corrupt or not decompressed. You can verify this by attempting to force the DLL to load using the WPS.EXE program (available in the Professional Edition only), which you will find in the CDK subdirectory. If WPS can't load the DLL, you should reinstall and expand the DLL by using Setup /Z.

</li>  If you create a program that uses the ISAM drivers, your APPNAME.INI file should contain the entire [Installable ISAMs] section. If you don't do this the follow scenario could occur: A customer may have a program that uses the paradox driver and it works fine with the following APPNAME.INI:

[Installable ISAMs] Paradox 3.X=C:\WINDOWS\SYSTEM\pdx110.dll

Then a second program that uses a Btrieve driver works fine with the following APPNAME.INI:

[Installable ISAMs] Btrieve=C:\WINDOWS\SYSTEM\btrv110.dll But if you run the two programs together, the second will have the error "Can't Find Installable ISAM."

NOTE: the order of execution doesn't play a factor.

To prevent this problem, include the entire [Installable ISAMs] section in your APPNAME.INI files. For example, it might be similar to this:

[Installable ISAMs] Btrieve=C:\WINDOWS\SYSTEM\btrv110.dll FoxPro 2.0=C:\WINDOWS\SYSTEM\xbs110.dll FoxPro 2.5=C:\WINDOWS\SYSTEM\xbs110.dll dBASE III=C:\WINDOWS\SYSTEM\xbs110.dll dBASE IV=C:\WINDOWS\SYSTEM\xbs110.dll Paradox 3.X=C:\WINDOWS\SYSTEM\pdx110.dll </li>  If you have upgraded to the Compatibility Layer and are trying to use Paradox 4.x files, you could receive this error if you don't have "CollatingSequence=Ascii" in the [Paradox ISAM] section, similar to what is listed below:

[Paradox ISAM] ParadoxUserName=Tim ParadoxNetPath=C:\ACC2 ParadoxNetStyle=3.x   CollatingSequence=Ascii </li> Another application may have overwritten VBDB300.DLL with a different version. Check the date on the file, which will be 4/28/93 for Access 1.1 or 4/13/94 for the Access 2.0 Compatibility layer. If VBDB300.DLL is not compatible, the quick fix is to replace VBDB300.DLL with the old version. The long term solution is to install the compatibility layer, only distributing applications after purchasing Access 2.0.</li> This error has been received as a result of copying version 2.5 of XBS200.DLL without MSAJT200.DLL version 2.5. Copying the new version of Jet resolved the problem.

</li> This error was received as a result of having the compatibility layer installed, then re-installing VB, then re-installing the compatibility layer. As a result, another copy of PDX200.DLL was copied to the VB directory, while VB.INI was pointing to Windows\System directory.</li></ol>

Additional query words: 3.00

Keywords: _IK kbIISAM KB107672

Technology: kbAudDeveloper kbVB300 kbVB300Search kbVBSearch

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© 2004 Microsoft Corporation. All rights reserved.