Page 1 sur 1
[R] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 09:35
par EzioGr38
Je travaille actuellement sur un programme d'extraction de BDD en autoit
Je voudrais savoir si c'est possible d'intégrer le nombre d'enregistrement que contient le résultat de l'extraction de ma BDD
Sous cette forme par exemple : nom_fichier_XX.txt Avec XX le nombre d'enregistrement
Si c'est possible comment faire ?
Merci d'avance pour l'aide que vous m'apporterez

Re: [..] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 11:39
par Hugues
Salut,
Oui c'est tout à fait possible.
Tu récupères la valeur de ta requête qui compte ton nombre de lignes de ton extraction puis tu écris: "nom_fichier_" & $NombreDenregistrements & ".txt".
Si tu veux plus d'info, dit nous quelle genre de base tu utilises (Access, SQLite)

Re: [..] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 11:45
par Bayo
Bonjour,
Je sais pas si c'est c'est la partie SQL que tu demande ou autoit mais sinon tu fait
Code : Tout sélectionner
$sql=requête SQL
FileCreate(@ScriptDir & "\nom_fichier_" & $sql & ".txt", "Première ligne de ton fichier" & @CRLF)
Func FileCreate($sFilePath, $sString)
Local $fReturn = True ; Create a variable to store a boolean value.
If FileExists($sFilePath) = 0 Then $fReturn = FileWrite($sFilePath, $sString) = 1 ; If FileWrite returned 1 this will be True otherwise False.
Return $fReturn ; Return the boolean value of either True of False, depending on the return value of FileWrite.
EndFunc ;==>FileCreate
Je sais plus où j'ai récupéré la fonction FileCreate(), mais elle n'est pas de moi

Re: [..] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 12:02
par EzioGr38
Ma BDD est en MySql
Code : Tout sélectionner
requete = "SELECT DISTINCT maTable FROM(Equipement_modele)
WHERE 1
FileCreate(@ScriptDir & "\famille2_" & $requete & ".txt", "DIVERS" @CRLF)
;Exécution de la requête
$exec = _Query($sql, $requete)
#cs
;Résultats affichés dans un fichier texte nommé equipWindows.txt
While NOT $exec.EOF
FileWriteLine("c:\Interface\TestMySql\famille2.txt", $exec.Fields("strFamille_intitule").value)
$exec.MoveNext
WEnd
#ce
_MySQLEnd($sql)
Func FileCreate($sFilePath, $sString)
Local $fReturn = True
If FileExists($sFilePath) = 0 Then
$fReturn = FileWrite($sFilePath, $sString) = 1
Return $fReturn
EndIf
EndFunc
J'obtiens qq erreurs mais je ne vois pas ce qu'il faut rajouter :/
Merci en tout cas

Re: [..] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 12:06
par Hugues
Exemple avec une base de données SQLite:
► Afficher le texte
Code : Tout sélectionner
$Table = Nom de ta table
$Search = Ce que tu cherches
TaColonne = Le nom de ta colonne dans ta base
$aRow = Nombre de ligne retournées selon ta requête
Local $hQuery, $aRow, $sMsg, $aResult, $iRows, $iColumns
$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM " & $Table & " WHERE TaColonne = '" & $Search & "';", $aResult, $iRows, $iColumns)
;Nombre de ligne(s) contenue(s) dans la base SQLite
_SQLite_QuerySingleRow(-1, "SELECT Count(*) FROM " & $Table & " WHERE TaColonne = '" & $Search & "';", $aRow)
_FileCreate(@ScriptDir & "\nom_fichier_" & $aRow[0] & ".txt")
Re: [..] Afficher le nombre d'enregistrement en titre
Posté : jeu. 05 juin 2014 13:28
par Hugues
Un exemple un peu brut:
► Afficher le texte
Code : Tout sélectionner
#include <SQLite.au3>
#include <SQLite.dll.au3>
#include <MsgBoxConstants.au3>
#include <file.au3>
Local $aResult, $iRows, $iColumns, $iRval, $ligne1
Local $hQuery, $aRow
_SQLite_Startup()
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!")
Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; Open a :memory: database
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
Exit -1
EndIf
; Example Table
; Name | Age
; -----------------------
; Alice | 43
; Bob | 28
; Cindy | 21
If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Name, Age);") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Alice','43');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Bob','28');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy','21');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy2','21');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy2','21');") = $SQLITE_OK Then _
MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
; Query
$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM persons WHERE Age = '21';", $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
_FileCreate(@ScriptDir & "\" & $iRows & " enregistrement pour 21ans.txt")
_FileWriteFromArray($iRows & " enregistrement_pour_21ans.txt", $aResult)
Else
MsgBox($MB_SYSTEMMODAL, "SQLite Error: " & $iRval, _SQLite_ErrMsg())
EndIf
_SQLite_Close()
_SQLite_Shutdown()
Re: [..] Afficher le nombre d'enregistrement en titre
Posté : ven. 06 juin 2014 09:39
par EzioGr38
Merci pour les exemples ils me seront très utiles !!
Mais en voulant compiler ton dernier exemple, Hugues, je n'arrive pas à charger la dll (SQLite.dll.au3)
Savez-vous pourquoi?
Re: [..] Afficher le nombre d'enregistrement en titre
Posté : ven. 06 juin 2014 09:59
par Hugues
Salut,
Telecharge le dll et ensuite dans ton script tu colles (pour l'explication, je suis pas un expert, peut-être qu'un spécialiste pourra te répondre mieux que moi):
Code : Tout sélectionner
Local $sLocalSQLiteDll = @ScriptDir & "\sqlite3.dll"
Local $sSQliteDll = _SQLite_Startup($sLocalSQLiteDll, True, 1)
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "'SQLite3.dll' Can't be Loaded!")
Exit -1
EndIf