Page 1 sur 1

Requête SQL via autoit

Posté : ven. 01 mars 2019 11:07
par yohanb767
Bonjour à tous ,

j'aurai aimer envoyer une requête Sql via autoit pour afficher le résultat de cette requête

je sais qu'il faut établir la connexion avec Nom de Server,nom de la base , User, et Mdp

comme ceci
$constrim= "driver={SQL Server};server="& "monsever" &";db=" & "mabase" & ";user id=" & "monuser" & ";pwd=" & "monpdm"
$adCN = ObjCreate ("ADODB.Connection")
$adCN.Open ($constrim)
ensuite voici la requête que j'aimerai envoyer qui doit normalement me renvoyer une date
 $sQuery = "select * from fn_GetDateGarantieBySN('17000516')"
et pour terminer
$result = $adCN.Execute($sQuery)
$adCN.Close
je ne sais pas comment afficher mon résultat et avoue être un peu perdu
merci d'avance pour votre aide

Re: Requête SQL via autoit

Posté : lun. 18 mars 2019 13:50
par Barthandelus
Hello, je réponds avec un peu de retard. En espérant que ça te serve quand même.

Pour afficher les résultats, une méthode que j'utilise (ce n'est pas la plus optimisé, mais elle est adapté à mon besoin) est la suivante (cela te donnera des pistes) :

$q = $link.execute("xxxxx")

With $q
   While NOT .EOF
      ConsoleWrite(.Fields('id').value)

      .MoveNext
   WEnd
EndWith

Ici, tu effectues une boucle (équivalent de mysqli_fetch_assoc() en PHP) en utilisant .Fields('ton_champ_sql') pour obtenir la valeur. Pour les requêtes a un élément, je te conseille de le stocker dans un Objet "Scripting.Dictionary", c'est un peu un équivalent d'un tableau associatif. C'est ce que j'utilise si j'ai un traitement redondant à effectuer. Exemple :

$q = $link.execute("xxxx LIMIT 1")
$order = ObjCreate("Scripting.Dictionary")

With $q
   While NOT .EOF
      $order.Add('id', .Fields('id').value)
      $order.Add('order', .Fields('idUser').value)
      $order.Add('dateOrder', .Fields('dateOrder').value)
      $order.Add('typeOrder', .Fields('typeOrder').value)

      .MoveNext
   WEnd
EndWith

Ensuite, tu peux accéder à l'élément unique via $order.Item('ton_champ').