Connexion AS400

cs_fifi37 Messages postés 3 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 22 juin 2004 - 21 juin 2004 à 10:37
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004 - 21 juin 2004 à 17:26
Bonjour

Je voudrais avec vb 5 pro et winsock ou autre me connecter a AS400, voir les fichiers et les utiliser.

Merci de vos reponses.

1 réponse

carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
21 juin 2004 à 17:26
bonjour,

voilà un expemple de code qui te connecte à un AS400 sans source ODBC, et lance une requête.

une fois connecté, bon courage (la syntaxe SQL est particulièrement vicieuse !!!)

pour le reste, tu peux tout faire (ou presque), comme s'il s'agissait d'une base SQL par exemple

Public Sub SupportsX2()

'*************************************************************************
' connexion à l'As400 pour une requête UNION
'*************************************************************************

Dim Rs As New ADODB.Recordset
Dim strCnn, strsql, winto, wSelect, wFrom, wHaving, wOrder, wGroup As String
Dim intIndex As Integer
Dim Cnn As New ADODB.Connection
Dim ado400 As New ADODB.Connection
Dim adoc As New ADODB.Connection

Dim i As Integer
Dim Prop As ADODB.Property
Dim Fld As ADODB.Field


' **********************************************************************************
' CONNEXION ET RECORDSET SUR AS400
' **********************************************************************************

Set Cnn = CreateObject("ADODB.connection")
Cnn.Open "provider=IBMDA400;data source=agrosys", "", ""



strsql = " " & _
" select nartmk,mvtsmk,dtmvmk,sum(qtemk) as qte,sum(pdsmk) as poids, sum(valemk) as valeur " & _
" from agsav001.mvtstopf " & _
" where (sensmk='E' and signmk='+')" & _
" group by nartmk,mvtsmk,dtmvmk" & _
" having ((mvtsmk = 'A01' " & _ " Or mvtsmk 'FAN' Or MVTSMK 'FAS' " & _ " Or MVTSMK 'FC ' Or mvtsMK 'FD ' " & _ " Or MVTSMK 'FIT' Or MVTSMK 'FM ' " & _ " or MVTSMK 'FTR' Or MVTSMK 'RA+' " & _ " Or MVTSMK 'RA-' Or MVTSMK 'RF ') " & _
"And (DTMVMK between 20020101 and 20020501 ))" & _
" union" & _
" select nartmk,mvtsmk,dtmvmk,sum(qtemk) * (-1) as qte,sum(pdsmk) * (-1) as poids, sum(valemk) * (-1) as valeur " & _
" from agsav001.mvtstopf " & _
" where (sensmk='E' and signmk='-')" & _
" group by nartmk,mvtsmk,dtmvmk " & _
" having ((mvtsmk = 'A01' " & _ " Or mvtsmk 'FAN' Or MVTSMK 'FAS' " & _ " Or MVTSMK 'FC ' Or mvtsMK 'FD ' " & _ " Or MVTSMK 'FIT' Or MVTSMK 'FM ' " & _ " or MVTSMK 'FTR' Or MVTSMK 'RA+' " & _ " Or MVTSMK 'RA-' Or MVTSMK 'RF ') " & _
"And (DTMVMK between 20020101 and 20020501 ))"



Set Rs = CreateObject("ADODB.recordset")
Set Rs.ActiveConnection = Cnn
Debug.Print Rs.State

Rs.Open strsql
Debug.Print Rs.State



Do Until Rs.EOF
For Each Fld In Rs.Fields
Debug.Print Fld.Name & " : " & Fld.Value
Next Fld
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

' **********************************************************************************


End Sub

Colibri
0