Jet Engine Crashes

Jet Engine Crashes

Post by George Thornto » Wed, 24 Feb 1999 04:00:00



Hi there,

I'm having a nightmarish problem with a VB app I'm developing.

Here are the background details:

VB 5.0
Access 97 database.
Program uses _one single_ mdb file.
Single user program - will _not_ be run in multi-user environment.
Everything is local, no networks involved.
Uses Jet version 3.51.
Database stuff via DAO/Microsoft Jet Engine workspace.
Error checking routines _all_ over the program.
Childishly simply queries - mostly "select * from blah where blah =
blah" that sort of thing.
Small number of records in the database.

Here is the problem:

On all but 2 machines I've installed it on (about 6 in total) the
program crashes (illegal operation dialog box with only a Close button
on win95, Dr Watson on NT) when attempting to execute particular
queries. Those queries are in the form of:

Set DY = MyDB.OpenRecordset(what)

or

MyDB.Execute what, dbFailOnError

These lines are contained in two separate functions, which are called
from anywhere in the program that wants to do a query - there are no
other "OpenRecordset" or "Execute" statements in the entire program.

This are definitely the lines upon which the program crashes, because I
have statements immediately before and after those lines that write to a
log file - when there's a crash, the immediately after statement never
gets logged.

On one machine I installed VB5 and ran the program in the development
environment, to see if I could get any more information. It simply
crashed when reaching one of the query code lines. I verified that this
was the crash point again by using breakpoints.

So, if that's what's causing the crash, there must be something wrong
with the queries I am executing, right? Well so I thought at first, but
as I mentioned before, the queries are childishly simple. Here's some
example of one query that causes a crash:

UPDATE Vehicles SET Odometer = 80000 WHERE VehicleID = 10

This query can be run from within Access itself, but from my program via
the Execute statement, it causes a crash.

So perhaps I haven't included all the necessary dll's on the target
machine? Well I installed VB5 itself, access 97, and the jet35upd.exe
from microsoft. No difference.

On my program I have an "about" box that displays the "DBEngine.Version"
property - and on all machines it confirms it to be 3.51.

The most puzzling thing about this problem is that on my development
machine (win95) and one other machine that I've installed it on (win98)
it works flawlessly. No crashes, no instability, it works _every time_.
While on the other machines, not a single error message, just _splat_.

I've had some small clues....on some queries I was running with a "WHERE
Table1.ThingID = Table2.ThingID" part to it, I noticed that in one table
the "ThingID" was indexed (it was the primary key - an autonumber) and
in the other table it was not indexed (it was simply a long integer).
Then when I changed it to an indexed field, that query didn't cause a
crash anymore. Why is that? I have no idea. Surely I can set a criteria
of comparing two fields as long as they are both the same data type
(long integer) even if one of them is indexed and the other isn't? Even
if you weren't supposed to do that, why does it work on some machines
and not others? Why don't I get any error messages?

This problem is driving me insane.....I can't imagine a simpler
environment for a database program to run in, i.e. one database file,
single user only, everything is local, etc. The queries I'm running are
such ordinary queries....

WHAT IS HAPPENING???

Gratitide of truly profound proportions to anyone that can shed some
light on this.

--
=================================
George

=================================

 
 
 

Jet Engine Crashes

Post by Angel Rapall » Wed, 24 Feb 1999 04:00:00


chekc ur ODBC drivers in those machines, and service packs...also....

 
 
 

Jet Engine Crashes

Post by Ronald Kaempfe » Wed, 24 Feb 1999 04:00:00


Hi George,

you are using Jet Version 3.51 with VB5?

I read a message on this Newsgroup some time ago on "Using VB5 and VB6 on
the same machine".
The author told, that its incompatible. The main reason is, VB6 installs Jet
Version 3.51 (VB5 = Version 3.5) wich needs some additional references
unknown to the VB5-Setup wizard.

If you install your programm on a machine where Jet 3.51 is preinstalled it
will work. If your setup-routines have to install the Jet Version some
references and i think at least one dll are missing. If you have VB6
installed, you propably have to upgrade your program to VB6.

I hope this will help you.

cu Ronald

*** spamblocker: please remove the nospam_ from my mail-address **

 
 
 

Jet Engine Crashes

