stopsoftwarepatents.eu petition banner

AutoIt Français

Communauté Francophone AutoIt
* Connexion   * M’enregistrer

Heures au format UTC + 1 heure


Règles du forum

Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 
Auteur Message
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier

Dernier message
Sujet du message: [Tuto] Base de données avec ADO, ADOX, DataLinks.
MessagePosté: Mar 28 Avr 2009 12:29 

Présentation.

L'utilisation de bases de données relationnelles est de plus en plus courantes de nos jours dans divers domaines tels que:
Les projets et programmes d'entreprise souvent client-serveur, des sites web dynamiques (le plus courant Apache, PHP et MySQL), etc....

Mais revenons au sujet qui nous intéresse ici. L'utilisation de bases de données avec AutoIt.
Cependant avant de rentrer dans le vif du sujet il conviendra pour le néophyte de se familiariser un minimum avec un autre langage le SQL qui est le moyen d'interroger tout type de bases de données, puisqu'il est normalisé (plus ou moins suivant le moteur de la base utilisé).
Pour cela je vous recommande de faire de ces pages votre nouveau livre de chevet !!! à consulter bien sûr en ligne a cette adresse:
http://sqlpro.developpez.com/
Citation
Le langage SQL (Structured Query Language) de A à Z pour le débutant comme pour le pro... avec ses forums associés, de nombreux exemples et des exercices.
SQLpro est le site web n°1 en langue française pour apprendre le langage SQL et les SGBD relationnels.
Ce site constitue un véritable tutoriel sur la norme SQL et les différents dialectes SQL pour MySQL, Microsoft SQL Server (Transact SQL), Oracle(PL/SQL), BM DB2 (SQL PL), PostGreSQL (PG PL/SQL), InterBase/FireBird, Access, Sybase...
Des articles et des cours spécialisés (l'indexation, l'optimisation des requêtes, l'indexation textuelle, SQL récursif et la gestion d'arbres, la division relationnelle, les techniques des SGBD relationnels...)
SQLpro, c'est un véritable guide d'apprentissage et d'auto-formation au langage SQL et aux SGBDR


Avant de commencer tout projet, il faut déjà bien réfléchir à la structure de la base de données. En d'autres termes comment organiser nos données dans divers tables, quelles relations sont à mettre en place entre les tables (la meilleure façon pour limiter au maximum la redondance des données). Une fois cette première analyse effectuée on pourra aussi réfléchir à la façon d'optimiser la base de données pour les recherches et requêtes les plus utilisées, en un mot la création de nos index.

Pour la suite de cet exposé, je vais vous montrer ma façon d'utiliser les bases de données au travers de l'objet COM ADODB de Microsoft disponible sur tout les systèmes Windows, lieu (et le seul) de prédilection de notre grand ami qui nous réunis ici AUTOIT.

Donc la bibliothèque ADO, nous fournis l'ensemble des moyens uniformisé pour interagir avec un grand nombre de bases de données qui dispose d'un drivers ODBC. Vous pouvez vérifier par vous même l'ensemble des drivers disponible sur votre machine dans le panneau de configuration avec l'outil sources de données ODBC. D'autres bases dispose également en téléchargement de pilotes ODBC, je veux penser à MySQL par exemple.

Citation
Modèle de base de programmation ADO
ADO vous permet d'effectuer la séquence d'actions suivante :
    - Vous connecter à une source de données. Vous pouvez, si vous le souhaitez, vous assurer que toutes les modifications apportées à la source de données sont prises en compte ou non.
    - Spécifier une commande vous donnant accès à la source de données, en ajoutant des paramètres variables ou en optimisant l'efficacité de la commande, si vous le souhaitez.
    - Exécuter la commande.
    - Si la commande renvoie des données sous la forme de lignes dans une table, vous pouvez stocker ces dernières en mémoire cache afin de les examiner, de les manipuler ou de les modifier.
    - En fonction de vos besoins, mettre à jour la source de données en y intégrant les lignes modifiées stockées en mémoire cache.
    - Détecter des erreurs (résultant généralement de l'établissement d'une connexion ou de l'exécution d'une commande).

Généralement, toutes ces étapes seront appliquées dans le modèle de programmation. Il convient pourtant de spécifier qu'ADO est suffisamment souple pour vous permettre d'effectuer des opérations utiles en n'exécutant qu'une partie du modèle. Par exemple, vous pouvez stocker les données d'un fichier directement dans un cache de lignes, puis faire appel aux ressources d'ADO pour les examiner.


