40 messaggi dal 23 marzo 2001
Possibile fare una connessione all'as400 tramite odbc, però senza client access. Grazie.
2.584 messaggi dal 14 maggio 2001
Nei due articoli di Rino Castiglia:
http://www.aspitalia.com/articoli/db/as400.aspx
http://www.aspitalia.com/articoli/db/as400_scrittura.aspx

c'è scritto che bisogna aver istallato sul server il supporto IBM Client Access Express v.4

Hai provato a guardarli?
277 messaggi dal 30 settembre 2003
Per effettuare la connessione tra un server NT/2000 con un sistema main frame AS/400 è necessario aver istallato sul server il supporto IBM Client Access Express v.4, ed è cosa altamente risaputa per chi lavora con il sistema operativo OS/400.
La mancaza dell'istallazione del Client Access non permette nessun altro tipo di conessione ADO con il server IBM.
Concetti di Connessione AS/400
E' necessaria una premessa: il sistema AS/400 garantisce accesso agli utenti muniti di profilo e password.
L'esempio che vedremo in seguito genererà dinamicamente una tabella per il file QCUSTCDT del nostro AS/400 e ci permetterà di visualizzare a video l'archivio.
Alcune variabili della session tipo userid, password, nome di sistema o Ip , libreria e archivio posso essere anche valorizzate nel global.asa. Questo facilità gli accessi ai file, nel caso in cui si dovesse presentare la necessità di frequenti visualizzazioni.
Naturalmente sarà cura dell'amministratore di sistema creare un utente e un profilo utente solo per questo tipo di connessione.
Nell'esempio riportato in seguito ho preferito mettere tutti valori di Input e ho volontariamente lasciato la session nel corpo della pagina.
Come collegarsi
Di seguito è riportato un esempio di form di input che invierà i dati al file engine.asp

<HTML>
<HEAD>
<TITLE>Connessione DB AS/400 via Client Access</TITLE>
</HEAD>
<BODY>
<b>Collegamento ADO al as400</b><br>
<FORM NAME="connessione" METHOD="POST" ACTION="engine.asp">
<p> </p>
<table width="31%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="9%"><b>ip </b></td>
<td width="91%">
<input type="text" name="ip">
</td>
</tr>
<tr>
<td width="9%"><b>userid</b></td>
<td width="91%">
<input type="text" name="userid">
</td>
</tr>
<tr>
<td width="9%"><b>password</b> </td>
<td width="91%">
<input type="password" name="password">
</td>
</tr>
<tr>
<td width="9%"> <b>libreria</b></td>
<td width="91%">
<input type="text" name="libreria">
</td>
</tr>
<tr>
<td width="9%"><b>archivio</b></td>
<td width="91%">
<input type="text" name="archivio">
</td>
</tr>
</table>
<p>
<INPUT TYPE=SUBMIT NAME="invio" VALUE=" invia " ALIGN=RIGHT>
<INPUT type=reset name="reset"value=" annulla " align=RIGHT>
</p>
</FORM>
</BODY>
</HTML>


Di seguito è riportato il file engine.asp che elabora le richieste.

<HTML>
<HEAD>
<TITLE>Rislutati Connessione</TITLE>
<!-- METADATA TYPE="typelib" UUID="00000200-0000-0010-8000-00AA006D2EA4" NAME="ADO Type Library" -->
</HEAD>
<BODY>
<%
' Questo esempio genererà dinamicamente una tabella per il file QCUSTCDT
' e visualizzerà tutti irecord del file stesso.
' Questo esempio permette di visualizzare qualsiasi talbella su AS/400
' Informazioni che posso essere spostare nel global.asa per applicazioni frequenti
' Libreria
' Archivio
' Userid
' Password
' ip as/400 o nome di sistema se la rete è locale
Session("AS400_Userid") = Request.Form("UserId")
Session("AS400_Password") = Request.Form("Password")
Session("Library") = Request.Form("Libreria")
Session("FileName") = Request.Form("Archivio")
Session("AS400_SystemName") = Request.Form("Ip")
' varialibi
Dim AS400Connessione
Dim AS400Command
Dim AS400File_rs
Dim ConnectionString
Dim Color
Dim ColorEnd
Dim CommandText
Dim CommandType
On Error Resume Next
'----- dichiarazione di connessione ---------
ConnectionString = "Provider=IBMDA400;Data Source=" & Session("AS400_SystemName") & ";"
CommandText = "SELECT * FROM " & Session("Library") & "." & Session("FileName")
CommandType = adCmdText
'------ apertura connessione --------------
Set AS400Connection = Server.CreateObject("ADODB.Connection")
AS400Connection.Open ConnectionString,Session("As400_Userid"),Session("AS400_Password")
Set AS400Command = Server.CreateObject("ADODB.Command")
AS400Command.ActiveConnection = AS400Connection
' da questo punto in poi è inserito una porzione di codice che ci permette di visualizzare l'intero archivio
'Comandi da eseguire sul sistema AS/400
AS400Command.CommandText = CommandText
AS400Command.CommandType = CommandType
'Esecuzione comandi
Set AS400File_rs = AS400Command.Execute
If (Err.Number = 0 ) Then
Response.Write("<table border=1 cellpadding=1 cellspacing=0>")
Response.Write("<tr bgcolor=#c1d8f1>")
For Each fd in AS400File_rs.Fields
Response.Write("<td nowrap>" & fd.Name & "</td>")
Next
Response.Write("</tr>")
While NOT AS400File_rs.EOF
Response.Write("<tr>")
For Each field in AS400File_rs.Fields
Color = ""
ColorEnd = ""
If (field.Name = "CDTDUE") Then
If (CDBL(field.Value) > 0) Then
Color = "<font color=#ff0020>"
ColorEnd = "</font>"
End IF
End If
Response.Write("<td nowrap>" & color & field.Value & ColorEnd & "</td>")
Next
Response.Write("</tr>")
AS400File_rs.MoveNext
Wend
Response.Write("</table>")
Else
'------Errori
DisplayError AS400Connection, Err.Number, Err.Description, Err.Source, "Main"
End If
AS400File_rs.Close
Set AS400File_rs = Nothing
AS400Connection.Close
Set AS400Connessione = Nothing
Set AS400Command = Nothing

'--------------- Subroutine Visualizza Errori -----------------
Sub DisplayError(Connection,errNum,errDesc,errSource,proc)
On Error Resume Next
Response.Write("<br>Errore VB num. : <b>" & errNum & " [0x" & Hex(errNum) & "]</b>")
Response.Write("<br>Descrizione errore: <b>" & errDesc & "</b>")
Response.Write("<br>Sorgente Errore: <b>" & errSource & "</b>")
Response.Write("<br>Procedura: <b>" & proc & "</b>")
Response.Write("<br>Totali errori di connessione: <b>" & Connection.Errors.Count & "</b>")
If (Connection.Errors.Count > 0) Then
For Each ErrorMsg in Connection.Errors
Response.Write("<br>" & ErrorMsg.Description)
Next
End If
End Sub
session.abandon
%>
</BODY>
</HTML>
40 messaggi dal 23 marzo 2001
Ok vi ringrazio. Vi pongo un ulteriore quesito. Usando la connessione di ultradev su una libreria dell'as400 funziona il tutto, nel senso che tramite ultradev visualizzo i record della libreria, usando un dsn impostato sull'as400. Però non visualizza i record su pagina ASP, non apre la pagina.

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.