Aide et conseils concernant AutoIt et ses outils.
VoLCoM20
Niveau 1
Messages : 4 Enregistré le : lun. 23 févr. 2015 21:05
Status :
Hors ligne
#1
Message
par VoLCoM20 » lun. 23 févr. 2015 21:54
Bonjour,
Je cherche à récupérer un résultat d'une requête SQL. J'ai déjà réussi à faire fonctionner ce code mais l'à rien ne fonctionne. C'est pourtant si simple, mais j'ai vraiment besoin de votre aide.
Code : Tout sélectionner
$constrim="DRIVER={SQL Server};SERVER=***;DATABASE=***;uid=***;pwd=***;"
$adCN = ObjCreate ("ADODB.Connection")
$adCN.Open ($constrim)
if @error Then
MsgBox(0, "ERROR", "Failed to connect to the database")
Exit
Else
MsgBox(0, "Success!", "Connection to database successful!")
EndIf
$sQuery = "SELECT ProjctID, ShortProjectName, ResponsibleID, PLastName, PFirstName, CUSTNAME FROM ... WHERE ProjctID = '110'"
$result = $adCN.Execute($sQuery)
MsgBox(0, "", $result.Fields("PFirstName").Value)
$adCN.Close
Message d'erreur :
Merci pour votre aide !
Modifié en dernier par
VoLCoM20 le sam. 28 févr. 2015 14:23, modifié 1 fois.
jchd
AutoIt MVPs (MVP)
Messages : 2273 Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status :
Hors ligne
#2
Message
par jchd » lun. 23 févr. 2015 22:58
Est-ce ProjctID = '110' ou ProjctID = 110 ou ProjectID = '110' ou ProjectID = 110 ?
Sinon, remplace
$result = $adCN.Execute($sQuery)
par
$result = $adCN.Open($sQuery)
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
VoLCoM20
Niveau 1
Messages : 4 Enregistré le : lun. 23 févr. 2015 21:05
Status :
Hors ligne
#3
Message
par VoLCoM20 » mar. 24 févr. 2015 18:36
C'est bien ProjctID = '110'
Le remplacement pour : $result = $adCN.Open($sQuery) ne fonctionne pas.
Merci.
jchd
AutoIt MVPs (MVP)
Messages : 2273 Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status :
Hors ligne
#4
Message
par jchd » mar. 24 févr. 2015 22:57
Utiliser un gestionnaire d'erreur COM. Le test If @error ne marche pas sur un objet.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
VoLCoM20
Niveau 1
Messages : 4 Enregistré le : lun. 23 févr. 2015 21:05
Status :
Hors ligne
#5
Message
par VoLCoM20 » mer. 25 févr. 2015 14:57
Avec les erreurs COM, j'obtient le même résultat.
Sinon, il y a une autre façon de faire une requête SQL ?
Merci.
VoLCoM20
Niveau 1
Messages : 4 Enregistré le : lun. 23 févr. 2015 21:05
Status :
Hors ligne
#6
Message
par VoLCoM20 » mer. 25 févr. 2015 15:20
Problème réglé !
Je vous confirme que le code fonctionne. Le problème était dans la requête.
Merci
jguinch
Modérateur
Messages : 2511 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#7
Message
par jguinch » mer. 25 févr. 2015 17:19
Si le problème est résolu, merci de passer le titre du premier message en [R]
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Jerome
Niveau 9
Messages : 661 Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status :
Hors ligne
#8
Message
par Jerome » ven. 27 févr. 2015 14:15
Coucou,
Je pense que cet UDF, présent sur le site anglais d'autoit, et que j'ai beaucoup utilisé, vous aidera
Exemple :
► Afficher le texte
Code : Tout sélectionner
$oADODB = _SQL_Startup()
If $oADODB = $SQL_ERROR then
exit
EndIf
If _sql_Connect(-1,"Server/ip","database","login","pass") = $SQL_ERROR then
_SQL_Close()
Exit
EndIf
Local $aData,$iRows,$iColumns
$sql_query = _SQL_GetTable2D(-1,"SELECT * FROM data",$aData,$iRows,$iColumns)
$LieuString = ""
For $i = 1 to UBound($aData) - 1 ; stock des infos dans la listview provenant de la requete de select.
;script
Next
$requete = "INSERT INTO haha VALUES ('ho')"
If _SQL_Execute(-1, $requete) = $SQL_ERROR then
$err = _SQL_GetErrMsg()
EndIf
_SQL_Close()
Jérôme
Fichiers joints
SQL.au3
(32.94 Kio) Téléchargé 78 fois