Post by Armstead Felan » Wed, 24 Feb 1999 04:00:00


Ron and George,
I downloaded Jet35upd.exe (JET 3.51) from the microsoft site some time ago
(months) and I use it with VB5.
Armstead Feland

> Hi George,

> you are using Jet Version 3.51 with VB5?

> I read a message on this Newsgroup some time ago on "Using VB5 and VB6 on
> the same machine".
> The author told, that its incompatible. The main reason is, VB6 installs Jet
> Version 3.51 (VB5 = Version 3.5) wich needs some additional references
> unknown to the VB5-Setup wizard.

> If you install your programm on a machine where Jet 3.51 is preinstalled it
> will work. If your setup-routines have to install the Jet Version some
> references and i think at least one dll are missing. If you have VB6
> installed, you propably have to upgrade your program to VB6.

> I hope this will help you.

> cu Ronald

> *** spamblocker: please remove the nospam_ from my mail-address **

 
 
 

Jet Engine Crashes

Post by George Thornto » Thu, 25 Feb 1999 04:00:00



> chekc ur ODBC drivers in those machines, and service packs...also....

I've installed the Visual Studio 97 service pack 2 and I'm not using
ODBC....

--
===============================
George

===============================

 
 
 

Jet Engine Crashes

Post by George Thornto » Thu, 25 Feb 1999 04:00:00


Hi Ronald, appreciate your response.


> Hi George,

> you are using Jet Version 3.51 with VB5?

> I read a message on this Newsgroup some time ago on "Using VB5 and VB6 on
> the same machine".
> The author told, that its incompatible. The main reason is, VB6 installs Jet
> Version 3.51 (VB5 = Version 3.5) wich needs some additional references
> unknown to the VB5-Setup wizard.

That's interesting, because my development machine has had Visual Basic 6
installed on it previously. Since then it has been uninstalled, and then Visual
Basic 5 has been re-installed. But of course there could be hundreds of leftover
DLLs that weren't removed or replaced because they're a later version. As I
mentioned, my program also works on a windows 98 machine, possibly because 98
has the newer DLLs required, but other 95 machines won't have them.

Quote:> If you install your programm on a machine where Jet 3.51 is preinstalled it
> will work. If your setup-routines have to install the Jet Version some
> references and i think at least one dll are missing. If you have VB6
> installed, you propably have to upgrade your program to VB6.

I don't want to use VB6, because from what I've heard from some of my developer
friends, it's a crock.

But anyway, back to the VB5/Jet 3.51 thing....I downloaded jet35upd.exe from
microsoft and that has three DLLs in it. I've installed this update onto the
problem machines to no effect. I'm certain that Jet 3.51 is supposed to work
with VB5 as well.....I've just checked the readme that came with Jet35upd.exe
and it has no mention of VB6, only VB5. Alot of the microsoft knowledge base
articles refer to Jet35upd.exe as a magic bullet.

--
===============================
George

===============================

 
 
 

1. Jet Engine Crashing

I have an Access 7.0 database with stored parameterized queries.  I run a
Client application written in VB5 using DAO3.5 and Jet3.51, and the
operating system is NT4.0 SP3.  When I trigger two or more Clients (using
Windows Sockets) to run the same stored parameterized select query
(recordset type is snapshot) at the same instant about 95% of the time the
Jet engine will crash with an Access Violation. Looking at the Dr. Watson
logs the fault almost always occurs on the same instruction in MSJET35.DLL.

By using dynamic SQL embedded in the VB code (temporary query defs) the
crash does not occur.

I have not found any information on MSDN that states two users should not be
able to run the same stored parameterized query at the same instant. I
prefer the use stored queries and not dynamic sql.

This appears to be a bug in DAO, JET, or the Access DB (an access violation
is unacceptable in a db engine). Has anyone else ever experienced this
problem?

2. OAS on Linux

3. Jet Engine crashes

4. Explain Plan Weirdness

5. jet engine engine.idle

6. Connect over the web

7. ODBC engine vs. Jet engine

8. Help: On Sql*Forms Trigger?

9. jet engine engine.idle

10. Jet Engine 3.5.1 vs. Jet Engine 4.0

11. 4GL program crashes engine!

12. Engine Crashes - Are they acceptable? (fwd)

13. PSQL2000 SP3 Engine Crash