Euro symbol not allowed - informix

I have a problem with the euro (€) symbol insertion (or update, or load, or unload... anything) on informix. When I try to insert/update it just throws the error:
"SQL Error (-79716): System or internal error java.io.IOException: Code-set conversion function failed due to illegal sequence or invalid value."
So, from what I've been reading you have to change the database locale to one that supports those kind of symbols. But for that you have to export and import the database and that most likely will be disapproved by my manager.
So, is there any other way around this, like some kind of previous encoding or something? It doesn't have to be readable in informix. It just needs to store the information and then I can encode/decode on C#...
I thought of just replacing the symbol on storage and then replace it again when I get it. But it could generate all kinds of problems and it's not really an ellegant option.

Related

zOS: MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT BE SAVED IN LOAD MODULE FORMAT

I'm trying to do the linkage of a hello world in cobol, as in this tutorial, I can compile the program and get the new member in project.group.OBJ successfully, but when I link it with
LINK project.group.OBJ(Member) lib('cee.sceelked')
I get the following:
IEW2278I B352 INVOCATION PARAMETERS - TERM
IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT
BE SAVED IN LOAD MODULE FORMAT.
IEW2008I 0F03 PROCESSING COMPLETED. RETURN CODE = 12.
I realized that in 4 (foreground) option, the link editor appears with an asterisk at the left: "7 *Binder/Link editor" which indicates "No packed data support".
Is the error because of that? What does it mean "No packed data support"? I can access that option with no problem.
Searching I found a link which indicates "An attempt is being made to save a module in a format that is incompatible with the features being used" But I don't know what they mean by the features being used. Is it related to the type of the dataset load in which is supposed to be put when linked? I am lost.
The load module format is very old. The last COBOL compiler from IBM that would generate code that could be bound as a load module is IBM Enterprise COBOL 4.2.x, which is scheduled for end of service on 30-Apr-2022. Even that compiler would generate code that could not be stored as a load module if you used certain compile options, i.e. DLL.
More recent versions of IBM Enterprise COBOL generate code which must be bound as a program object. A program object, while executable like a load module, is very different from a load module.
Load modules are stored in PDSs (Partitioned Data Sets). Program objects must be stored in PDSEs (Partitioned Data Sets Extended).
Ensure the SYSLMOD DD of your bind step (the project.group.LOAD dataset) is pointing to a PDSE. When you allocate it with ISPF 3.2 set the Data set name type to LIBRARY.

Error: An error occurred while skipping data rows

