Page 1 sur 1
[R] Connexion et insertion dans une BDD SQL server
Posté : lun. 30 mars 2009 12:56
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
Re: [...]connexion et insertion dans une BDD SQL server
Posté : lun. 30 mars 2009 14:55
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
Re: [...]connexion et insertion dans une BDD SQL server
Posté : lun. 30 mars 2009 19:42
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

Re: [...]connexion et insertion dans une BDD SQL server
Posté : lun. 30 mars 2009 20:11
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
Code : Tout sélectionner
#Region Constantes
Global Const $adoProvider = 'Microsoft.Jet.OLEDB.4.0'
Global Const $adPersistXML = 1
Global Const $adUseClient = 3
Global Const $adSchemaTables = 20
Global Const $adVarChar = 200
Global Const $adClipString = 2
Global Const $MaxCharacters = 255
;CursorTypeEnum Constants
Global Const $adOpenUnspecified = -1
Global Const $adOpenForwardOnly = 0
Global Const $adOpenKeyset = 1
Global Const $adOpenDynamic = 2
Global Const $adOpenStatic = 3
;LockTypeEnum Constants
Global Const $adLockUnspecified = -1
Global Const $adLockReadOnly = 1
Global Const $adLockPessimistic = 2
Global Const $adLockOptimistic = 3
Global Const $adLockBatchOptimistic = 4
;CommandTypeEnum Constants
Global Const $adCmdFile = 256
Global Const $adCmdStoredProc = 4
Global Const $adCmdTable = 2
Global Const $adCmdTableDirect = 512
Global Const $adCmdText = 1
Global Const $adCmdUnknown = 8
Global Const $adCmdUnspecified = -1
;EditModeEnum
Global Const $adEditNone = 0
Global Const $adEditInProgress = 1
Global Const $adEditAdd = 2
Global Const $adEditDelete = 4
;ExecuteOptionEnum Constants
Global Const $adAsyncFetch = 32
Global Const $adAsyncFetchNonBlocking = 64
;BookmarkEnum
Global Const $adBookmarkCurrent = 0
Global Const $adBookmarkFirst = 1
Global Const $adBookmarkLast = 2
;GetRowsOptionEnum
Global Const $adGetRowsRest = -1
;ObjectStateEnum
Global Const $adStateClosed = 0
Global Const $adStateOpen = 1
Global Const $adStateConnecting = 2
Global Const $adStateExecuting = 4
Global Const $adStateFetching = 8
#EndRegion Constantes