on 06-22-2016 11:53 AM
SQL Anywhere 11.0.1
I am having a problem with several stored procedures that attempt to
EXECUTE IMMEDIATE 'UNLOAD SELECT...
...
...
INTO CLIENT FILE ''' + filepath_filename + ''' ENCODING ''UTF-8'' format ASCII quotes off escapes off';
The stored procedure is executed on a trigger, and the problem is that when the filepath_filename variable is for a local drive, C:\something or E:\something, everything works perfectly, but the moment I try to export it to a shared network drive, N:\something, I get the error mesage
I have:
1. set option public.allow_write_client_file='on';
2. set option public.allow_read_client_file='on';
3. Given the owner (DBA) authority to both read and write client files
4. Specified "-sf none" option in the database server engine parameters
The curious thing is when I run the test UNLOAD command through interactive SQL
unload select * from comms into client file 'N:\TEST\comm.csv' format ascii;
The file gets exported perfectly fine, no questions asked, but when I try
call sp_navision_dimension_xml_output('New', 'Test');
which executes unload select... into client file in it through Interactive SQL, I get a pop-up with question "Allow this connection transfer", "Deny this connection transfer", "Allow this and all subsequent transfers", "Deny this and all subsequent transfers", and if I choose "Allow", everything works great.
But whenever I try it through the application, when the trigger executed the stored procedure, I always get the error message as on the screenshot above.
Thanks for all suggestions
Vlad
This is just a general comment about the error message.
http://dcx.sap.com/index.html#1101/en/saerrors_en11/errm1171.html
That error message is documented (see link above). It says that the application must register a validation callback mechanism with the client library. More details about callback mechanisms are in the link below (for ODBC apps):
http://dcx.sap.com/index.html#1101/en/dbprogramming_en11/pg-odbcdev-connectattr.html
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, I found that myself yesterday, but this is completely beyond me - re-coding ODBC drivers? Or have I misunderstood it? Also I found avery old thread by Breck Carter and Mark Clup, but I couldn't work anything out from it either.
Our application is written in Powerbuilder 11, I would really appreciate just some basic examples or guidelines about how should I go about this? Those dcx documents were a bit too complex. In short, is there something that can be quickly done in SQL Anywhere (or Powerbuilder) that would allow "UNLOAD" statements to be exported to a non-local network shared drive?
Actually, that UNLOAD now works from Interactive SQL, but when Client application amends the record and trigger gets executed which calls a stored procedure with UNLOAD, it fails.
Cheers
http://dcx.sap.com/index.html#1101/en/dbadmin_en11/isql-allow-client-file-write-option.html
http://dcx.sap.com/index.html#1101/en/dbadmin_en11/isql-allow-client-file-read-option.html
I have not tested this but can you review isql_allow_read_client_file and isql_allow_write_client_file options please? Set them to ON and test if the pop-up in InteractiveSQL disappears.
This does not answer your question but it can be a step forward.
Hi Mirco,
Thanks again for the interest, but actually since that first prompt in Interactive SQL - I have never seen the prompt again. It certainly doesn't seem that it was done for a temporary connection only, ever since then I have killed and started ISQL dozens of times and the call to the procedure from ISQL exports everything to the network shared drive just fine.
However when a record is amended through the Powerbuilder application (running through ODBC), that error message still persists
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.