Petit rappel nous allons utilisé des objets, chaque objet dispose de méthodes, propriétés (certaines en lecture seule) et de collections.
Les méthodes, correspondes à des fonction propres a l'objet que nous allons appeler.
$objet.Methode1($param1, $param2) ou si la méthode renvoie un résultat $resultat = $objet.Methode1($param1, $param2)

les propriétés, nous renvoie ou nous permettent de modifier le comportement de l'objet
$propriete1 = $objet.Propriete1, ou $objet.Propriete1 = $propriete1

les collections, nous renvoie une collection d'objet enfants par exemple une table contient une collection de champ que l'on parcours ensuite.
Code
For $field In $oRS.Fileds
    ;;;; ici on pourra traiter l'objet field (champ) de la collection fields (les champs) d'une table
    $field.Name
Next

ou
Dans ce cas j'utilise la propriété Count (compte/nombre de) de la collection Fields
Code
For $i = 0 To $oRS.Fields.Count - 1
    $oRS.Fields($i).Name
Next

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données
MessagePosté: Mar 28 Avr 2009 12:31 

Le premier objet, que nous allons abordé dans ce tuto la connexion à une source de donnée.
Comme expliqué plus haut ADO nous permet de nous connecter à diverses source de données au travers d'un fournisseur (Provider) d'accès.
pour créer cet objet rien de plus simple: $oConn = ObjCreate("ADODB.Connection").
Ensuite on va jour sur les propriété de l'objet pour ouvrir la connexion à notre source. J'ai créer une fonction pour nous facilité cette tâche.
Code

Global Const $adoProvider = "Microsoft.Jet.OLEDB.4.0"

Func _ADO_Open($base, $driver = "", $serveur = "", $user = "", $pwd = "")
    Local $oConn = ObjCreate("ADODB.Connection")
    With $oConn
        Switch StringLower($driver)
            Case "excel"
                .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};Dbq=" & $base
                .Open
            Case "text"
                .ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & $base & ";Extensions=tab;Extended Properties=TEXT"
                .Open
            Case "mssql"
                .ConnectionString = "driver={SQL Server};server=" & $serveur & ";db=" & $base & ";user id=" & $user & ";pwd=" & $pwd & ";option=16386"
                .Open
            Case Else
                .Provider = $adoProvider
                .Open($base, $user, $pwd)
        EndSwitch
    EndWith
    Return $oConn
EndFunc   ;==>_ADO_Open
 


la fonction _ADO_Open($base, $driver = "", $serveur = "", $user = "", $pwd = "") comme on le voit il y a 5 paramètres, elle nous renvoi un objet "ADODB.Connection". Avec cette fonction il devient facile de se connecter à un fichier xls ou CVS, une base SQLServer, et par défault une base Access.
Dans tout les cas il faut que ce fichier ou cette base existe déja.

Voyons voir comment créer une base access avec AutoIt, la base "tuto.mdb" dans le dossier du script.
On va utiliser un dérivé de la bibliothèque ADO le catalogue des données:
Code
Local $oDB = ObjCreate("ADOX.Catalog")
Local $DBPath = @ScriptDir & "\tuto.mdb"
$oDB.Create("Provider=" & $adoProvider & ";Data Source=" & $DBPath)
 

Bien sur dans le cadre d'un vrai projet on en fera une fonction qui permettra de créer la base à la 1ère utilisation (un setup).

A partir de cet instant tout ce qui va se passer c'est de créer et d'exécuter des commandes sur notre objet. Ces commandes sont des instructions SQL.

Pour ce faire on va utiliser la méthode "Execute" de notre objet connexion. Créer une table nommé "NomdelaTable" (pour ajouter un espace dans le nom de la table utiliser cette syntaxe "[Nom de la Table]") comme vous le voyer il s'agit de chaine de caractère que vous pouvez manipulera loisir.
Code
$oConn = _ADO_Open($DBPath)
$oConn.Execute("CREATE TABLE NomdelaTable")
 

Ceci dit une table si on la peuple pas de champs elle sert à rien. Voyons voir comment ajouter des champs dans la table.
Mais avant, petit moment de réflexion, une table pourquoi faire, pour y mettre des données OK, mais quelles données ?
L'importance de cette question et sa réponse va nous permettre de faire le choix du type de données de chaque champ. Ainsi on choisira un type de champs parmi 4 familles: les littéraux (chaine), les numériques, les binaires (oui/non) et les temporelles (date heure).

