login about faq

I have been unsuccessful at getting past sp_OACreate under SqlServer 2012. The same sproc works on a SqlServer 2008 box.

EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT results in -2147221005 for @hr.

Callig get error: EXEC @HR = sp_OAGetErrorInfo @crypt, @Source OUT, @Description OUT;

results in @Description being "Invalid class string".

I have checked the registry, the clsids are there. I even edited permission on crypt2 and crypt2.1 adding full control to everyone. I also verified the DLL's folder has everyone read/exec permissions.

I am at a loss here.

asked Dec 15 '15 at 13:30

wolfiesden's gravatar image

wolfiesden
1


See the online reference documentation for the correct strings to pass to sp_OACreate. See http://www.chilkatsoft.com/refdoc/xChilkatCrypt2Ref.html

link

answered Dec 16 '15 at 11:06

chilkat's gravatar image

chilkat ♦♦
11.8k316358420

Thank you, but...

Why would that change?

The database was backed up from a '08 SQL box and restored on a '12 SQL box. It worked on the 08 box. It doesn't on the 12 box.

(Dec 16 '15 at 11:30) wolfiesden

Ok, apparently the object names have been changed to protect the innocent.

I removed 9.5.0 from the server. I found an old download we had of 9.3.0. Now the sproc works as it did before. I am not going through a couple hundred databases to edit stored procedures because of a name change to include a version.

I am unsure what logic you were following when adding the version into the object names, but it can't imagine this is forward thinking. What happens when you release 9.6.0? We all have to do a search and replace on our code (assuming thats easy to do, which it isn't in SQL procs) and recompile our projects? I could see it being useful to create an alias so that Chilkat and Chilkat_9_5_0 could both reference the same object for reverse and forward code compatibility or allow the dev to choose a specific version (for some reason?) to target in their application. Not sure why someone would have multiple versions of your dll registered, if thats even possible.

Going from "Chilkat.Crypt2" to "Chilkat_9_5_0.Crypt2", IMHO, is simply bad form. It doesn't solve any apparent problem and it causes ALL existing code to break.

What is the latest version of the activeX utilities that has the old (correct) naming convention of "Chilkat.Crypt2" and where can I download it?

link

answered Dec 16 '15 at 12:11

wolfiesden's gravatar image

wolfiesden
1

It is so that a future version of the ActiveX can co-exist with older versions. You've heard of DLL hell, right? The current naming of "Chilkat_9_5_0." has not changed for several YEARS. Eventually, Chilkat will do a major update to rid itself of all deprecated methods and make long-needed changes which break backward compatibility. When doing so, the name will change -- this will make it so that new programs can use the new version WITHOUT breaking existing older applications.

link

answered Dec 16 '15 at 12:18

chilkat's gravatar image

chilkat ♦♦
11.8k316358420

What about 9.4.x? Did it use the Chilkat.Crypt2 naming? If so, is there a download for it?

link

answered Dec 16 '15 at 12:28

wolfiesden's gravatar image

wolfiesden
1

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×2

Asked: Dec 15 '15 at 13:30

Seen: 489 times

Last updated: Dec 16 '15 at 12:28

powered by OSQA