Somebody had posted page numbers from VB manual for help on what
ISAMs are in response to a somebody else's question. Those pages
contain no relevant info in my VB Prof v3.0 manuals.
Thanks in advance for all your help.
From the VB Knowledge Base:
List of Possible Reasons for Error (Couldn't find Installable ISAM)
-------------------------------------------------------------------
1. An entry in the [Installable ISAM] section in VB.INI or
<APPNAME>.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 <APPNAME>.INI by using Microsoft Windows
Notepad or another text editor. Then restart Visual Basic, and
try the operation again.
2. 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.
3. The APP.INI file isn't in the Windows directory.
4. The APP.INI file doesn't have the same name as the .EXE file.
5. The path to the IISAM specified in the .INI file is incorrect.
6. There are extraneous spaces in the APP.INI file.
7. The APP.INI file doesn't contain the same IISAM syntax as in the
VB.INI for each database that uses the drivers.
8. The connect string should be 'Paradox 3.X;' NOT 'Paradox;' this is
a documentation error in the manual.
9. 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
10. 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.
11. 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.
12. 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.
13. 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
14. 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
Paul
Well, it was me posted the pages. In my manuals they give the information
required for setting up installable ISAMs so that they will work outside
of the VB environment. Simply put, have an ini file appname.ini (to go
with appname.exe). If you don't want to do that, look up SetDataAccessOption.
Basically, copy the information about installable isams from VB.INI to
that ini file. That's fundamentally all there is to it.
Thinking back, I probably said look in Professional Features Book 1. That
should be Book 2.
Nic
see the VB/Win FAQ section F question 2. "Why does my compiled VB database app
generate an error when it ran just fine in the design environment?"
________________________________________________________________________
Ayn Shipley, Toronto, Ontario | Prevent computer viruses... |
internet: ashi...@hookup.net | ...practice safe sigs |
You need to have your VB.INI file available to the application, or have
the Installable ISAM's section from VB.INI in the INI file for you app.
Make sure the APP.INI file has the same name as the APP.EXE you
generate.
Duncan Bradley
: San...@techinc.usa.com
"No Installable ISAMS" generally refers to the fact that VB cannot find
the correct INI file that points to the correct DLL's.
Read EXTERNAL.TXT in the VB subdirectory.
Your application must find an INI file with the application's name as the
1st 8 characters. This INI file must contain a section: [Installabl ISAMS]
This section must contain the lines similar to the same section in the
VB.INI file. If this file is not in the application subdirectory or does
not use the same name as the application then your program must use the
SETDBACCESS command to point to the correct location for this INI file.
Carl Hilton
Hilton Consulting
chi...@awod.com
--
===========================================================================
| Carl Hilton | Since I am the boss the views expressed |
| chi...@awod.com | are mine, as well they should be! |
===========================================================================
Check to see if compatibility layer on one machine and not the other.
Thx Dave L
Each application (PROGRAM.EXE) must have an init file (PROGRAM.INI)
in the windows directory that contains the following lines ...
[Installable ISAMs]
Btrieve=C:\WINDOWS\SYSTEM\btrv200.dll
FoxPro 2.0=C:\WINDOWS\SYSTEM\xbs200.dll
FoxPro 2.5=C:\WINDOWS\SYSTEM\xbs200.dll
dBASE III=C:\WINDOWS\SYSTEM\xbs200.dll
dBASE IV=C:\WINDOWS\SYSTEM\xbs200.dll
Paradox 3.X=C:\WINDOWS\SYSTEM\pdx200.dll
Paradox 4.X=C:\WINDOWS\SYSTEM\pdx200.dll
[dBASE ISAM]
Deleted=On
PageTimeout=600
CollatingSequence=Ascii
Century=Off
Date=American
Mark=47
------
Notes:
1. You may use xbs110.dll & pdx110.ddl instead of ???200.dll
2. Check the spelling in the connect property of the data
object. It must exactly match the ISAM assignments ???=foo.dll.
>[dBASE ISAM]
>Deleted=On
>PageTimeout=600
>CollatingSequence=Ascii
>Century=Off
>Date=American
>Mark=47
>------
>Notes:
>1. You may use xbs110.dll & pdx110.ddl instead of ???200.dll
>2. Check the spelling in the connect property of the data
>object. It must exactly match the ISAM assignments ???=foo.dll.
In regards to 1 above.
If you have compatibility layer installed (200) and if you want to switch back
to 110 don't you need to use the 110 vbdb300.dll instead of the 200
vbdb300.dll?
Thx Dave L
I don't know for sure, but it does make sense. I never tried to
switch back. I was just trying to mention that some people may
still be using the old drivers.
SANJEEVM,
Be sure your app has an INI files the points to the proper DLL's for
your Database. These DLL's must also be installed on the target
machine.
RTM
In article <3d9dln$r...@maverick.maverick.tad.eds.com>, rmcmahan
<plsbss01...@eds.com> says:
>
>sanj...@techinc.usa.com wrote:
>>
>> Hi:
>> I am getting a message saying "Can't Find Installable ISAM" when I
>> try and run my application on a machine other than the development
>> machine.
>
[snip]
>SANJEEVM,
>
>Be sure your app has an INI files the points to the proper DLL's for
>your Database. These DLL's must also be installed on the target
>machine.
>
I recall also that the name of the .INI file must match the name of your
app; by default, PROJECT1.INI - and it needs to be in the PATH (possibly
even in the directory you launch the .EXE from, I'm not sure).
1. Yes, ISAMs need to be in the app.INI file in the finished .exe.
2. Reading the fucking manuals is not the answer to all one's
compatability problems. I shall demonstrate below.
a) As Chris Knoch and myself have discovered, once your app has
opened a .mdb, whenever it subsequently tries to open any other
format, THE ISAMS ERROR WILL OCCUR. There is not yet any known
fix for this bug.
b) Access databases are handled by VB in a very flexible manner;
other formats ARE NOT. Should one write code which opens any
outside format database _more than once_ THE ISAMS ERROR WILL OCCUR
IN ALL CASES AFTER THE FIRST.
Stop being such utter gits about this everyone. I eventually
managed to hack a way 'round my problem; other people haven't even
noticed that these bugs exist yet. When they do, an explanation
of the facts above is required, not RTFM. Okay?
Perhaps we could arrange for this information to be put in the
FAQ. Such knowledge would certainly have prevented me from
sweating money and blood over it. Perhaps we can save someone else
the hassle.
Just my two-penneth.
P'Charnkov! the other day upon the stair
i met a man who wasn't there
he wasn't there again today
Bryan i think he's from the CIA
just because i'm paranoid doesn't mean they're not out to get me
paranoia means never feeling alone