Connecting to an AS/400 - Connection Issue with code

B

Brian Piotrowski

Hi All,

I almost have the connection working for my connection to the AS/400 from an
ASP page. However, I have an error appearing, and I'm not sure how to fix
it. The code I have for connecting to the AS/400 is this:

<%
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "Provider=IBMDA400.DataSource.1;Persist Security
Info=False;User ID=XXXX;Password=XXXX;Data Source=192.168.0.20;Catalog
Library List=SPSL/SST32"
Set rsNINJA = Server.CreateObject("ADODB.Recordset")
SQL_query = "SELECT * FROM SPSL_SST32 where otsddt = '20041012' and
otdrvr='sandy'"
rsNINJA.open SQL_query, objConn, adOpenStatic, adLockReadOnly
intTotalColumns = RS.Fields.Count - 1
%>

However, when I execute the code, I get this:

ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in
conflict with one another.

/ninja/showstatus.asp, line 15

Line 15 in this case is the line that states "rsNINJA.open SQL_query,
objConn, adOpenStatic, adLockReadOnly".

If anyone could give me some ideas on what I need to fix here, I'd be
eternally grateful.

I know it is connecting, because if I change the password to a bad password,
I'll get an error stating the password is incorrect.

Thank you!

Brian.
 
S

SyrOrange

I think you need to changes objConn to adoCon.

rsNINJA.open SQL_query, adoCon, adOpenStatic, adLockReadOnly
 
B

Brian Piotrowski

I saw that after I posted the message, and I changed it. It still didn't
seem to make a difference.

However, I removed "adOpenStatic, adLockReadOnly" from the statement, and
now I get a new error:

IBMDA400 Command error '80004005'
SQL0204: SPSL_SST32 in SYSOPR type *FILE not found. Cause . . . . . :
SPSL_SST32 in SYSOPR type *FILE was not found. If this is an ALTER TABLE
statement and the type is *N, a constraint was not found. If this is not an
ALTER TABLE statement and the type is *N, a function, procedure, or trigger
was not found. Recovery . . . : Change the name and try the request again.
If the object is a node group, ensure that the DB2 Multisystem product is
installed on your system and create a nodegroup with the CRTNODGRP CL
command.

/ninja/showstatus.asp, line 15

It says that it can't find the file. If that is the case, then where should
my file be located in order for this statement to find it? On our AS/400,
the file is in SPSL/SST32.

Thanks,

Brian.
 
R

Ray Costanzo [MVP]

I don't really think this is the correct answer, but for me, I've found that
I cumbersomely always have to fully qualify the fields I'm querying even
when specifying the library list in the connection string.

SELECT Library.Member.Field FROM Library.Member...

Or maybe it was just

SELECT Field FROM Library.Member

So, try:

Library--------|
Member---------|-----|
Field----------|-----|--------|
| | |
SELECT * FROM SPSL.SST32.SPSL_SST32

(Is your field name really SPSL_SST32?)

Ray at work
 
B

Brian Piotrowski

Got it! It was the underscore that was throwing my data off. When I
changed from SPSL_SST32 to SPSL.SST32 it worked!

Thanks so much Ray!

Brian.
 
S

Stephanie Stowe

Brian Piotrowski said:
I saw that after I posted the message, and I changed it. It still didn't
seem to make a difference.

However, I removed "adOpenStatic, adLockReadOnly" from the statement, and
now I get a new error:

IBMDA400 Command error '80004005'
SQL0204: SPSL_SST32 in SYSOPR type *FILE not found. Cause . . . . . :
SPSL_SST32 in SYSOPR type *FILE was not found. If this is an ALTER TABLE
statement and the type is *N, a constraint was not found. If this is not an
ALTER TABLE statement and the type is *N, a function, procedure, or trigger
was not found. Recovery . . . : Change the name and try the request again.
If the object is a node group, ensure that the DB2 Multisystem product is
installed on your system and create a nodegroup with the CRTNODGRP CL
command.

/ninja/showstatus.asp, line 15

It says that it can't find the file. If that is the case, then where should
my file be located in order for this statement to find it? On our AS/400,
the file is in SPSL/SST32.

SQL_query = "SELECT * FROM SPSL_SST32 where otsddt = '20041012' and
otdrvr='sandy'"


In my bad old days coding against AS/400, we could never rely on the library
list of the authenticated person. So we would do

SQL_query = "SELECT * FROM libraryname.SPSL_SST32"....

We actually had some code in application_onstart to determine if it was a
test system or a prod system and dynamically determined the library name
based on that...

Hope that helps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,526
Members
44,997
Latest member
mileyka

Latest Threads

Top