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

MS SQL Server Discussion :

convertir varchar en smalldatetime


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut convertir varchar en smalldatetime
    Bonjour,

    Je cherche à enregistrer une date dans ma base...
    Je rentre ma date dans un formulaire, dans un champ texte sur lequel j'ai appliqué un masque de saisie dd/mm/aaaa .

    Mais je ne parviens pas à le convertir en smalldatetime...
    J'ai ma procedure stockée qui prend mon parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET p_dateDebut = cmAjout.CreateParameter( "@dateDebut", adDate, adParamInput, 50, dateDebut)
    Mais ca me renvoie une erreur; je suppose que c'est parce que ma date est dans un champ text mais en réalité je sais pas vraiment :
    L'application utilise une valeur d'un type incorrect pour l'opération en cours.

  2. #2
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    "@dateDebut"
    c'est voulu ou c'est un oublie :

    variable=@dateDebut
    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Sans vouloir faire le boulet, ca m'arrangerai si tu pouvais être un peu plus loquace parce que là je vois pas vraiment ce que tu veux dire ...

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    désolé de ne pas avoir été plus clair, je voulais seulement savoir que signifie: "@dateDebut"

    car un nom de variable ne se met entre " ".

    Ou bien j'ai mal saisi le sens de l'appel de ta procedure.


    A+

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Ben "@DateDebut" c(est le nom de la variable qui sera utilisé dans ma procédure stockée...
    J'ai tujours fais ca et en fait ca marche très bien...

  6. #6
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    peux tu me montrer comme tu l'utitilses dans ta procédure, ceci m'aidera à comprendre mieux.


    A+

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE PROCEDURE ajout (
    	@dateDebut smalldatetime ,
    	@dateFin smalldatetime ,
     
    )  AS BEGIN TRANSACTION
     
     
    INSERT INTO TRUC (Date_debut,Date_Fin) VALUES (@dateDebut,@dateFin);
     
     
    COMMIT TRANSACTION
     
    GO
    Je recupere donc mes dates dans un champ text. Il faut apparement que jai les convertisse au format smalldatetime pour qu il accepte de me les inserer dans la base...

  8. #8
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Citation Envoyé par georgeabitbol
    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE PROCEDURE ajout (
    	@dateDebut smalldatetime ,
    	@dateFin smalldatetime ,
     
    )  AS BEGIN TRANSACTION
     
     
    INSERT INTO TRUC (Date_debut,Date_Fin) VALUES (@dateDebut,@dateFin);
     
     
    COMMIT TRANSACTION
     
    GO
    Je recupere donc mes dates dans un champ text. Il faut apparement que jai les convertisse au format smalldatetime pour qu il accepte de me les inserer dans la base...
    Premiere remarque, ta procedure n'est pas correcte, surtout au niveau de la gestion des transactions.


    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
    CREATE PROCEDURE ajout 
       @dateDebut smalldatetime , 
       @dateFin smalldatetime  
    AS 
     
    BEGIN TRANSACTION 
     
    INSERT INTO TRUC (Date_debut,Date_Fin) VALUES (@dateDebut,@dateFin)
     
    IF @@ERROR <> 0 GOTO QuitWithRollback 
     
    COMMIT TRANSACTION 
     
    GOTO   EndProc              
     
    QuitWithRollback:
      IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
     
    EndProc: 
     
    Return 0 
     
    GO
    Et pour faire appel de ta procedure avec ADO :

    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
    Dim cn As ADODB.Connection
    Dim cmd As ADODB.Command
    Dim params As ADODB.Parameters
    Dim param As ADODB.Parameter
     
    ' Create connection and command objects
    Set cn = New ADODB.Connection
    Set cmd = New ADODB.Command
     
    ' Set connection properties and open
    cn.ConnectionString = "Provider=SQLOLEDB.1;Password=*****;Persist Security Info=True;User ID=sa;Initial Catalog=tempdb;Data Source=******"
    cn.Open
     
    ' Set command properties
    With cmd
        Set .ActiveConnection = cn
        .CommandText = "ajout"
        .CommandType = adCmdStoredProc
        Set params = .Parameters
    End With
     
    ' Define stored procedure params and append to command.
    params.Append cmd.CreateParameter("@RETURN_VALUE", adInteger, adParamReturnValue, 0)
    params.Append cmd.CreateParameter("@dateDebut", adDBTimeStamp, adParamInput, 0)
    params.Append cmd.CreateParameter("@dateFin", adDBTimeStamp, adParamInput, 0)
     
    ' Specify input parameter values
    params("@dateDebut") = MyVariable
    params("@dateFin") = MyVariable
     
    ' Execute the command
    cmd.Execute , , adExecuteNoRecords
    a+

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Danke

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Heeeeeeeeeeeeuuuuuu
    Juste une question à la con, le RETURN_VALUE, si il est égal à 0, c'est que ma transaction s'est bien passée ou l inverse ?

  11. #11
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Citation Envoyé par georgeabitbol
    Heeeeeeeeeeeeuuuuuu
    Juste une question à la con, le RETURN_VALUE, si il est égal à 0, c'est que ma transaction s'est bien passée ou l inverse ?
    elle s'est bien passee.

    a+

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

Discussions similaires

  1. Convertir la date Smalldatetime
    Par louay02 dans le forum SQL Anywhere
    Réponses: 0
    Dernier message: 19/03/2012, 12h53
  2. [MySQL] convertir varchar--> DATE
    Par ultraatef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/07/2010, 10h07
  3. Convertir varchar en Date
    Par benharperr dans le forum DB2
    Réponses: 3
    Dernier message: 16/06/2008, 10h29
  4. convertir varchar en date, et connaitre date dans 3 jours
    Par cyrano_de_bergerac dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/01/2008, 13h47
  5. convertir un varchar en smalldatetime
    Par khayate dans le forum SQL
    Réponses: 6
    Dernier message: 28/06/2007, 11h41

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