Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour Chers tous,
J'ai une préoccupation, je voudrais écrire une petite application qui fait le pipeline entre 2 sources de données (Access et SQL Server)
la méthode d'un objet pipeline qui lance l'intégration des données est start(trans_source,trans_destination,datawindow_erreur).
Quand je lance graphique (via l'interface PB) le pipeline, l'intégration de données se fait sans problème.
Mais par le code ce la ne se fait pas. Chose bizzare aussi c'est que je voudrais connecter mon profile DB pour access, il me donne le message suivant : Catalog tables could not be created and are not available for use mais il affiche quand même le message Connection successful
Voici la liste des déclaration
transaction SQLCA_HORIO, SQLCA_SIRH String ls_dbms String ls_dbparm1 String ls_dbparm2 String ls_autocommit String ls_pwd string ls_matricule datastore ds_error pipeline pp_integration
Création des objects de transaction
//Passage des valeurs de connexion récuperée aux propriétés de l'objet SQLCA SQLCA_SIRH = create transaction SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=SIRH;UID=sa;PWD=mdpss;DelimitIdentifier='No',MsgTerse='Yes',CallEscape=''" SQLCA_SIRH = SQLCA //affectation de l'état de la transaction SQLCA dans la transaction SQLCA_SIRH Connect using SQLCA_SIRH; If SQLCA.SQLCode <> 0 Then //MessageBox ("Erreur Base de données [SIRH], Veuillez contacter le ICT", SQLCA.SQLErrText ) else SELECT max(dbo.tbadgeages.matricule) into :ls_matricule FROM dbo.tbadgeages; MessageBox("Top Matricule", ls_matricule) end if SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = True SQLCA.DBParm = "ConnectString='DSN=HORIO'" //SQLCA_HORIO = SQLCA Connect using SQLCA; If SQLCA.SQLCode <> 0 Then MessageBox ("Erreur Base de données [HORIO], Veuillez contacter le ICT", SQLCA.SQLErrText ) else SELECT max(Badgeages.HeureBadgeagesd1) into :ls_matricule FROM Badgeagess; MessageBox("Top HBG", ls_matricule) end if
la première requete select m'affiche quelque chose, mais la deuxième affiche rien du tout
Lancement du processus d'integration de données
ds_error = create datastore pp_integration = create pipeline pp_integration.dataobject = "pp_horio_to_sirh" pp_integration.start(SQLCA_HORIO,SQLCA_SIRH,ds_error) MessageBox("Nombre de Written",string(pp_integration.RowsWritten))
Cette boîte de dialogue m'affiche toujours 0 je ne sais pas si j'ai mal construit ma deuxième transaction.
Quelqu'un pourrait m'aider.
D'avance je vous dis merci
Hors ligne
SQLCA_SIRH = create transaction SQLCA_SIRH .DBMS = "ODBC" SQLCA_SIRH .AutoCommit = False SQLCA_SIRH .DBParm = "ConnectString='DSN=SIRH;UID=sa;PWD=mdpss;DelimitIdentifier='No',MsgTerse='Yes',CallEscape=''" Connect using SQLCA_SIRH; If SQLCA_SIRH.SQLCode <> 0 Then //MessageBox ("Erreur Base de données [SIRH], Veuillez contacter le ICT", SQLCA_SIRH .SQLErrText ) else SELECT max(dbo.tbadgeages.matricule) into :ls_matricule FROM dbo.tbadgeages using SQLCA_SIRH ; MessageBox("Top Matricule", ls_matricule) end if
Hors ligne
C'est cette partie du code qui ne passe, je signale également que HORIO est une source de données ODBC pour MS Access
SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = True SQLCA.DBParm = "ConnectString='DSN=HORIO'" //SQLCA_HORIO = SQLCA Connect using SQLCA; If SQLCA.SQLCode <> 0 Then MessageBox ("Erreur Base de données [HORIO], Veuillez contacter le ICT", SQLCA.SQLErrText ) else SELECT max(Badgeages.HeureBadgeagesd1) into :ls_matricule FROM Badgeagess; MessageBox("Top HBG", ls_matricule) end if
Mais par contre cette partie marche sans problème
SQLCA_SIRH = create transaction SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=SIRH;UID=sa;PWD=mdpss;DelimitIdentifier='No',MsgTerse='Yes',CallEscape=''" SQLCA_SIRH = SQLCA //affectation de l'état de la transaction SQLCA dans la transaction SQLCA_SIRH Connect using SQLCA_SIRH; If SQLCA.SQLCode <> 0 Then //MessageBox ("Erreur Base de données [SIRH], Veuillez contacter le ICT", SQLCA.SQLErrText ) else SELECT max(dbo.tbadgeages.matricule) into :ls_matricule FROM dbo.tbadgeages; MessageBox("Top Matricule", ls_matricule) end if
Hors ligne
donc, c'est ta connection qui n'est pas bonne .
il ne manque pas de mot de passe et cie ?
Hors ligne
Pages: 1