On va donc modifier le code précédent pour créer la table avec les champs que nous avons besoin.
Code
$oConn.Execute("CREATE TABLE NomdelaTable (Champ_id INTEGER NOT NULL PRIMARY KEY, Champ1 CHAR(25), Champ2 DATE, Champ3 INTEGER DEFAULT 1, Champ5 BIT DEFAULT TRUE)")
 

Certain qui auront suivi et exécuter le code précédent vont avoir une erreur car la table existe, dans ce cas on peut la supprimer avec l'instruction SQL: "DROP TABLE NomdelaTable".

Je vous conseille trés vivement de consulter le site car la norme SQL fait dans les 300 pages et c'est pas l'objet de ce tutoriel.

Spoiler pour Code complet :
Code
;======= les constantes ADO ===============================
Global Const $adoProvider = "Microsoft.Jet.OLEDB.4.0"

;======= Votre programme ==================================
Global $DBPath = @ScriptDir & "\tuto.mdb"
If Not FileExists($DBPath) Then
    Global $oCat = ObjCreate("ADOX.Catalog")
    $oCat.Create("Provider=" & $adoProvider & ";Data Source=" & $DBPath)
EndIf

$oConn = _ADO_Open($DBPath)
If _ADOX_TableExists($oConn, "NomdelaTable1") Then $oConn.Execute("DROP TABLE NomdelaTable1")
$oConn.Execute("CREATE TABLE NomdelaTable1 (Champ_id INTEGER NOT NULL PRIMARY KEY, Champ1 CHAR(16), Champ2 DATE, Champ3 INTEGER NOT NULL DEFAULT 1, Champ5 BIT DEFAULT TRUE)")

If _ADOX_TableExists($oConn, "NomdelaTable2") Then $oConn.Execute("DROP TABLE NomdelaTable2")
$oConn.Execute("CREATE TABLE NomdelaTable2 (Champ_id INTEGER NOT NULL PRIMARY KEY, Champ1 CHAR(50), Champ2 DATE, Champ3 INTEGER NOT NULL DEFAULT 100, Champ5 BIT DEFAULT FALSE)")

$oConn.Close

;======= les fonctions ====================================
Func _ADO_Open($base, $driver = "", $serveur = "", $user = "", $pwd = "")
    Local $oConn = ObjCreate("ADODB.Connection")
    With $oConn
        Switch StringLower($driver)
            Case "excel"
                .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};Dbq=" & $base
                .Open
            Case "text"
                .ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & $base & ";Extensions=tab;Extended Properties=TEXT"
                .Open
            Case "mssql"
                .ConnectionString = "driver={SQL Server};server=" & $serveur & ";db=" & $base & ";user id=" & $user & ";pwd=" & $pwd & ";option=16386"
                .Open
            Case Else
                .Provider = $adoProvider
                .Open($base, $user, $pwd)
        EndSwitch
    EndWith
    Return $oConn
EndFunc   ;==>_ADO_Open

Func _ADOX_TableExists(ByRef $oConn, $TableName)
    Local $oCat = ObjCreate("ADOX.Catalog")
    $oCat.ActiveConnection = $oConn
    For $Table In $oCat.Tables
        If $Table.Name = $TableName Then
            Return True
        EndIf
    Next
    Return False
EndFunc   ;==>_ADOX_TableExists

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données
MessagePosté: Mar 28 Avr 2009 12:31 

