Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMPORTATION DE CHAMPS AS400 DANS UNE BASE DE DONNÉES MYSQL AVEC LE PILOTE ODBC CLIENT ACCESS


Information sur la source

Catégorie :Base de Donnees Niveau : Débutant Date de création : 20/06/2005 Vu : 5 799

Note :
8,25 / 10 - par 4 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Ce code permet d'importer des champs d'un AS400 vers une base de données MySQL. La connexion est réalisée grace au pilote ODBC client Access (pour l'AS400) et le pilote MySQL ODBC 3.51.

NB1: Ce code est un assemblage de petits morceaux de programmes que j'ai testé d'abord séparément puis en totalité.
NB2: Il peut être largement amélioré mais c'est ma première source alors un peu d'indulgence SVP.
 

Source

  • Private Sub Form_Load()
  • 'Déclarations
  • Dim Connexion_AS400 As ADODB.Connection
  • Dim Recordset_AS400 As ADODB.Recordset
  • Dim Connexion_MYSQL As New ADODB.Connection
  • Dim Recordset_MYSQL As New ADODB.Recordset
  • Dim Code°Client As String
  • Dim Nom°Client As String
  • Dim i As Integer
  • Dim Adr_IP As String
  • Dim Nom_Base As String
  • Dim Login_Admin As String
  • Dim Password_Admin As String
  • Dim option_db As Integer
  • Adr_IP = "127.0.0.1"
  • Nom_Base = "nom base"
  • Login_Admin = "LoginAdmin"
  • Password_Admin = "PasswordAdmin"
  • option_db = 35
  • 'Connexion à l'AS400
  • Set Connexion_AS400 = CreateObject("adodb.connection")
  • Connexion_AS400.Open "provider=IBMDA400;data source=NomServeurAS400", "MonLoginAS400", "MonPasswordAS400"
  • 'Connexion à MYSQL
  • Set Connexion_MYSQL = CreateObject("adodb.connection")
  • Connexion_MYSQL.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & Adr_IP & ";DATABASE=" & Nom_Base & ";USER=" & Login_Admin & ";PASSWORD=" & Password_Admin & ";OPTION=" & option_db
  • Set Recordset_AS400 = CreateObject("ADODB.recordset")
  • Recordset_AS400.ActiveConnection = Connexion_AS400
  • Set Recordset_MYSQL = CreateObject("ADODB.recordset")
  • Recordset_MYSQL.ActiveConnection = Connexion_MYSQL
  • 'Vide la table "Clients" de MySQL
  • Recordset_MYSQL.Open "TRUNCATE TABLE Clients"
  • Requête_SQL1 = " " & _
  • " select NTCLIE,NTNOMC " & _
  • " from AQFICHII.CLIENT "
  • Recordset_AS400.Open Requête_SQL1
  • Do Until Recordset_AS400.EOF
  • i = 1
  • For Each Fld In Recordset_AS400.Fields
  • Select Case i
  • Case 1
  • Code°Client = Fld.Value
  • Case 2
  • Nom°Client = Fld.Value
  • Case Else
  • End Select
  • i = i + 1
  • Next Fld
  • 'Insertion des enregistrements dans la table Clients de MySQL
  • If Recordset_MYSQL.State = 0 Then
  • Recordset_MYSQL.Open "clients", Connexion_MYSQL, adOpenKeyset, adLockOptimistic
  • End If
  • With Recordset_MYSQL
  • .AddNew Array("Code_Client", "Nom_Client"), _
  • Array(Code°Client, Nom°Client)
  • .Update
  • End With
  • Recordset_AS400.MoveNext
  • Loop
  • Recordset_AS400.Close
  • Set Recordset_AS400 = Nothing
  • Recordset_MYSQL.Close
  • Set Recordset_MYSQL = Nothing
  • End Sub
Private Sub Form_Load()

'Déclarations
Dim Connexion_AS400 As ADODB.Connection
Dim Recordset_AS400 As ADODB.Recordset
Dim Connexion_MYSQL As New ADODB.Connection
Dim Recordset_MYSQL As New ADODB.Recordset
Dim Code°Client As String
Dim Nom°Client As String
Dim i As Integer


Dim Adr_IP As String
Dim Nom_Base As String
Dim Login_Admin As String
Dim Password_Admin As String
Dim option_db As Integer

Adr_IP = "127.0.0.1"
Nom_Base = "nom base"
Login_Admin = "LoginAdmin"
Password_Admin = "PasswordAdmin"
option_db = 35


'Connexion à l'AS400
Set Connexion_AS400 = CreateObject("adodb.connection")
Connexion_AS400.Open "provider=IBMDA400;data source=NomServeurAS400", "MonLoginAS400", "MonPasswordAS400"

'Connexion à MYSQL
Set Connexion_MYSQL = CreateObject("adodb.connection")
Connexion_MYSQL.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & Adr_IP & ";DATABASE=" & Nom_Base & ";USER=" & Login_Admin & ";PASSWORD=" & Password_Admin & ";OPTION=" & option_db

Set Recordset_AS400 = CreateObject("ADODB.recordset")
Recordset_AS400.ActiveConnection = Connexion_AS400

Set Recordset_MYSQL = CreateObject("ADODB.recordset")
Recordset_MYSQL.ActiveConnection = Connexion_MYSQL

'Vide la table "Clients" de MySQL
Recordset_MYSQL.Open "TRUNCATE TABLE Clients"

Requête_SQL1 = " " & _
" select NTCLIE,NTNOMC " & _
" from AQFICHII.CLIENT "

Recordset_AS400.Open Requête_SQL1
Do Until Recordset_AS400.EOF
i = 1
For Each Fld In Recordset_AS400.Fields
Select Case i
Case 1
Code°Client = Fld.Value
Case 2
Nom°Client = Fld.Value
Case Else
End Select
i = i + 1
Next Fld

'Insertion des enregistrements dans la table Clients de MySQL
If Recordset_MYSQL.State = 0 Then
Recordset_MYSQL.Open "clients", Connexion_MYSQL, adOpenKeyset, adLockOptimistic
End If

With Recordset_MYSQL
.AddNew Array("Code_Client", "Nom_Client"), _
Array(Code°Client, Nom°Client)
.Update
End With

Recordset_AS400.MoveNext
Loop
Recordset_AS400.Close
Set Recordset_AS400 = Nothing
Recordset_MYSQL.Close
Set Recordset_MYSQL = Nothing

End Sub

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,19 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.