SQl2000 / VB6 ADO, cryptacquirecontext error

Posted on 2002-07-01
Last Modified: 2007-12-19

Hi Guys

Having a problem where i'm happily running my VB6 application against a sql2000 database.

My VB6 application will do a certain number iterations (reading from a recordset, and then inserting records into a table), and then it
will fall over with the following error message.

Run Time Error ='2147467259 (80004005)' :

CryptoAPI function 'CryptAcquireContext' failed. Error 0x8009001d:
(Error description unavailable)

At this point, I try closing the ADO connection, and re-opening, and I get the same error.

Whenever I try to load another windows program (i.e. Windows Explorer), I get a 'not enough memory to load program' error

I know that I have memory avaliable, (at least 80mb is being reported in the 'Free Physical Memory').

If I try running the SQL Insert statment in SQL Query Analyser, the insert works perfectly. (And I can also disconnect / reconnect to the SQL Server)

The only way to get my VB6 App to run the SQL Insert line is to stop the SQL Server process, and re-start it.

Obviously this is not a great solution, as my code is running on a client's machine which I do not have control over.

I've looked on newsgroups, and forums, and have come across a few references to this problem, yet none of them have had definative answers.

Can anybody help me please?????

Question by:sb8gq
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 7121626
This what i found:

I think that you have the protocol encryption enabled, which uses the CryptoAPI. Unless you need this, you should disable it.
Independently of this, I could solve some problems with the CryptoAPI by
1) ensuring every user had full permissions to all the Crypto Hives in the registry
2) ensuring that no invalid/unknown users existed in the registry permissions for that hives.


Author Comment

ID: 7121646
Thanks for replying so quickly.

I'm not explicity using the Crypto API, so how do I disable the protocol encryption??

LVL 143

Accepted Solution

Guy Hengel [angelIII / a3] earned 400 total points
ID: 7121651
Start the "Server Network Utility" on the "Microsoft SQL Server" menu (Start->Program Files  is the default location). You will find the option in the first tab.

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.


Author Comment

ID: 7125332
The option there does not allow you to explicitly set 'no encryption', only to enforece encryption.

I have tried various protocols and still no luck :(


Author Comment

ID: 7125436
The option there does not allow you to explicitly set 'no encryption', only to enforece encryption.

I have tried various protocols and still no luck :(

LVL 49

Expert Comment

ID: 8451612
Upon review of the comments here, I am recommending this disposition:

        points to angelIII

Please post a comment if you disagree.

DanRollins -- EE database cleanup volunteer

Expert Comment

ID: 8492645
per recommendation.

Community Support Moderator @Experts Exchange

Featured Post

Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

622 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