[R] Connexion et insertion dans une BDD SQL server

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
batoune
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 30 mars 2009 12:10
Status : Hors ligne

[R] Connexion et insertion dans une BDD SQL server

#1

Message par batoune »

Bonjour,
Je cherche un petit script qui me permettrait de me connecter et d'effectuer des insertion dans une base de donnée en SQL qui est situer sur un serveur Microsoft SQL server 2000 sur mon réseau.
J'ai trouver plusieur script pour mySQL mais aucun pour SQL, Si quelqu'un pouvait m'aider

Merci d'avance.

PS : pour me connecter a ma base via une page web ecrit en asp j'utilise le code suivant : (des fois que ce soit utile)

Code : Tout sélectionner

serverAdresse = "xxx.xxx.xxx.xxx" 'adresse du serveur
user = "user"       'utilisateur
password = "****"       'mot de passe
nomBase = "resultats"   'nom de la base a utiliser

'Ouverture de la connection
Set Maconnexion = Server.CreateObject("ADODB.Connection")
conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password ' & ";option=16386"
            
Maconnexion.open conn
 
khitan72
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 05 déc. 2008 08:44
Status : Hors ligne

Re: [...]connexion et insertion dans une BDD SQL server

#2

Message par khitan72 »

Bonjour,
une approche serait de mettre un fichier temporaire en txt avec les modifs/update à faire par ftp et après , on peut creer un script lisant le fichier txt sur le serveur pour mettre à jour la base
cette requète peut etre lancée par autoIT avec un shellexecute("www.monsite.fr/ma_requete")
cordialement
autrement je n'ai pas de réponse directe, désolé
khitan72
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]connexion et insertion dans une BDD SQL server

#3

Message par GaRydelaMer »

Bonsoir

j'ai fait cette fonction pour la connection

Code : Tout sélectionner

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)
        EndSwitch
    EndWith
    Return $oConn
EndFunc   ;==>_ADO_Open

Global $oConn =  _ADO_Open("resultats", "mssql", "127.0.0.1" , "Admin", "password")

; Ensuite pareil qu'en ASP
Global $oRS = ObjCreate("ADODB.Recordset")
Global $sql = "SELECT * FROM TABLE"
$oRS.Open($sql, $oConn, $adOpenStatic, $adLockOptimistic)

ConsoleWrite($oRs.Fields("UN_Champ").Values & $oRs.Fields("UN_Champ").Name & @LF)
$oRs.Close
 
Voir la doc microsoft sur ADO.

Je l'utilise beaucoup au boulot et sur mon dernier projet une Vidéothèque de fichiers avi ;)
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]connexion et insertion dans une BDD SQL server

#4

Message par GaRydelaMer »

Pour les Insert

la suite du code toujours avec un recordset

Code : Tout sélectionner

With $oRs
    .Open("SELECT FROM matable", $oConn)
    .AddNew
    .Fields("unchamp").Value = "la nouvelle valeur ou une variable AutoIt"
    .Update ; met à jour le RecorSet
    .Close ; le ferme 
EndWith
 
tu peux même modifier un champs dans la ligne en cours et faire le Update.

Une fonction dans mon projet qui met à jour la table Fichier en ajoutant ou en mettant un enregistrement à jour avec comme paramètre un tableau qui est une simple liste de fichier:

toujours avec le même objet Connexion, pour les constantes ADO:

Code : Tout sélectionner

Func Video_toADORS(ByRef $a)
    Local $_oRS = ObjCreate("ADODB.Recordset")
    $_oRS.Open("SELECT * FROM FICHIERS", $oConn, $adOpenStatic, $adLockOptimistic)
    With $_oRS
        For $i = 1 To $a[0]
            If $a[$i] = "" Then ContinueLoop
            Local $filter = "Full_Path='" & StringReplace($a[$i], "'", "''") & "'"
            .Filter = $filter
            If .RecordCount = 0 Then
                .AddNew
                .Fields("Full_Path" ).Value = $a[$i]
            EndIf
            Local $szDrive, $szDir, $szFName, $szExt
            _PathSplit($a[$i], $szDrive, $szDir, $szFName, $szExt)
            .Fields("File" ).Value = $szFName
            .Fields("Taille" ).Value = FileGetSize($a[$i])
        Next
        .Update
        .Close
    EndWith
EndFunc   ;==>Video_toADORS
 
► Afficher le texteConstantes ADO
Répondre