Login mot de passe
 
Menu Principal
Soutenir SQLManagerX
Certains nous ont demandés comment nous aider voici un lien pour nous soutenir


SQLManagerX
Dossiers
Accès SQLManagerX
Découvrez



SQLManagerX Pro


Qui est en ligne
2 utilisateur(s) en ligne (dont 1 sur forum)

Membre(s): 0
Invité(s): 2

plus...
Partenaires

http://www.TeeCod.fr
TeeCod


http://www.microsystem.fr
Microsystem


http://www.dag-system.fr/?lang=fr#
DAG SYSTEM


forum - Tous les messages
   Tous les messages

 Bas   Précédent   Suivant

(1) 2 3 4 ... 439 »


#1 Re: sqlserver et gestion du case dans une requête
gnou71 Posté le : 1/23 11:22
bonjour.
quelle efficacité.

C'est exactement cela!
merci beaucoup


#2 Re: sqlserver et gestion du case dans une requête
Firetox Posté le : 1/23 11:12
Bonjour,

d'apres ce que vous dites je ne vois qu'un probleme de CAST c'est a dire que les valeur sont packées sous SQLserveur et voila pourquoi le resultat n'est pas correcte

sur SQLserver il faut parfois suivant le type de colonne CASTER le resultat pour avoir le bon resultat (ce que font SSMS par defaut a l'affichage)

avez vous une valeur FLOAT quelque part ?
sinon il faudrait avoir quelque chose comme ca dans votre reqquete


case article.ARCTEXPU
when 
'C' then CONVERT(float,((stdeplot.DPCNSTOPHY article.ARCNPMP) /100 ),0)
when 'M' then CONVERT(float,((stdeplot.DPCNSTOPHY article.ARCNPMP) / 1000),0)
else 
CONVERT(float,(stdeplot.DPCNSTOPHY article.ARCNPMP),0end as R_Valeur_Stock_PMP


je sais que dans SQLManagerX j'ai du mettre en place cela car sur les float et date SQLserveur renvoyait par la dll en ADO (msSQL4WD.dll) la partie packée et non clair


#3 sqlserver et gestion du case dans une requête
gnou71 Posté le : 1/23 10:47
bonjour

auparavant j'utilisais l'accès firebird

sur une requête.
dans mon select j'avais :

Citation :
case article.ARCTEXPU
when 'C' then ((stdeplot.DPCNSTOPHY * article.ARCNPMP) /100 )
when 'M' then ((stdeplot.DPCNSTOPHY * article.ARCNPMP) / 1000)
else (stdeplot.DPCNSTOPHY * article.ARCNPMP) end as R_Valeur_Stock_PMP


qui me renvoyait une valeur.

depuis que j'ai changé de base de donnée (sqlserver 2012), j'utilise donc l'accès sqlserver.
mon code n'a pour ainsi dire pas changé (seule la connexion).

mais maintenant dans mon appli windev cet ordre me renvoie des valeurs farfelues.

si j’exécute la même requête dans un requeteur maison ou depuis SSMS.
tout est ok.

j'en déduis donc que j'ai raté qqch avec l'utilisation de cette classe.
une piste ?
merci.


#4 Re: Windev mobile 20 et mysql alwaysdata
oramine Posté le : 1/11 8:59
Merci Beaucoup.


#5 Re: Windev mobile 20 et mysql alwaysdata
Firetox Posté le : 1/10 14:20
bonjour,

donc tout marche correctement.
maintenant votre probleme est purement developpement windev
voici le code que vous cherchez mais je vous engage a faire l'autoformation de windev

soient les champs de la fenetre SAI_IDPROD et SAI_LIBEPROD
pour construire la requete il faut integrer ces champs dans la requetes pour l'id c'est un numerique donc par entre quote et le libelle etant une chaine dans la base de données il faudra lui mettre les quote et faire un escape des caractere speciaux


VRrequeteInsert est une chaîne
="insert INTO PRODUIT ( `IDProduit`,`LibelleProduit`)  VALUES (%1,%2)"
VRrequeteInsert chaineConstruit(VRrequeteInsert,SAI_IDPRODUIT,MonAcces:mySQLEscapeString(SAI_LIBEPROD))

SI MonAcces:mySQLExec(VRrequeteInsert,2ALORS 
    ToastAffiche
("ok"
SINON 
    Erreur
(MonAcces:ErreurText
FIN

la commande MonAcces:MySQLEscapeString var remplacer les caracteres speciaux (antislache, apostrophe, quote etc...) pour que cela soit accepté par la base et renvoie la chaine entre quote (exemple : 'produit6')

voila


#6 Re: Windev mobile 20 et mysql alwaysdata
oramine Posté le : 1/10 13:50
VRrequeteInsert est une chaîne="insert INTO PRODUIT ( `IDProduit`,`LibelleProduit`) VALUES (6,'Produit6')"
SI MonAcces:mySQLExec(VRrequeteInsert,2) ALORS
ToastAffiche("ok")
SINON
Erreur(MonAcces:ErreurText)
FIN


elle marche bien mais quand je change
VALUES (6,'Produit6') par des champs dans la fenetre l'enrgistrement ne se fait pas :
VALUES (Num_Produit,Sai_LIB_Produit)


#7 Re: Windev mobile 20 et mysql alwaysdata
Firetox Posté le : 1/9 16:13
bonjour


SI MonAcces
:mySQLExec("insert INTO PRODUIT `IDProduit`,`LibelleProduit`, VALUES ("+"1"+","+"Produit3"+")",2ALORS
ToastAffiche
("ok")
SINON
Erreur
(MonAcces:ErreurText)
FIN


essayez plutot

SI MonAcces
:mySQLExec("insert INTO PRODUIT `IDProduit`,`LibelleProduit`, VALUES (1,'Produit3')",2ALORS
ToastAffiche
("ok")
SINON
Erreur
(MonAcces:ErreurText)
FIN


pour voir car si MySQLexec renvoie vrai alors normalement la requete a bien ete executé peut etre un probleme au niveau de la rquete insert


#8 Re: Windev mobile 20 et mysql alwaysdata
oramine Posté le : 1/9 15:21
ça a bien marché, mais pourquoi l'insertion ne marche pas?
j'ai essayer cet exemple:
SI MonAcces:mySQLExec("insert INTO PRODUIT `IDProduit`,`LibelleProduit`, VALUES ("+"1"+","+"Produit3"+")",2) ALORS
ToastAffiche("ok")
SINON
Erreur(MonAcces:ErreurText)
FIN

il m'affiche un ok, mais apres quuand je retourne a ma base je trouve pas le produit ajouter!!!


#9 Re: Windev mobile 20 et mysql alwaysdata
Firetox Posté le : 1/7 21:22
oui rien de tres special la dedans il n'y a pas de port special donc la connexion se fait sur le port standard mySQL

avez vous essayez avec PDO en apportant les modif dans le fichier php4WD.php au niveau de la partie test (mon dernier message) ?


#10 Re: Windev mobile 20 et mysql alwaysdata
oramine Posté le : 1/7 20:24
Merci pour la réponse,
bon voila je t'envoie mes variables de connexion sur le fichier connect.php
$serv = 'mysql-oramine.alwaysdata.net';
$user = 'compte';
$pass = 'motsdepasse';
$base = 'oramine_bdd';



 Haut
(1) 2 3 4 ... 439 »




Copyright: © 2004 By SQLManagerX
WinDev©, WebDev© et HyperFile© sont des marques déposées par PCSoft.
By Firetox
IMAGO:THEMES Theme Design by IMAGO DESIGN CORP.