IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

[Visual Studio .NET][Rapport] Erreur sur une requête dynamiq


Sujet :

Visual Studio

  1. #1
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut [Visual Studio .NET][Rapport] Erreur sur une requête dynamiq
    Salut

    J'espère que je suis dans le bon forum...
    Dans Visual Studio .NET 2003, j'essaye de créer un rapport avec une requête dynamique. Je me suis donc reporté à l'aide ms-help://MS.VSCC.2003/MS.RSBOL80.1036/RSAMPLES

    Au moment de modifier mon dataset pour lui passer les paramètres de rapport, en mode "Concepteur de requête générique", je colle le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="SELECT MODE_DE_RELANCE.CODE_RELANCE, CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END AS ECHEANCE, REGLEMENT.REGLE_EXAMPLAIRE, 1 AS ABONNE, PUBLICATION.PUBLI_NOM FROM REGLEMENT INNER JOIN ABONNEMENT ON REGLEMENT.ABO_NUM = ABONNEMENT.ABO_NUM INNER JOIN MODE_DE_RELANCE ON REGLEMENT.REGLE_MODE_RELANCE = MODE_DE_RELANCE.MODERELANCE_NUM INNER JOIN PUBLICATION ON PUBLICATION.PUBLI_NUM = ABONNEMENT.PUBLI_NUM WHERE (ABONNEMENT.PUBLI_NUM = " & Parameters ! Publication.Value & ") AND (CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END >= " & Parameters ! Echeance1.Value & ") " & IIf(Parameters ! Echeance2.Value = '', "", " AND (CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END <= " & Parameters ! Echeance2.Value & ")")
    mais il me met comme erreur :
    C:\Documents and Settings\Administrateur\Mes documents\Visual Studio Projects\Etat_relance\Etat_relance.rdl L'expression de la propriété de l'objet query «*PRESSE_GESTION*» contient une erreur*: [BC30452] L'opérateur '&' n'est pas défini pour les types 'String' et 'Microsoft.ReportingServices.ReportProcessing.ReportObjectModel.Parameters'.
    j'ai essayé de faire mes concaténation avec le + mais j'ai le même message d'erreur...

    Quelqu'un peut m'aider ?

    Merci

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 273
    Points : 1 280
    Points
    1 280
    Par défaut
    parce que tu peux pas concatener un string et un objet de type parameter.
    Mets ton parameter dans une variable string et concatene le avec le reste de ta requete, de meme que pour ton IIf, mets le resultat dans une variable string et concatene le avec ta requete.
    j'suis vert !

  3. #3
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    ce que je capte pas c'est que j'ai suivi à la lettre ce qu'il y a dans l'aide

    Ne connaissant absolument pas Visual Studio .NET et les rapports (j'ai bêtement suivi la solution pas à pas de l'aide), pourrais-tu me dire où je dois faire cette opération de concaténation pour que mon recordset prenne mes paramètres de rapport ?

    Merci

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 273
    Points : 1 280
    Points
    1 280
    Par défaut
    par exemple, ca serait un truc dans le genre (je comprends pas bien ton code, je sais pas à quoi serve les "!") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim toto as string = cstr(Parameters ! Publication.Value )
    dim tata as string = ....
     
    dim requete as string = ="SELECT MODE_DE_RELANCE.CODE_RELANCE, CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END AS ECHEANCE, REGLEMENT.REGLE_EXAMPLAIRE, 1 AS ABONNE, PUBLICATION.PUBLI_NOM FROM REGLEMENT INNER JOIN ABONNEMENT ON REGLEMENT.ABO_NUM = ABONNEMENT.ABO_NUM INNER JOIN MODE_DE_RELANCE ON REGLEMENT.REGLE_MODE_RELANCE = MODE_DE_RELANCE.MODERELANCE_NUM INNER JOIN PUBLICATION ON PUBLICATION.PUBLI_NUM = ABONNEMENT.PUBLI_NUM WHERE (ABONNEMENT.PUBLI_NUM = " & toto & ....
    j'espere que tu vois ce que je veux dire.
    j'suis vert !

  5. #5
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    le problème c'est que dans le volet code de mon rapport j'ai que du XML
    Je connais VBscript donc je comprend bien ton code mais je trouve pas où coller ca en fait.

    Sinon pour les !, je peux pas te dire, j'ai repris bêtement ce qu'il y avait dans le pas à pas

  6. #6
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 273
    Points : 1 280
    Points
    1 280
    Par défaut
    directement dans ta requete alors, tu peux pas faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    " & cstr(Parameters ! Echeance1.Value) & "
    je sais pas si c'ets la fonction cstr si tu es dans du XML.

    tu peux surement directement dans ta requete convertir en string, parce que ton erreur vient de là, tu peux pas concatener un string et un objet parameter tout comme tu ne peux pas concatener un string et un integer par exemple.
    j'suis vert !

  7. #7
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    ok je vais essayer ça

  8. #8
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    en fait l'erreur ne venait pas de là mais des 2 quotes simples que j'avais dans mon Iff sur le test de la valeur du paramètres. Il fallait en fait mettre 2 doubles quotes.
    Donc ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="SELECT MODE_DE_RELANCE.CODE_RELANCE, CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END AS ECHEANCE, REGLEMENT.REGLE_EXAMPLAIRE, 1 AS ABONNE, PUBLICATION.PUBLI_NOM FROM REGLEMENT INNER JOIN ABONNEMENT ON REGLEMENT.ABO_NUM = ABONNEMENT.ABO_NUM INNER JOIN MODE_DE_RELANCE ON REGLEMENT.REGLE_MODE_RELANCE = MODE_DE_RELANCE.MODERELANCE_NUM INNER JOIN PUBLICATION ON PUBLICATION.PUBLI_NUM = ABONNEMENT.PUBLI_NUM WHERE (ABONNEMENT.PUBLI_NUM = " & Parameters ! Publication.Value & ") AND (CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END >= " & Parameters ! Echeance1.Value & ") " & IIf(Parameters ! Echeance2.Value = "", "", " AND (CASE WHEN ABO_SERVIR > 0 THEN (PUBLI_NO_ENCOURS + ABO_SERVIR - 1) ELSE ABO_DNUM END <= " & Parameters ! Echeance2.Value & ")")

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    debutant
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : debutant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    <?phpinclude('config.php');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
            <title>Inscription</title>
        </head>
        <body>
        
            <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
            </div>
    <?php
    //On verifie que le formulaire a ete envoye
    if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['username']!='')
    {
        //On enleve lechappement si get_magic_quotes_gpc est active
        if(get_magic_quotes_gpc())
        {
            $_POST['username'] = stripslashes($_POST['username']);
            $_POST['password'] = stripslashes($_POST['password']);
            $_POST['passverif'] = stripslashes($_POST['passverif']);
            $_POST['email'] = stripslashes($_POST['email']);
            $_POST['avatar'] = stripslashes($_POST['avatar']);
        }
        //On verifie si le mot de passe et celui de la verification sont identiques
        if($_POST['password']==$_POST['passverif'])
        {
            //On verifie si le mot de passe a 6 caracteres ou plus
            if(strlen($_POST['password'])>=6)
            {
                //On verifie si lemail est valide
                if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
                {
                    //On echape les variables pour pouvoir les mettre dans une requette SQL
                    $username = mysqli_real_escape_string($link, $_POST['username']);
                    $password = mysqli_real_escape_string($link, $_POST['password']);
                    $email = mysqli_real_escape_string($link, $_POST['email']);
                    $avatar = mysqli_real_escape_string($link, $_POST['avatar']);
                    //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
                    $dn = mysqli_num_rows(mysqli_query('select id from users where username="'.$username.'"'));
                    if($dn==0)
                    {
                        //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
                        $dn2 = mysqli_num_rows(mysqli_query('select id from users'));
                        $id = $dn2+1;
                        //On enregistre les informations dans la base de donnee
                        if(mysqli_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
                        {
                            //Si ca a fonctionne, on naffiche pas le formulaire
                            $form = false;
    ?>
    <div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
    <a href="connexion.php">Se connecter</a></div>
    <?php
                        }
                        else
                        {
                            //Sinon on dit quil y a eu une erreur
                            $form = true;
                            $message = 'Une erreur est survenue lors de l\'inscription.';
                        }
                    }
                    else
                    {
                        //Sinon, on dit que le pseudo voulu est deja pris
                        $form = true;
                        $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
                    }
                }
                else
                {
                    //Sinon, on dit que lemail nest pas valide
                    $form = true;
                    $message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';
                }
            }
            else
            {
                //Sinon, on dit que le mot de passe nest pas assez long
                $form = true;
                $message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
            }
        }
        else
        {
            //Sinon, on dit que les mots de passes ne sont pas identiques
            $form = true;
            $message = 'Les mots de passe que vous avez entr&eacute; ne sont pas identiques.';
        }
    }
    else
    {
        $form = true;
    }
    if($form)
    {
        //On affiche un message sil y a lieu
        if(isset($message))
        {
            echo '<div class="message">'.$message.'</div>';
        }
        //On affiche le formulaire
    ?>
    <div class="content">
        <form action="sign_up.php" method="post"><p align="center">
            Veuillez remplir ce formulaire pour vous inscrire:<br />
            <div class="center">
            <p align="center"><label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
                <label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br />
                <label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" /><br />
                <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
                <label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
                <input type="submit" value="Envoyer" />
            </div>
        </form>
    </div>
    <?php
    }
    ?>
            <div class="foot"><p align="center"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://kerma.com/">Support du Web</a></div>
        </body>
    
    </html>


    le code qui est en rouge il fait faille que je doit faire svp,,,,,????? erreur ligne 39 40 41 42 48 51

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur sur une requête AVG DIFF
    Par rudddy dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2008, 16h54
  2. [MySQL] erreur sur une requète
    Par mattyeux dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/01/2008, 21h25
  3. [SQL] Erreur sur une requète avec un Like
    Par heruwenli dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h29
  4. [VBA] Erreur sur une requête avec un opérateur
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2006, 17h12
  5. Réponses: 8
    Dernier message: 01/03/2005, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo