|
[Résolu] Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 08/01/2009 15:34
Post(s): 10
|
Bonjour, je suis tout nouveau ici et cela est surtout dû parce que d'habitude je ne développe pas en Windev. J'ai actuellement un stage a effectuer et on ne m'a jamais appris à coder sur ce logiciel en cours. Pourriez vous m'aider s'il vous plaît voici mon problème : Voilà, je dois créer une application sous windev 11 (jamais testé avant) qui dois permettre à l'entreprise dans laquelle je suis en stage de transférer leur données d'une application nommée SAGE (Base de données sous SQL Server 2000) à leur site E-commerce (boutique en ligne). Mon application Windev doit faire l'intermédiaire. J'ai déjà tout essayer mais je n'arrive même pas à relier SQL Server 2000 à Windev !! Enfin avec l'assistant tout ce passe très bien même en aperçu quand je veux afficher une table ou le résultat d'une requête mais dès que j'exécute mon application rien ne s'affiche !! Avec le code c'est la même chose ! Je n'ai pas d'erreurs dedans mais rien ne s'affiche ! Ma connexion est en ODBC étant donnée que je ne possède pas de Natif Windev 11 !! QUELQU'UN POURRAIT IL M'AIDER PAR PITIÉ ???????!!! Si quelqu'un peu m'aider je lui en serais vraiment très reconnaissant. Si l'on peut me conseiller sur le choix de la connexion etc... je vais recommencer le projet je n'en suis pas bien loin de toute façon. En espérant avoir quelqu'un qui comprendra mieux que moi, ++ Voici mon code : // Ouverture de la connexion à la base de données
cnxConnexSQLServer est une Connexion
SI OuvreConnexion("ConnexSQLServer","test","test","SRVDC","BASETEST",hOledbSQLServer,hOLectureEcriture ) = Faux ALORS
Erreur("Connexion impossible : " + HErreurInfo())
RETOUR
FIN
//Déclaration de la variable F_ARTICLE
//F_ARTICLE est une source de données
//Indiquer que "F_ARTICLE" utilise la nouvelle connexion //Si HChangeConnexion("F_ARTICLE", "ConnexionSQLServer") = faux ALORS
//Erreur("Impossible de parcourir la table :" + HErreurInfo())
//RETOUR
//FIN ReqArticle est une Source de Données
// Initialisation de la requête "Article"
SI HExécuteRequêteSQL(ReqArticle,"SELECT AR_Ref FROM F_ARTICLE") = Faux ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN
Info("tata")
HLitPremier(F_ARTICLE)
Info("tata")
SI ReqArticle = Vrai ALORS
// Traitement sur l'enregistrement de la requête
// Accès aux rubriques par ReqArticle.<Nom rubrique>
...
// lecture de l'enregistrement suivant
Info("tata") HLitRecherchePremier(F_ARTICLE,"AR_Ref","3C16593")
TANTQUE HTrouve(F_ARTICLE) = Vrai
// Insérez votre traitement ici
ListeAjoute(COMBO_Combo1,"tata")
HLitSuivant(F_ARTICLE,"")
FIN
FIN
// Ferme le fichier : la connexion utilisée par le fichier F_ARTICLE
// a été ouverte par HOuvreConnexion. Elle ne sera pas fermée
// lors de la fermeture du fichier F_ARTICLE.
HFerme("F_ARTICLE")
// Fermer la connexion HFermeConnexion("ConnexionSQLServer")
Si il est incohérent n'hésitez pas je débute vraiment ^^ Tout est bon à prendre ! PS : Je lie un schéma en image qui pourrait vous éclairer sur ma situation.
Attacher un fichier: Projet.JPG (63.97 KB)
Contribution le : 08/01/2009 16:12
Edité par Onizuka sur 8/1/2009 16:34:41 Edité par Onizuka sur 8/1/2009 16:36:00 Edité par Onizuka sur 8/1/2009 16:39:03 Edité par Onizuka sur 8/1/2009 16:41:47 Edité par Onizuka sur 8/1/2009 16:45:37 Edité par Onizuka sur 8/1/2009 16:46:38 Edité par drcharly93 sur 13/1/2009 11:05:46
|
_________________
Onizuka Eikichi, 22 ans, célibataire et libre comme l'air ! Pour vous servir, GREAT
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 22/11/2004 08:28
De Voiron
Post(s): 33
|
à premier vue, il manque un houvre("F_ARTICLE") ou hcreationsiinexistant("F_ARTICLE") après le houvreconnexion
Contribution le : 09/01/2009 07:05
|
_________________
et voilou, pitou
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 22/11/2004 08:28
De Voiron
Post(s): 33
|
ensuite avant le houvre() il faut aussi un hchangeconnexion() pour être sur que le fichier est ouvert sur la connexion que tu viens d'ouvrir.
Contribution le : 09/01/2009 07:07
|
_________________
et voilou, pitou
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 08/01/2009 15:34
Post(s): 10
|
Bonjour pitou et encore merci de m'avoir répondu. J'ai fais ce que tu m'as dis : J'ai rajouté un HChangeConnexion sous le HOuvreConnexion puis j'ai rajouté le HOuvre encore en dessous. Comme ceci : cnxConnexSQLServer est une Connexion SI HOuvreConnexion("ConnexSQLServer","test","test","SRVDC","BASETEST",hOledbSQLServer,hOLectureEcriture ) = Faux ALORS Erreur("Connexion impossible : " + HErreurInfo()) RETOUR FIN // Indiquer que "F_ARTICLE" utilise la nouvelle connexion HChangeConnexion(F_ARTICLE, MaConnexionSQLServer) // Création du fichier F_ARTICLE (décrit dans l'analyse) //HCréationSiInexistant("F_ARTICLE") // Test du compte rendu de la fonction HOuvre SI PAS HOuvre(F_ARTICLE,"",hOLecture) ALORS Erreur("Impossible d'ouvrir le fichier CLIENT"+HErreurInfo()) FIN Voilà, après au niveau du nom de la connexion je suis un peu perdu car cnxConnexSQLServer c'est moi qui l'ai déclaré mais MaConnexionSQLServer je l'avais en paramètre car c'est ce que j'ai crée lors de la création du projet. Enfin bref cela fonctionne mais si tu peux m'éclairer. Et quand je dis cela fonctionne, pas entièrement... Tu a pu remarqué qu'après j'ai inséré des Info("tata") n'est ce pas ? Et bien les 2 premiers s'affichent sur le clic du bouton mais pas le troisème ! Il n'arrive pas à rentrer dans cette partie : SI ReqArticle = Vrai ALORS
// Traitement sur l'enregistrement de la requête
// Accès aux rubriques par ReqArticle.<Nom rubrique>
...
// lecture de l'enregistrement suivant Info("tata")
HLitRecherchePremier(F_ARTICLE,"AR_Ref","3C16593")
TANTQUE HTrouve(F_ARTICLE) = Vrai
// Insérez votre traitement ici
ListeAjoute(COMBO_Combo1,"tata")HLitSuivant(F_ARTICLE,"")
FIN
FIN
Peux tu m'expliquer pourquoi cela bloque ? Je n'ai pas d'erreur lors de l'exécution en plus ! Merci bien, Onizuka.
Contribution le : 09/01/2009 09:13
|
_________________
Onizuka Eikichi, 22 ans, célibataire et libre comme l'air ! Pour vous servir, GREAT
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 22/11/2004 08:28
De Voiron
Post(s): 33
|
ok,
// a) tu déclares une connection : cnxConnexSQLServer est une Connexion cnxConnexSQLServer..Utilisateur="ton_utilisateur" cnxConnexSQLServer..Motdepasse="ton_mot_de_passe" cnxConnexSQLServer..Serveur="SRVDC" cnxConnexSQLServer..Accès=hOlectureEcriture cnxConnexSQLServer..Dasededonnées="BASETEST" cnxConnexSQLServer..Provider=hOLEDBSQlServer
// b) tu te connectes (pas de " devant et // derriere cnxConnexSQLServer SI HOuvreConnexion(cnxConnexSQLServer) = Faux ALORS Erreur("Connexion impossible : " + HErreurInfo()) RETOUR FIN
// c) tu change la connexion des fichiers // et tu ouvres le fichier hChangeConnexion("*",cnxConnexSQLServer) houvre(F_ARTICLE)
//d) Initialisation de la requête ReqArticle SI HExécuteRequêteSQL(ReqArticle,"SELECT AR_Ref FROM F_ARTICLE") = Faux ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()) RETOUR FIN
// e) parcours des données // tu travailles maintenant sur ReqArticle // et non plus sur le fichier F_ARTICLE HLitRecherchePremier(ReqArticle,"AR_Ref","3C16593") TANTQUE HTrouve(F_ReqArticle) = Vrai // Insérez votre traitement ici ListeAjoute(COMBO_Combo1,"tata") HLitSuivant(ReqArticle,"") FIN
// f) fermeture fichier et connexion hferme(F_ARTICLE) hferme(cnxConnexSQLServer)
Contribution le : 09/01/2009 09:45
|
_________________
et voilou, pitou
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 08/01/2009 15:34
Post(s): 10
|
Bon j'ai bien suivi tout ce que tu as écrit mais que représente F_ReqArticle ? Je veux dire je dois le déclarer en quoi ? Désolé, vraiment je fais le newbi Et je croi s que la dernière ligne c'est HFermeConnexion qu'il faut mettre non ? Merci à toi ! Edit : lors du lancement du programme j'ai un message d'erreur qui me dit : Erreur d'initialisation de la requête Erreur de l'accès OLE DB Numéro d'erreur = 170129 Échec de l'ouverture du fichier Détails de l'erreur sysrème : Description = "F_ARTICLE" : nom d'objet incorrect Source = Microsoft OLE DB Provider for SQL Server Error number = -2147217865 Native error number = 208
Contribution le : 09/01/2009 10:19
Edité par Onizuka sur 9/1/2009 10:36:47 Edité par Onizuka sur 9/1/2009 10:37:18
|
_________________
Onizuka Eikichi, 22 ans, célibataire et libre comme l'air ! Pour vous servir, GREAT
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 22/11/2004 08:28
De Voiron
Post(s): 33
|
mais que représente F_ReqArticle ? : erreur de recopie : c'est ReqArticle
et c'est effectivement hfermeconnexion et pas hferme pour la derniere ligne
Contribution le : 09/01/2009 11:42
|
_________________
et voilou, pitou
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 22/11/2004 08:28
De Voiron
Post(s): 33
|
je me demande, car je n'ai jamais utilisé SQL serveur 2000), si le houvre(F_ARTICLE) et le Hferme(F_ARTICLE) est necessaire. je ne sais pas ...
Contribution le : 09/01/2009 11:51
|
_________________
et voilou, pitou
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour Unizuka, Voilà la technique que j'utilise 1 - les paramètres de connexion tous les paramètres de connexion sont stockés dans un fichier ini. Cet technique facilite la portabilité de l'application, puisqu'il n'y aura pas besoin de recompiler l'application avec les nouveaux paramètres puisqu'ils seront enregistrés dans un fichier ini : <Nom de l'application>.ini2 - Chargement des paramètres de connexion dans la déclaration globale de mon application je créer une structure permettant de manipuler mes paramètres Au début de l'application création d"une structure adaptée
//Initialisation de <MonProjet>
StructureCnx est une Structure
NumConnexion est un entier
NomSource est une chaîne
Utilisateur est une chaîne
MotDePasse est une chaîne
NomDataBase est une chaîne
TypeBase est une chaîne
Provider est une chaîne
Infos est une chaîne
FIN
gstCnx est une StructureCnx
Ensuite je créer une procédure pour charger les paramètres de connexion
PROCEDURE proLectureFichierIni()
sFichierIni est une chaîne
sFichierIni = ComplèteRep(fRepExe()) + ProjetInfo(piNomProjet) + ".ini"
gstCnx:NomSource = INILit("Connexion","NomSource","",sFichierIni)
SI gstCnx:NomSource = "" ALORS INIEcrit("Connection","NomSource","",sFichierIni)
gstCnx:Utilisateur = INILit("Connexion","Utilisateur","",sFichierIni)
SI gstCnx:Utilisateur = "" ALORS INIEcrit("Connexion","Utilisateur","",sFichierIni)
gstCnx:MotDePasse = INILit("Connexion","MotDePasse","",sFichierIni)
SI gstCnx:MotDePasse = "" ALORS INIEcrit("Connexion","MotDePasse","",sFichierIni)
gstCnx:NomDataBase= INILit("Connexion","NomDataBase","",sFichierIni)
SI gstCnx:NomDataBase = "" ALORS INIEcrit("Connexion","NomDataBase","",sFichierIni)
gstCnx:TypeBase = INILit("Connexion","TypeBase","",sFichierIni)
SI gstCnx:TypeBase = "" ALORS INIEcrit("Connexion","TypeBase","",sFichierIni)
gstCnx:Provider = INILit("Connexion","PROVIDER","",sFichierIni)
SI gstCnx:Provider = "" ALORS INIEcrit("Connexion","Provider","ODBC",sFichierIni)
Je créer ensuite une procédure proConnexionFerme
PROCEDURE ConnexionFerme()
SQLDéconnecte()
Puis une procédure proConnexionOuvre
PROCEDURE ConnexionOuvre()
gstCnx:NumConnexion = SQLConnecte( gstCnx:NomSource, gstCnx:Utilisateur, gstCnx:MotDePasse, gstCnx:NomDataBase, gstCnx:TypeBase, gstCnx:Provider, gstCnx:Infos )
SI gstCnx:NumConnexion = 0 ALORS
SQLInfoGene()
Erreur(SQL.Erreur + RC + SQL.MesErreur)
RENVOYER Faux
FIN
RENVOYER Vrai
Exemple de paramètre à une base SQLServeur Citation : [Connexion] Rem Nom du serveur NomSource=TSE Rem Nom de l'Utilisateur Utilisateur=sa Rem Mot de passe MotDePasse=MotDePasse Rem Nom de la base de donnees dans SQLServer NomDataBase=WDFORGE_SQL Rem OLEDB acces OLEDB TypeBase=OLEDB Rem SQLOLEDB nom du provider dans WinDev Provider=SQLOLEDB
Exemple de code avec exécution de code SQL et parcours
sSql est une Chaine
Rs est une surce de donnees
//Connexion à la base
SI PAS proConnexionOuvre() Alors
SqlInfoGene( gstCnx:NomSource )
Erreur( Sql.MesErreur )
Renvoyer Faux)
Fin
sSql = "SELECT RE_No, RE_Nom FROM F_REPRESEN"
//Exécution de la requête
SI PAS SQLExec( sSql, "Rs" ) ALORS
SQLInfoGene( "Rs" )
Erreur( "Erreur dans la requete : " + Sql , Sql.MesErreur )
RENVOYER Faux
FIN
//Chargement de la requête
SQLPremier( Rs ) //Très important
SI Sql.NbLig = 0 ALORS //Récupère le nombre de ligne
RENVOYER Faux
FIN
//Parcours des enregistrements
TANTQUE PAS SQL.EnDehors
//SQLCol( Rs, 1 ) //Récupère la colonne1 : RE_No
//SQLCol( Rs, 2 ) //Récupère la colonne2 : RE_Nom
SQLSuivant( Rs )
FIN
proConnexioFerme()
Code saisie à la volée pouvant contenir des erreurs
Contribution le : 11/01/2009 16:38
|
|
|
Re: Connexion SQL Server 2000 & WinDev 11 |
|
Stagiaire WDF
Inscrit: 08/01/2009 15:34
Post(s): 10
|
Tout d'abord, merci à vous deux pour tant de réponses précises et claires. J'ai toute fois réussi ma connexion dans le weekend et réussi a afficher ce que je désirais ! Néanmoins je risque de repasser par ce forum car mon application n'est vraiment pas terminée ! Encore merci pour cette aide précieuse et je vous laisse le code que j'utilise sur le clic du bouton : cnxCnx est une Connexion
ReqClient est une Source de Données
SI PAS HDécritConnexion(cnxCnx, "test", "test", "SRVDC", "BASETEST", hOledbSQLServer, hOLectureEcriture) ALORS
Info(HErreurInfo())
SINON
// Ouverture de la connexion
HOuvreConnexion(cnxCnx)
// Exécution de la requête
SI HExécuteRequêteSQL(ReqClient, cnxCnx, hRequêteSansCorrection, "SELECT AR_Ref FROM F_ARTICLE") ALORS
// Parcours du résultat HLitPremier(ReqClient)
TANTQUE HTrouve(ReqClient)
ListeAjoute(COMBO_Article, ReqClient.AR_Ref)
HLitSuivant(ReqClient)
FIN
SINON
Info(HErreurInfo())
FIN
FIN
Contribution le : 12/01/2009 10:12
|
_________________
Onizuka Eikichi, 22 ans, célibataire et libre comme l'air ! Pour vous servir, GREAT
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|