Requête SQL via autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Requête SQL via autoit

#1

Message 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
Avatar du membre
Barthandelus
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

Re: Requête SQL via autoit

#2

Message 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').
Répondre