[R] Erreur MSSQL 80020009

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

[R] Erreur MSSQL 80020009

#1

Message par Sea »

Voici mon erreur que je ne comprend pas trop une petite recherche sur google n'est pas plus concluante on trouve que des trucs en asp...
Je pense après que mon erreur viens du fais qu'il s'agit de chaîne de caractère mais pas sur :/
Image
► Afficher le texte
PS: la ligne 42 correspond à => $var[$count]=.fields(0).value
Modifié en dernier par Sea le mer. 01 août 2012 00:38, modifié 1 fois.
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..]Erreur MSSQL 80020009

#2

Message par Sea »

Problème résolu il fallait passer par un recordset et de ne pas foutre directement dans une array...

voici le code

Code : Tout sélectionner

$rs = ObjCreate("ADODB.RecordSet")

$rs.Open("SELECT name FROM [dbo].[Character] WHERE login_time > logout_time AND permission = 0", $adCN)
If $RS.RecordCount Then
   $count=1
    While Not $RS.EOF
        $test = $rs.Fields("name").value
        $var[$count] = $test
        $var[0] = $count
        $count+=1
        $RS.MoveNext
   WEnd
EndIf
_ArrayDisplay($var)
$rs.Close ;==>Close the database
$adCN.Close ;==>Close the database
Le seul problème c'est que je suis obligé de définir une taille de mon tableau au début par un nombre au "hasard" n'y a t'il pas moyen de recup le nombre de donné?(au pire je fais une requête count mais bon)
J'ai essayé avec $RS.RecordCount mais sa me renvoie -1 :/
Merci d'avance :)

EDIT : Bon j'ai réussi à faire ce que je veux mais bon c'est pas très propre de faire 2boucles mais bon si y'a que ça qui compte ^^'

Code : Tout sélectionner

If $RS.RecordCount Then
   $count=1
    While Not $RS.EOF
        $count+=1
        $RS.MoveNext
    WEnd
    ReDim $var[$count]
    $var[0] = $count
    $RS.MoveFirst
    $count = 1
    While Not $RS.EOF
        $test = $rs.Fields("name").value
        $var[$count] = $test
        $var[0] = $count
        $count+=1
        $RS.MoveNext
    WEnd
EndIf
 
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]Erreur MSSQL 80020009

#3

Message par jchd »

Tu peux t'inspirer ou utiliser directement l'UDF jointe. L'idée est de récupérer directement le contenu du recordset dans un tableau (voir AdoSQL_GetData2d). Ces fonctions sont calquées sur l'UDF SQLite.
AdoSQL.au3
(21.02 Kio) Téléchargé 348 fois
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..]Erreur MSSQL 80020009

#4

Message par Sea »

Merci beaucoup problème résolu =)
Répondre