I am getting these errors in flat file connection manager.
Error: [SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Flat File Source returned error code 0xC0202091. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
I am reletively new to ssis and I am finding it quite hard to figure out the issue. Please let me know your views.
On your flat file connection properties - Look for the property "AlwaysCheckForRowDelimeters" - SET it to FALSE.
Hope that helps.
"An error occurred while skipping data rows" - I had this error in a package and found the problem was reading files inside a for loop. More files matched the criteria than intended, so a file with an invalid schema was also matched.
More generally I think this is related to either the file not matching the connection definition, I have also seen people online saying it is related to the flat file using a text qualifier (i.e. " in a csv) but having no closing quote.
I had this error today, and my package was looking for more files than existed based on the conditions of the for each loop. The text qualifier wasn't the issue causing this particular error.
near the Start button press drop-down menu arrow
choose package_name Debug Properties
than under Configuration Properties open Debugging
than under Debug Options choose Run64BitRuntime and turn it to False

Issues reading CSV file using OLEDB when filename have period

Issues reading CSV file using OLEDB when filename have period.
I have a code in C# that reads CSV File using OleDBProvider. It works perfect with filenames in regular format such as Budget.csv but failed when i renamed the file into Budget.DKK.csv or Budget.USD.csv
I throws this exception:
he Microsoft Jet database engine could not find the object 'Budget.DKK.csv'. Make sure the object exists and that you spell its name and the path name correctly.
I have no idea so far why is this happening.
If this thread is to be believed, then it is a known problem that won't be fixed. It mentions a work-around that allows the name to be forced into the old style 8.3 format.
And just as a random suggestion if you haven't tried it, maybe delimit the filename with brackets [filename.stuff.txt]. I doubt it is that simple, though.

External stored procedure on IBM i

I am trying to create an external stored procedure on an IBM i (V5R4), but I'm getting an error when I try to run it.
All I want to do is call an RPG program, without passing any parameters or worrying about returning any data. Sorry, I'm not an RPG programmer or an expert on IBM i, so I could be missing something very simple.
The SQL to create the procedure:
CREATE PROCEDURE SOMELIB.SOMEPROC ( )
LANGUAGE RPGLE
NOT DETERMINISTIC
NO SQL
EXTERNAL NAME 'OTHERLIB/SOMERG'
PARAMETER STYLE GENERAL;
The error I get when executing CALL SOMELIB.SOMEPROC() is:
SQL State: 38501
Vendor Code: -443
Message: [CEE9901] Application error. RNX1216 unmonitored by BB1002RG at statement 2100000001, instruction X'0000'. Cause . . . . . : The application ended abnormally because an exception occurred and was not handled. The name of the program to which the unhandled exception is sent is SOMERG SOMERG . The program was stopped at the high-level language statement number(s) at the time the message was sent. If more than one statement number is shown, the program is an optimized ILE program. Optimization does not allow a single statement number to be determined. If *N is shown as a value, it means the real value was not available. Recovery . . . : See the low level messages previously listed to locate the cause of the exception. Correct any errors, and then try the request again.
Your procedure is calling the RPG program without the library list set. You can do one of two things:
1) Change the F-spec in the RPG program to qualify the library using the EXTFILE keyword.
2) Call a CL program from the stored procedure that adds the appropriate library to the library list making sure to allow for the fact that the library may already be there from a prior call. Then have the CL program call the RPG program.
(a little bit more rude solution) Identify the user that starts the Stored Procedure. Change the jobdescription of that user to have the correct library list.
But in my experience is the CL program the most pragmatic solution too.
Assuming the file is in the same library as the program, add EXTFILE(variablename) and USROPN to the F-spec. Take the library name from the PSDS and construct the variablename value before you OPEN the file.
If the file and program are in different libraries, you might create a data area in the program library to hold the name of the data library. Retrieve the data area (using the PSDS) instead of using the PSDS (for the file library). If program and file aren't kept together, it can be a good idea to keep the data library name in an external object that can be changed rather than recompiling.
(Actually, I've rarely used data areas in the past ten years or so. Instead I create a user index. Each entry in the *USRIDX replaces a data area. The entries are keyed by a value that used to be a data area name. One object replaces many others and one procedure can manage all entries. One object to own and authorize reduces some system overhead.)
A suggestion to get rid of this trouble: make the user profile JOBD contains all libraries needed by the stored procedure.

Commitment control error on iSeries procedure call

I have an intermittent problem when calling an iSeries stored procedure (consisting of various CL & RPG programs). The error is:-
Commitment definition *N not valid for open of QAOSSI12
Error occurred while opening file QAOSSI12.
As mentioned the problem does not always occur but occurs more when load testing the procedure.
I know the information is vague but any ideas appreciated!!
If this is error CPF4326, the message text gives the following possibilities:
Member QAOSSI12 was opened for commitment control when commitment definition *N was not active.
Uncommitted changes are pending for member QAOSSI12 for a commitment definition other than *N.
The calling program is using commitment definition *N which has a scope of *ACTGRP, while the program specified to open the file using ascope of *JOB.
Are these situations possibles in your case?
We've been getting CPF4326 and the solution that seems to be working is to add "transaction isolation=none" to our jdbc URL. We aren't trying to use transactions anyway, so there's no benefit to having them enabled. We're also suspicious that something in iBATIS is trying to rollback the transaction when there is an error, even though we don't do anything explicit as far as commitment control.
You can change COMMIT value at compile time to COMMIT(*NONE) then no commitment definition is created .
The Commit (COMMIT) command is used to complete the current transaction and to establish a new commitment boundary for the commitment definition associated with the program issuing the command.
You have to check also if your file in under Journal.

Resources