[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:



jpg  Projet.JPG (63.97 KB)
3582_496617fe5f672.jpg 1123X615 px

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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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>.ini

2 - 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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2