Après avoir vu comment se connecter à une base de donnée, le principal est d'accéder aux données qu'elle contient.
Pour se faire ADO met à notre disposition un objet RecordSet (jeu d'enregistrements) cet objet peut être apparenté à 1 tableau a 2 dimensions, ou un tableau sous excel: donc des lignes et des colonnes.

Pour le créer il nous faut une connexion valide (nous verrons comment nous en passer un peu plus tard).
Pour le créer avec AutoIt rien de plus simple:
$oRs = ObjCreate("ADODB.RecordSet")
Une fois l'objet instancier il faut l'ouvrir et lui fournir la source de donnée. Le plus souvent il s'agira du résultat d'une requête SQL (SELECT). Mais nous pouvons aussi simplement lui données le nom de la table à ouvrir.

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données
MessagePosté: Mar 28 Avr 2009 12:33 

Réservé par moi

Utilisation de base autre que ADO

SQLite, MySQL.

voir le poste plus bas
http://www.autoitscript.fr/forum/viewtopic.php?p=29865#p29865

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données. En cours de rédaction !!!
MessagePosté: Sam 02 Mai 2009 00:18 

les fichiers Texte

voir le poste plus bas
http://www.autoitscript.fr/forum/viewtopic.php?p=29865#p29865

 Profil  
 
AutoIt Français
Hors ligne
Niveau 5
Niveau 5
Avatar de l’utilisateur
Inscription: Mar 04 Nov 2008 21:51
Messages: 129
Age: 38

Localisation: Avignon
Sujet du message: Re: [Tuto] Base de données. En cours de rédaction !!!
MessagePosté: Mer 10 Mar 2010 14:33 

Bonjour GaRydelaMer,

Merci ++ d'avoir pris du temps pour nous faire ton tuto car il correspond à mes besoins actuels :-)

N'étant pas spécialiste des connexion de base de données, je bloque sur les paramètres de connexion.

En fait j'ai un alias ODBC déclaré en local sur mon poste.

Pour l'Alias, j'ai :
- le nom de l'Alias (aaa)
- l'adresse IP du serveur (iii)
- le port de connexion (ppp)
- l'utilisateur (uuu)
- le mot de passe (mmm)

1. Est il possible de l'utiliser ou dois je me connecter directement au serveur de base de données ?

J'ai essayé de rentrer les infos que je pouvais dans ta fonction "_ADO_Open" mais sans succès :-(

Il me dit :
Code
WARNING: $driver: possibly used before declaration.


2. Où puis je trouver la version du driver SQL de mon poste ?

3. A quoi correspond "option=16386". Est ce le n° de port ?

Merci d'avance pour ton aide ;-)

Amicalement.

BM

PS : Peut être ne suis je pas au bon endroit (Tuto) pour poser ma question... Merci de me le dire si c'était le cas ;-)

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données. En cours de rédaction !!!
MessagePosté: Lun 22 Mar 2010 21:40 

Bonsoir

je reviens sur mon tuto.

J'ai rajouté dans une application quelques routines (fonctions) sympa pour nous facilité la vie pour la création des connection avec en plus un petit GUI et la liste des drivers ODBC de votre machine. Plus l'utilisation d'un nouvel objet de ADO: Datalink qui permet de créer un DSN, d'utiliser les <> drivers ODBC et/ou OleDB. Je vous les partages.

Elle va répondre à ta question.

pour l'utiliser:

Global $oConn = _ADOConnection_Create()
Ensuite on fais ce qu'on veu avec la connection mais surtout avant on l'ouvre: $oConn.Open
et à la fin on la ferme $oConn.Close Voir tuto.

Tester avec ODBC:
Driver TXT, Driver dBase, Driver Excel, MySQL, PostgreSQL, SQLite2 & 3

OleDB:
Microsoft OLDB Jet, avec des bases Access (enlever de la liste des drivers ODBC pour la performance).


Drivers SQLite ODBC driver trouvé sur le site, pareil pour MySQL (j'utilise aussi pour le web un petit serveur complet trés simple à configurer qui à PHP, et MySQL en standard ZazouMiniWebServer http://zmws.com) et PostgreSQL sur le site aussi.
A++

Code

Func _ADOConnection_Create($GUI = 0)
    Local $oldGUIOnEventMode = Opt("GUIOnEventMode")
    Opt("GUIOnEventMode", 0)

    #Region ### START Koda GUI section ### Form=
    Local $GUI_Main, $Cb_ODBC, $BT_OLEDB, $Bt_Ok, $Bt_Cancel
    $GUI_Main = GUICreate("ADO Connection", 357, 129, -1, -1, -1, -1, $GUI)
    GUICtrlCreateGroup("", 8, 8, 257, 113)
    GUICtrlCreateLabel("Connection avec un pilote ODBC", 16, 24, 161, 17)
    $Cb_ODBC = GUICtrlCreateCombo("", 16, 48, 241, 25)
    GUICtrlCreateLabel("Créer une connection OLEDB", 16, 88, 145, 17)
    $BT_OLEDB = GUICtrlCreateButton("Créer", 184, 80, 75, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Bt_Ok = GUICtrlCreateButton("&OK", 272, 16, 75, 25, $WS_GROUP)
    $Bt_Cancel = GUICtrlCreateButton("&Annuler", 272, 48, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Local $a = _ODBC_GetDrivers()
    GUICtrlSetData($Cb_ODBC, _ArrayToString($a))

    Local $msg
    Local $oConn = ObjCreate("ADODB.Connection")
    $oConn.CursorLocation = $adUseClient
    While 1
        $msg = GUIGetMsg()
        Sleep(10)
        Switch $msg
            Case $GUI_EVENT_CLOSE, $Bt_Cancel
                $oConn = 0
                ExitLoop
            Case $BT_OLEDB
                Local $dl = ObjCreate("DataLinks")
                $oConn = $dl.PromptNew()
                If IsObj($oConn) Then ExitLoop
            Case $Bt_Ok
                If GUICtrlRead($Cb_ODBC) <> "" Then
                    $oConn.ConnectionString = "Provider=MSDASQL.1;Driver={" & GUICtrlRead($Cb_ODBC) & "};Prompt=Complete"
                    Switch StringLeft(GUICtrlRead($Cb_ODBC), 5)
                        Case "MySQL", "Postg"
                            $oConn.Properties("Prompt") = $adPromptAlways
                    EndSwitch
                    ExitLoop
                EndIf
        EndSwitch
    WEnd
    GUIDelete($GUI_Main)
    Opt("GUIOnEventMode", $oldGUIOnEventMode)
;~  If IsObj($oConn) And $oConn.ConnectionString Then
;~      If $oConn.State <> $adStateOpen Then $oConn.Open
;~  EndIf
    Return $oConn
EndFunc   ;==>_ADOConnection_Create
Func _ODBC_GetDrivers()
    Local $i = 0, $Drivers = "", $Value = ""
    While @Error = 0
        $i += 1
        $Value = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $i)
        If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $Value) = "Installed" Then $Drivers &= $Value & "|"
    WEnd
    Local $a = StringSplit($Drivers, "|", 2)
    For $i = UBound($a) - 1 To 0 Step -1
        Switch $a[$i]
            Case "", "Driver da Microsoft para arquivos texto (*.txt; *.csv)", _
                    "Driver do Microsoft Access (*.mdb)", _
                    "Driver do Microsoft dBase (*.dbf)", _
                    "Driver do Microsoft Excel(*.xls)", _
                    "Driver do Microsoft Paradox (*.db )", _
                    "Driver para o Microsoft Visual FoxPro", _
                    "Microsoft Access Driver (*.mdb)", _
                    "Microsoft Access-Treiber (*.mdb)", _
                    "Microsoft dBase-Treiber (*.dbf)", _
                    "Microsoft Excel-Treiber (*.xls)", _
                    "Microsoft ODBC pour Oracle", _
                    "Microsoft Paradox-Treiber (*.db )", _
                    "Microsoft Text-Treiber (*.txt; *.csv)", _
                    "Microsoft Visual FoxPro-Treiber";, _
                _ArrayDelete($a, $i)
        EndSwitch
    Next
    _ArraySort($a)
    Return $a
EndFunc   ;==>_ODBC_GetDrivers
 

 Profil  
 
AutoIt Français
Hors ligne
Niveau 5
Niveau 5
Avatar de l’utilisateur
Inscription: Mar 04 Nov 2008 21:51
Messages: 129
Age: 38

Localisation: Avignon
Sujet du message: Re: [Tuto] Base de données. En cours de rédaction !!!
MessagePosté: Lun 22 Mar 2010 21:44 

Bonsoir GaRydelaMer,

Merci ++ pour ton développement et tes explications :-)

Je teste ça dès demain ;-)

