SAS EG System.AccessViolationException SAS.CIODSFileEvents_EventProvider.remove_FileClose(SAS.CIODSFileEvents_FileCloseEventHandler) - sas

We have two Windows 7 client PCs with SAS EG 7.10. and a .Net program that runs the SAS programs on a separate SAS server running SAS 9.4. We recently started getting this error on one of the client PCs when a SAS program completes...
System.AccessViolationException at
System.Runtime.InteropServices.ComTypes.IConnectionPoint.Unadvise(Int32)
at
SAS.CIODSFileEvents_EventProvider.remove_FileClose(SAS.CIODSFileEvents_FileCloseEventHandler)
at
SAS.CIODSFileEvents_Event.remove_FileClose(SAS.CIODSFileEvents_FileCloseEventHandler)
at SAS.EC.Directory.Model.SASWorkspace.Dispose(Boolean) at
SAS.EC.Directory.Model.Server.Dispose(Boolean) at
SAS.EC.Directory.Model.Root.Dispose(Boolean) at
SAS.EC.Directory.Model.Broker.Dispose(Boolean) at
SAS.EC.Directory.DirectoryService.Dispose(Boolean) at
SAS.EC.Session.LocalSession.Cleanup() at
SAS.EG.Scripting.Application.Dispose(Boolean) at
SAS.EG.Scripting.Application.Finalize()
The same SAS program runs fine from the other client PC. The only thing that may have changed is that the failing Windows 7 PC may have been patched and I noticed the .Net version is now 4.6 whereas I think it was 4.5.1 before as it is on the other client PC.
I found an article saying that SAS EG prior to v7.13 requires .Net 4.5.1 whereas SAS EG 7.13 and later requires .Net 4.6.
We also get the same error on a new Windows 10 client PC we are setting up that has .Net 4.8 and we have installed SAS EG 7.15 which we thought would be more compatible with Windows 10.
Can anyone explain why we get this error and whether there is anything we can do in a SAS program to fix it or whether this is due to incompatibilities between SAS versions and if so what SAS EG versions can we use on Windows 10 to connect to a SAS Server running SAS 9.4 ?
Thanks

Related

SAS Enterprise Guide "Unable to load the children for the item named 'Libraries'" on MacBook M1

I have a problem with SAS Enterprise Guide (EG) on my MacBook M1. I run Windows 11 on the machine using Parallel Desktop.
I got no problem to use the Data Integration (DI) and Forecast Studio (FS), I can work on both tools for my project.
But on EG, when I try to open the Libraries from server, I will get error "Unable to load the children for the item named 'Libraries'".
I search on Google and found below
http://support.sas.com/kb/65/222.html
It basically said that is due to permission on desktop and documents folder. But I can't any where to do the setup.
May I know anyone encounter this problem before and is there any solution?
According to SAS, EG is not support ARM processor. So can't use EG on M1.

How to - Get Oracle.ManagedAccess driver to work with Installed VB.Net Application

I have a 32bit Application to Install on Win10 (x64 OS). All my Oracle functionality works from within the debugger. Oracle.ManagedAccess driver is correctly registered in the VS Projects and the application works as expected from within the debugger. However, when I build my WiX-Based install pack and run the installed application I get the following error:
What am I missing here? In the previous VS2013 incarnation of the code as recently as last month using the ODP.NET driver 'Oracle.DataAcess', the application worked fine when installed. I'm at a loss as to where else to take this. Any assistance most welcome.
Based on input from Stein Asmul, I jave resolved the problem. Solution simply involved including the Oracle.ManagedDataAccess.ddl in the product.wxs depositing the file in the application folder solved the problem.

Qt MySQL driver on windows (appveyor) doesn't support transactions feature

Qt MySQL driver on windows (appveyor) doesn't support transactions feature; i.e.:
QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions); //returns false
QSqlDatabase::database().transaction(); //raises exception
The question is: What's wrong? / how to make it work?
The same code works perfectly on linux (ubuntu and arch), but fails on windows, appveyor CI in my case, for example: https://ci.appveyor.com/project/konserw/koferta/build/devel-ci-281
Environment:
Visual Studio 2017
MySQL 5.7
Qt 5.11 (mysql plugin prebuilt on image, probably from qt binary distribution)
Full list of sw: https://www.appveyor.com/docs/build-environment/#pre-installed-software (VS 2017 column)
Link to sources: https://github.com/konserw/koferta/tree/devel
EDIT:
I've worked around this issue by checking if driver is supporting transactions and if not skipping transactions in my code. I'll live with that since it was appveyor/mysql only issue, so only my tests will run without transactions.
For production environment i've copied over dll from mariadb c/c++ connector binaries for windows to my application binary dir and it worked fine with my (remote) linux/mariadb server.

Air Native Extensions: Released Air App w/Windows Native Extension works fine on develpment PC but not on other computers

I'm working on an AIR app that uses a Native Extension for windows that I developed for the same project. The app calls an ANE method called pingFunction and passes it a String containing the IP address where the pingFunction will perform, believe it or not, a ping test.
The application and it's ANE work great on Flash Builder and even after making it a release, they keep working like a charm on the development PC. The problem is that I've tried on two other computers and the application is throwing the following error:
ArgumentError: Error #3500: The extension context does not have a method with the name pingFunction.
at flash.external::ExtensionContext/_call()
at flash.external::ExtensionContext/call()
at com.mycompanyname.myappname::MyAppName/sendPing()[...
At the beggining I thought I had to do with the fact that I was using a DLL I compiled using the Debug configuration on Visual Studio instead of the Release configuration, because I read that sometimes the a debug-version of a DLL can use external DLLs. So, I changed it and rebuilt the whole library as a release build. Sadly for me, I'm still experiencing the same result.
Also, I tried changing the swf-version of both the AIR app and the ANE to the AIR SDK version I'm using (14.0), and got again the same error.
The development computer is running Windows 8.1 and the others, where the app is not working, Windows 7 and Windows 7 Service Pack 1.
Any ideas about why this is happening? Any questions or comments that might lead me to the right track will be deeply appreciated.
Error#3500 is coming because you don't have the required runtime installed on those machines, which is necessary to execute any c++ code .
On your development machine you have visual studio installed and hence you also have msvcr.
Solution of the problem is:
Install msvcr i.e. Microsoft Visual c++ redistribution - 2012 from here.
you need msvcr anywhere you want to run any VS compiled c++ code.

Running a 32bit Extended Stored Procedure on a 64bit Sqlserver 2008 R2

How can I run a 32bit Extended Stored Procedure on a 64bit Sqlserver 2008 R2.
I do not have access to the source of this Extended Stored Procedure since this is legacy code from a third party application.
I am currently getting the following error:
Could not load the DLL D:\Program
Files\Microsoft SQL
Server\MSSQL10.X\MSSQL\Binn\fledqproc.dll,
or one of the DLLs it references.
Reason: 193(%1 is not a valid Win32
application.).
The database is currently not running in any compatibility modes.
This extended stored procedure runs on all our SQL Server 2000 instances.
The only fix I found for this is to run your code through a linked server in a 32-bit instance of SQL Server Express next to your 64-bit instance (32-bit instances can be installed on a 64-bit Windows server). Any version other than Express will do, but SQL Server Express adds no extra cost.
Not the most elegant solution, but no problem so far.
Can't you decompile and recompile?