Solved

Compatibility

Posted on 2002-04-17
9
1,628 Views
Last Modified: 2010-08-05
Hi,

I made a small program that connects to an Access database, and that program was made in VB6 in a machine running Windows XP PRO.
After to use the Package & Deployment Wizard i've tried to install it in a Pc running W98 SE.
During setup an erro occurs (An error occured while registering the file 'C:\program files\commonfiles\system\msado26.tlb) i select 'ignore'
and the setup program is instaled OK.
When running the program i get:' run-time error '430':
'Class does not support Automation or does not suport expected interface'

Can anyone help me?
Thanks
0
Comment
Question by:JParente
9 Comments
 
LVL 2

Accepted Solution

by:
UncleMatt earned 200 total points
ID: 6947406
you need to install mdac (data access components)

if you use ADO to connect to the access DB then the msado26.tlb is the library for ADO so it wont work.

download mdac 2.61 from microsoft and install it on the client machine and then try it again.

Matt.
0
 
LVL 44

Expert Comment

by:Arthur_Wood
ID: 6947450
in addition, it is very rarely good idea to develop on a more rescent paltform than the OLDEST platform on which you expect the application to run.  That is, you sould NOT develop on Windows XP and try ti install on Windows 98.  It is very likely that there will be some support files, on the new operating system, which will NOT be compatible with the older Operating System.  You may be lucky in this particualr instance, but the genral advise is to develop on the OLDEST version of the Operating System that you intend to support. Upward compatability is quite common, DOWNWARD compatability is not.
0
 
LVL 17

Expert Comment

by:inthedark
ID: 6948387
You can develop on XP.  I created a system which became widely distributed.  I had so many problems I re-wrote setup1 in the end.  After a chat with Microsoft Support I was advised as follows:

Install the oldest copy of Windows 95 that you can find  and build your package on that system.  Otherwise
when you build your package some of the Windows componants are included with the package.  If setup.exe
finds that the install has a new version of these Windows componanats the setup will upgrade Windows
and ask for the system to be re-booted.

Once you have your package from an old version of Windows 95 you can copy the critical files and tell the PD Wizard to default to use these files instead of the ones from  windows\system or \winnt\system32.

You can also get these files without having to install Windows 95 on a system as you can hook out the required DLL's required from the CAB files.

This may also help:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q178354

In you PDWizard folder there is a file:

VB6DEP.INI:

It looks like this:

[VB Runtime]
Dest=$(WinSysPathSysFile)
Uses1=MSVBVM60.dll
Uses2=OleAut32.dll
Uses3=OlePro32.dll
Uses4=AsycFilt.dll
Uses5=StdOle2.tlb
Uses6=ComCat.dll
CABFileName=VBRun60.cab
CABDefaultURL=http://activex.microsoft.com/controls/vb6
CABRunFile=VBRun60.exe

I think you can hard code the source like:

Uses1=MSVBVM60.dll
Uses2=c:\old95stuff\OleAut32.dll
Uses3=c:\old95stuff\OlePro32.dll
Uses4=c:\old95stuff\AsycFilt.dll ' if these files don't exist on a clean Win 95 install ignore them and use the defaults.
Uses5=c:\old95stuff\StdOle2.tlb
Uses6=c:\old95stuff\ComCat.dll


Find an old copy of Windows 95 and get the files user2-6 from the windows 95 cab files. Or the Windows\system from a pc running Win 95.


You can also add to the following section:

; These are files which will be ignored when referenced by a VB project.
[Do Not Redistribute]
shdocvw.dll=
mshtml.dll=
mshtml.tlb=
asp.dll=
asp.tlb=
msdatsrc.tlb=
vb6ext.olb=
msaddndr.tlb=
msaddndr.dll=
mso97.dll=
mso97rt.dll=
DEExt.tlb=

There are also some bugs in setup1.exe I will post some fixes if you like:

setup1.exe tips:

1)  Make sure you have autoincrement version set in the project Make section.
2)  Change the version of Major 99.99.9900 becuase of a bug in setup.exe if it finds some other programmer's
version of setup1 in \windows or \winnt your setup1.exe won't be loaded - so at least you version might
look newer.

Also there is a bug where is MS office is installed on a system through a network this makes setup1.exe
screw up.

0
 
LVL 18

Expert Comment

by:mdougan
ID: 6948601
UncleMatt has the right answer.  Whomever created the install program for this app probably tried to include the ADO files separately, but technically, you are only supposed to distribute the ADO files via the MDAC_TYP.EXE file that is found in the Redist directory of the package and deployment wizard.  Note, if you've upgraded to a later version of MDAC than what comes with the standard install of VB (2.0 I think), then you need to make sure to replace the version of MDAC_TYP.EXE in this directory with the new version, so that the package and deployment wizard will include the right version of MDAC when it builds the install.

I think that Microsoft does this so that each client that gets the MDAC has to agree to the shrinkwrap license for MDAC.
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 17

Expert Comment

by:inthedark
ID: 6949015
mdougan you're probably right. I haven't produced any non-server apps that use ADO yet.  I did some timings between ADO & DAO. ADO can perform better than DAO but not often. I use ADO if the back-end server is SQL Server but these types of apps. are not the sort that are widely distributed.
0
 
LVL 18

Expert Comment

by:mdougan
ID: 6949544
I'm a big fan of DAO, I've built many large applications that continue to run well under it.  However, ADO is growing on me.  It is very big, and I hate the idea of having to distribute 7mb of MDAC just to get my 1.5mb app to run, but, I believe that Microsoft is installing MDAC already on it's later operating systems, so, it might not be necessary to distribute eventually.

As a side note, if I don't really have too much need for the database, I use XML files instead.  I've written a wrapper for the Microsoft Dom object that makes it work something like a recordset, so, you can load an XML document, search it or read through it sequentially.  Saves you from having to distribute any of the database components... just the XML parser.
0
 
LVL 17

Expert Comment

by:inthedark
ID: 6949598
What size files can Dom handle before you notice speed problems?
0
 
LVL 18

Expert Comment

by:mdougan
ID: 6950270
Most of the files I've been using lately with XML have been very small.  But on other projects, we'd loaded some good sized recordsets into a DOM and loading was surprisingly fast.  I'd imagine searching through a large sized dom would be pretty slow though.
0
 

Author Comment

by:JParente
ID: 6950572
Installing the mdac 2.61 simply solved my problem.
thanks to all the others that contributed to my knowledgment with their greatest coments once i'me new in this vb stuff.

Many thanks to all,
Jorge
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now