Amicalement.

BM


Dernière édition par scorp84 le Mer 30 Juin 2010 19:18, édité 1 fois.

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données. En cours de rédaction !!!
MessagePosté: Lun 22 Mar 2010 21:47 

De rien je bosse dessus en ce moment, réécrite de ce matin.

L'interface est aps trés jolie mais ca march, après je verais pour le coté fioriture ;)

 Profil  
 
AutoIt Français
Hors ligne
Niveau 5
Niveau 5
Avatar de l’utilisateur
Inscription: Mar 04 Nov 2008 21:51
Messages: 129
Age: 38

Localisation: Avignon
Sujet du message: Re: [Tuto] Base de données avec ADO, ADOX, DataLinks.
MessagePosté: Mer 31 Mar 2010 14:46 

Bonjour GaRydelaMer,

J'ai essayé d'utiliser ton tuto mais je bloque encore pour me connecter (je t'avais bien dit que c'était pas mon truc les bases de données :-(

Grâce à ton dernier post (merci ;-) j'ai trouvé les drivers ODBC de mon PC : SQL Server.

Par contre je n'arrive pas à me connecter avec les données suivantes :

- Serveur SQL : 192.168.x.x
- Port : 1455
- Alias ODBC déjà déclaré sur le poste client : AAAA
- Login : LLLL
- Mot de passe : MMMM
- Table : Uti
- Champs : uti_id, uti_login,uti_mdp

Pourrais tu me donner un exemple avec mes données, ça serait super sympa de ta part.

Merci d'avance pour ton aide et pour ta patience ;-)

Amicalement.

BM

 Profil  
 
AutoIt Français
Hors ligne
Modérateur
Modérateur
Inscription: Mer 18 Mar 2009 22:12
Messages: 220
Age: 39

Localisation: Montpellier
Sujet du message: Re: [Tuto] Base de données avec ADO, ADOX, DataLinks.
MessagePosté: Mer 31 Mar 2010 16:06 

Alors à 1ere vue comme ca:

Spoiler pour A toi d'adapter :
Code

Global $GUI = 0
;;Global $GUI = GUICreate()
;; blah blah

Global $oConn = _ADOConnection_Create($GUI)
If Not isObj($oConn) Then
    MsgBox(0, "Erreur", "Erreur pas de connection")
EndIf

If $oConn.State <> $adStateOpen Then $oConn.Open

Local $SQL = "SELECT uti_id, uti_login, uti_mdp FROM UTIL"
Local $oRS = _ADORecordSet_Open($SQL, $oConn)

If $oRS.EOF Then
    MsgBox(0, "RecordSet Util", "Aucun enregistrement")
Else
    ConsoleWrite("Objet: " & ObjName($oRS) & "(Limit " & $oRS.MaxRecords & ")")
    ConsoleWrite(", Source: " & $oRS.Source & @LF)
    ConsoleWrite("  RecordCount: " & $oRS.RecordCount)
    ConsoleWrite(", Fields.Count: " & $oRS.Fields.Count & @LF)
    ConsoleWrite("  Position: " & $oRS.AbsolutePosition)
    ConsoleWrite(", PageSize: " & $oRS.PageSize)
    ConsoleWrite(", Page/PageCount: " & $oRS.AbsolutePage)
    ConsoleWrite("/" & $oRS.PageCount & @LF)
    For $i = 0 To $oRS.Fields.Count -1
        ConsoleWrite($oRS.Fields($i).Name & "->" &  $oRS.Fields($i).Type & @LF)
    Next
    While Not $oRs.EOF
        For $i = 0 To $oRS.Fields.Count -1
            ConsoleWrite($oRS.Fields($i).Name & "->" &  $oRS.Fields($i).Value & ", ")
        Next
        ConsoleWrite(@LF)
        $oRs.MoveNext
    Wend
EndIf


Func _ADORecordSet_Open($SQL, ByRef $oConn, $adOpen = $adOpenDynamic, $adLock = $adLockOptimistic, $adCmd = $adCmdText, $MaxRecords = 0)
    Local $oRs = ObjCreate("ADODB.Recordset")
    $oRs.MaxRecords = $MaxRecords
    Switch $oConn.Properties("DBMS Name" ).Value
        Case "PostgreSQL"
            If $adCmd = $adCmdTable Then $SQL = "SELECT * FROM " & $SQL
            $SQL = StringRegExpReplace($SQL, "(\[|\])", """")
            $adCmd = $adCmdText
        Case "MySQL"
            If $adCmd = $adCmdTable Then $SQL = "SELECT * FROM " & $SQL
            $SQL = StringRegExpReplace($SQL, "(\[|\])", "`")
            $adCmd = $adCmdText
    EndSwitch
    $oRs.Open($SQL, $oConn, $adOpen, $adLock, $adCmd)
    Return $oRs
EndFunc   ;==>_ADORecordSet_Open

 Profil  
 
AutoIt Français
Hors ligne
Niveau 5
Niveau 5
Avatar de l’utilisateur
Inscription: Mar 04 Nov 2008 21:51
Messages: 129
Age: 38

Localisation: Avignon

Haut
Sujet du message: Re: [Tuto] Base de données avec ADO, ADOX, DataLinks.
MessagePosté: Mer 31 Mar 2010 20:09 

Super :-)

Je teste ça demain.

Un grand merci à toi ;-)

Amicalement.

BM

 Profil  
 
Afficher les messages postés depuis:  Trier par  

Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 

Heures au format UTC + 1 heure


Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  

AutoIt Français
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group, Sniper_Blue phpBB-3.0 Style © 2007 Sniper_E
Traduction par: phpBB-fr.com