Oracle Stored Procs with SSRS 2012 - reporting-services

I've been trying to figure this out for the last day or so and after numerous attempts, I'm still struggling to find a solution. Essentially I have an Oracle Datasource setup in SSRS, where using the current "providers" available for Oracle are the following under OLE DB:
Or flat out using the "Oracle" connection type:
The issue I'm facing is when attempting to call an Oracle Stored Procedure. The only provider that seems to work is "Microsoft OLE DB Provider for Oracle" (Provider=MSDAORA;Data Source=DBNAME), where when selecting that Datasource, I can select my PROC from the drop-down (see below) and hit "refresh fields", and everything works, no problem. I don't even have to specify any parameters as it recognized them automatically and adds them. The problem is that the MSDORA is being deprecated (from what I've read), and several attempts to install ODAC (32 and 64 bit) on the server have proven unsuccessful seeing as the reporting service on the server doesn't seem to recognize the provider (tested using a UDL file).
So, figured I'd resort to using the "Oracle" provider / connection method, but despite my attempts with or without passing the parameters, I keep getting errors. Either this if I don't pass any parameters:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SSRSTEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Or this error if I do add the parameter value at the end:
ORA-00911: invalid character
ORA-06512: at "SYS.DBMS_UTILITY", line 156
ORA-06512: at line 1
It's safe to assume that the data source provider is in part the source of my problem, but surely there must be a way to call an Oracle Proc via SSRS using something other than MSDORA, or at least I hope there is. I've tried installing both 32 and 64 bit versions of the Oracle client (11 and 12c), registering the dlls manually (regsvr32) but I still can't seem to resolve this. Any help would be greatly appreciated.

Related

Connecting Atoti to Oracle database

I want to make a connection to an Oracle database and I have found the following method in the docs:
https://docs.atoti.io/latest/lib/atoti.store.html?highlight=jdbc#atoti.store.Store.load_sql
I call this method with something like this: my_store.load_sql(url, query, username=my_username, password=my_password)
And I use a URL with this form: 'jdbc:XX.XX.XX.XX:YYYY/ZZZZ', but I get the following error:
ValueError: No driver provided and cannot infer it from URL.
I also created this config with a path to a jdbc jar file in my SQL Developer folder, but the error persists:
my_jdbc = 'ojdbc8.jar'
tt.config.create_config(extra_jars = my_jdbc)
Does anyone know how I can solve it or have any example of loading stores from an Oracle database?
Thanks in advance.
The atoti-sql plugin comes with the Oracle driver so you don't need to add an extra jar to the config. However you do need to pass the driver when calling my_store.load_sql. These can be found in the atoti_sql.drivers module.
In your case since you are using an Oracle database, the correct code should be something like:
my_store.load_sql(
url,
query,
username=username,
password=mypassword,
driver=atoti_sql.drivers.ORACLE
)

Cakephp 3.1 have issues with PHP7.2

I have develop my web application by using cakephp 3.1. My service provider has update the php version to 7.2. Now my application is not work well, as it was working with PHP5.6, Its showing different warnings with debug=true; and the big problem is its not showing line which have some problem, if some is there. Here is warning message.
Warning: count() [function.count]: Parameter must be an array or an object that implements Countable in D:\xampp7\htdocs\bighris\vendor\cakephp\cakephp\src\Database\QueryCompiler.php on line 115
In case some errors are there its not showing it, in the following way, there I can't find the line number and the file which have the problem.
https://www.screencast.com/t/qIQB1YIW
Please help me to solve the issue, Thanks
As per the Cakephp github issues:
PHP 7.2 has changed count's behavior
that's why you are getting errors.
PHP 7.2 has changed count's behavior causing problems with QueryCompiler
You can follow the below link or change your PHP version to 7.1 or less to resolve this issue.
Stop warnings when using count in QueryCompiler in PHP 7.2
it looks like you are passing some wrong data to count function, guess you are passing some query directly to count. Or something like that.
If you may show the code of the controller you are facing issue it may be a great help.
there is solution for you....
2020-09-30 06:22:30 Warning: Warning (2): count() [function.count]: Parameter must be an array or an object that implements Countable in [D:\xampp\htdocs\gym_master\vendor\cakephp\cakephp\src\Database\QueryCompiler.php, line 126]
please check your php version...

SSIS TargetServerVersion causes null rows in script component

When I set the TargetServerVersion = SqlServer2012 in my SSIS project, my script component throws a null object exception.
I am importing about 140,000 records from a CSV file. To confirm I do get records, I removed my script component step and ran the flow with no issues.
I then added back in the Script Component (which has worked fine with this very data file) and I get the null exception.
When I debug the script and check the value of the Row property it says the following:
?Row
{Input0Buffer}
Buffer: {Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer}
BufferColumnIndexes: {int[2]}
MembershipPlanName: 'Row.MembershipPlanName' threw an exception of type 'System.NullReferenceException'
MembershipPlanName_IsNull: 'Row.MembershipPlanName_IsNull' threw an exception of type 'System.NullReferenceException'
The script then fails when the rest of the lines try to reference Row. When I change the TargetServerVersion back to 2016 or 2014, the package works fine.
During debegging I also looked at BufferWrapper.cs and there seems to be some data in there
?Buffer
{Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer}
ColumnCount: 2
ColumnInfo: 0x0000000000000000
CurrentRow: 0
EndOfRowset: false
Mode: Input
RowCount: 9936
RowSize: 260145280
RowStarts: 0x000000000f82b700
Out of frustration I installed SSDT for VS2012. For some reason, that made everything work fine in VS2015. Not sure why it worked, but posting this if anyone has a similar issue.

MS Access 32 bit converting to 64bit error

I wrote an MS Access app in Office 2007 and am now trying to modify it to run on Office 2010 64 bit version. I get the following error:
The expression On Open you entered as the event property setting produced the following error: Private Enum and user defined types cannot be used as parameters or return types for public procedures, public data members, or fields of public user defined types.
The error occurs if I try to open a form that has no code in its Open event, so I'm not sure where to start looking to make changes.
Thanks!
These sort of strange errors can arise if there are broken references. In the database open the VB window, on the menu choose Tools -> References. In the dialog box the references required will be at the top, check to see if any have "MISSING" prefixing the name.

ZeosLib with MYSQL's shared memory protocol?

I started up my local MYSQL server with the shared memory protocol turned on.
How can I connect to my server with ZeosLib? Where do I specify that it is using shared-memory?
I am using Lazarus(freepascal), although the directions would be the same for Delphi (probably).
Even if the TZConnection has no connection string property you can set the additional connection parameters in TZConnection.Properties.
I presume you run your MySQL server this way
mysqld --skip-networking --shared_memory=1 --shared-memory-base-name='MyMemoryDB'
To enable your shared memory connection you might try to add the following configuration lines into the property TZConnection.Properties at design time in Object Inspector.
Note that the protocol must be set as it is and shared-memory-base-name to the same value as you used in the command line parameter. The default value is MYSQL so if you omit the parameter in command line then you should change the following MyMemoryDB values to MYSQL.
So in TZConnection.Properties property try to add these two lines
protocol=memory
shared-memory-base-name=MyMemoryDB
or at runtime in the TZConnection.BeforeConnect event handler use
procedure TForm1.ZConnection1BeforeConnect(Sender: TObject);
begin
ZConnection1.Properties.Add('protocol=memory');
ZConnection1.Properties.Add('shared-memory-base-name=MyMemoryDB');
end;
Hope this will help you somehow. I haven't tested it because I don't have the proper environment.
IF ZeOS support it, it is probably a textual property that can be added to the (TZ)connection options. Just like other clientlib properties.