Page 1 sur 1

[R] Erreur MSSQL 80020009

Posté : mar. 31 juil. 2012 18:28
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

Re: [..]Erreur MSSQL 80020009

Posté : mar. 31 juil. 2012 22:38
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
 

Re: [..]Erreur MSSQL 80020009

Posté : mer. 01 août 2012 00:12
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é 349 fois

Re: [..]Erreur MSSQL 80020009

Posté : mer. 01 août 2012 00:37
par Sea
Merci beaucoup problème résolu =)