Solved

Calling a Program, Passing Parms from ASP to AS/400

Posted on 2004-09-15
10
899 Views
Last Modified: 2008-01-09
I'm trying to call a program on our AS/400 and repeatedly get this error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token / was not valid. Valid tokens: : <IDENTIFIER>.

On this line: cmd400.EXECUTE parms,adcmdtxt


Code:
Set cmd400 = Server.CreateObject("ADODB.Command")
Set cmd400.activeConnection = AS400
cmd400.CommandType = adCmdText

cmd400.CommandText = "{{CALL /QSYS.LIB/W2.LIB/W1LI.PGM(?,?,?,?,?,?,?)}}"
cmd400.Prepared = True

cmd400.Parameters.Append cmd400.CreateParameter("PSessid", adDecimal, adParamInput)
cmd400.Parameters(0).Precision = 10
cmd400.Parameters(0).NumericScale = 0

cmd400.Parameters.Append cmd400.CreateParameter("PUser", adChar, adParamInput,15)

cmd400.Parameters.Append cmd400.CreateParameter("PCusnr", adDecimal, adParamInput)
cmd400.Parameters(2).Precision = 6
cmd400.Parameters(2).NumericScale = 0

cmd400.Parameters.Append cmd400.CreateParameter("PCpwd", adChar, adParamInput,25)

cmd400.Parameters.Append cmd400.CreateParameter("PIPAdd", adchar, adParamInput,15)

cmd400.Parameters.Append cmd400.CreateParameter("PInout", adDecimal, adParamInput)
cmd400.Parameters(5).Precision = 1
cmd400.Parameters(5).NumericScale = 0

cmd400.Parameters.Append cmd400.CreateParameter("PSuccess", adchar, adParamOutput,1)

psessid = session.sessionid
puser = uid
pcusnr = cnbr
pcpwd = pwd
pipadd = Request.ServerVariables("Remote_addr")
pinout = 1
            
parms = array(psessid,puser,pcusnr,pcpwd,pipadd,pinout,psuccess)

cmd400.EXECUTE parms,adcmdtxt

Thanks for your assistance.
0
Comment
Question by:gummylick
  • 3
  • 2
  • 2
  • +2
10 Comments
 
LVL 14

Expert Comment

by:daveslater
ID: 12072663
Hi the way I have done it in VB is
AS400Pgm.CommandText = "{{call DSLIB/PGM1(?)}}"
so you could try
cmd400.CommandText = "{{CALL W2.LIB/W1LI.PGM(?,?,?,?,?,?,?)}}"

Dave
0
 
LVL 14

Expert Comment

by:daveslater
ID: 12073906
I do not think you need the first / as the defualt is the root directory

cmd400.CommandText = "{{CALL QSYS.LIB/W2.LIB/W1LI.PGM(?,?,?,?,?,?,?)}}"
0
 

Author Comment

by:gummylick
ID: 12076741
Thanks for your suggestion, dave.  I removed the "/" before "/QSYS.LIB" but continue to get the same error.  Thanks for your help.
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:gummylick
ID: 12076757
When I remove "/QSYSLIB/"  I get:  

[IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token / was not valid. Valid tokens: <END-OF-STATEMENT>.
0
 
LVL 33

Expert Comment

by:shalomc
ID: 12079691
try either
cmd400.CommandText = "{{CALL W2/W1LI (?,?,?,?,?,?,?)}}"

or
cmd400.CommandText = "{{CALL W2.W1LI (?,?,?,?,?,?,?)}}"

ShalomC
0
 
LVL 13

Expert Comment

by:samic400
ID: 12101347
Did you put the program on the AS400 as a stored procedure?
0
 
LVL 13

Expert Comment

by:samic400
ID: 12101356
Program has to be registered as a stored procedure to handle the parameters.

0
 

Author Comment

by:gummylick
ID: 12373887
I ended up using a work around. :(.
0
 

Accepted Solution

by:
modulo earned 0 total points
ID: 12512398
PAQed, with points refunded (300)

modulo
Community Support Moderator
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
php iseries 3 223
Domino Lotusscript Scheduled Agent Tranfer File from AS400 to another 6 110
Comments on the use of ftp server/client on OS/400 AS/400 4 106
Monitor SQL Insert 8 62
One of the biggest threats facing all high-value targets are APT's.  These threats include sophisticated tactics that "often starts with mapping human organization and collecting intelligence on employees, who are nowadays a weaker link than network…
When you’re making plans to join the modern business race, you should analyze various details that may affect your results. Nowadays, millions of businesses are trying to grow into established and appreciated professional enterprises.
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now