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

WinDev Discussion :

Conversion de DATE pour SQL Server via OLE DB [WD14]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 24
    Par défaut Conversion de DATE pour SQL Server via OLE DB
    Bonjour,

    Quel est le bon format pour remplir une rubrique smalldatetime de SQL
    serveur depuis une requete dans WINDEV14 ?
    J'ai essaye 'AAAAMMJJHHMMSS'
    J'ai essayé 'JJ-MM-AAAA HH:MM:SS'

    j'ai toujours le message
    EIT_ADOCODE : <-2147217913>
    EIT_BASECODE : <295>
    EIT_ODBCDESCRIPTION : <Échec de la conversion d'une chaîne de
    caractères en type de données smalldatetime.>
    EIT_ODBCCODE : <22007>
    EIT_NATIVECODE : <170129>
    Merci,

    Gérard

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Salut à toi,

    Serait-il possible d'avoir le code de la requête ?
    As-tu essayé avec l'option hRequeteSansCorrection ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 24
    Par défaut
    Merci de ta réponse,

    Pour l'execution de mes requetes c'est :

    bRes = HExécuteRequêteSQL(sdMaRq,SAGE_FACX,hRequêteSansCorrection,sTxtRq)

    Pour le texte, c'est :

    INSERT INTO F_DOCENTETE ( DO_Domaine, DO_Type, DO_Piece, DO_Date, DO_Ref, DO_BLFact, DO_Tiers, AB_No, CA_No, CA_Num, CG_Num, CT_NumPayeur, DE_No, DO_Cloture, DO_Colisage, DO_Condition, DO_Devise, DO_Expedit, DO_Langue, DO_NbFacture, DO_Period, DO_TxEscompte, N_CatCompta, RE_No, DO_Ecart, DO_Imprim, DO_Reliquat, DO_Souche, DO_Statut, DO_Transfere, DO_TypeColis, DO_Ventile, LI_No, RE_NoCaissier, DO_Attente, DO_NoWeb, DO_Regime, DO_Transaction ) VALUES ( 0,1,'00531197A','2009062610511812','00531197',1,'MONPGEN',0,0,'','411000','MONOPRIXP',14, 0, 1, 1,0,1, 0,1,1,0,1,0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 0, 0, '' , 21, 11 )

    C'est du SAGE V15.

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Alors après recherche, il s'avère que l'on peut mettre dans INSERT, une date du type '2009-10-03 00:00:00' ou faire un CAST('2009-10-03 00:00:00' AS SMALLDATETIME)

    Après transformation de la date récupérée au format souhaité par SQLServer, on devrait avoir ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO F_DOCENTETE ( DO_Domaine, DO_Type, DO_Piece, DO_Date, DO_Ref, DO_BLFact, 
    DO_Tiers, AB_No, CA_No, CA_Num, CG_Num,
    CT_NumPayeur, DE_No, DO_Cloture, DO_Colisage, DO_Condition, DO_Devise, DO_Expedit, DO_Langue, DO_NbFacture, DO_Period, DO_TxEscompte, 
    N_CatCompta, RE_No, DO_Ecart, DO_Imprim, DO_Reliquat, DO_Souche, DO_Statut, DO_Transfere, DO_TypeColis, DO_Ventile, LI_No, RE_NoCaissier, DO_Attente, DO_NoWeb, DO_Regime, DO_Transaction ) 
    VALUES ( 0,1,'00531197A',CAST('2009-06-26 10:51:18' AS SMALLDATETIME),
    '00531197',1,'MONPGEN',0,0,'','411000','MONOPRIXP',14, 0, 1, 1,0,1, 
    0,1,1,0,1,0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 0, 0, '' , 21, 11 )
    Je n'ai plus de SQLServer sur ma bécane donc je ne peux pas tester.

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Finalement, je me suis installé SQLExpress 2005 ^^.

    Donc pour info, les syntaxes suivantes fonctionnent :
    '20090626 15:12:15'
    '20090626'
    '2009-06-26 15:12:15'
    '2009-06-26 15:12:15'

    Pour info également, il ne faut pas les secondes car le type smalldatetime est à la minute près, contrairement au type datetime qui est à la seconde près.

    En espérant que cela t'aide.

    Edit :
    Correction, on peut mettre les secondes, mais ce sera marqué 00 dans la base.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 24
    Par défaut
    Je te remercie, j'avais réussi à passer sans mettre l'heure, uniquement 'AAAAMMJJ' !

    Mais j'ai un autre probleme. Après ma connexion, je fait un SET ARITHABORT sur ma base SAGE.
    Mon INSERT sur F_DOCENTETE s'écrit correstement.
    Derriere je dois faire mes INSERT sur F_DOCLIGNE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO F_DOCLIGNE ( DO_Domaine,  DO_Type, CT_Num, DO_Piece, DO_Date, DL_DateBC, DL_PieceBC, DL_Ligne, DO_Ref, AR_Ref, DL_Design, DL_Qte, DL_QteBC, DL_No, DE_No, DL_TTC, 	DL_PUBC, EU_Qte, DL_Valorise) VALUES ( 0,1,'MONPGEN','00531197A','20090626','20090626','BCI000035',1000,'00531197','071090MONOP','OEUFS DE TRUITE MONOPRIX',138,138,1,14,0, 2.5,0, 0 )
    J'ai un message d'erreur : -
    Message d'erreur système :
    Description = Échec de INSERT car les options SET suivantes comportent des paramètres incorrects*: 'ARITHABORT'. Assurez-vous que les options SET définies peuvent être utilisées avec les vues indexées et/ou les index sur les colonnes calculées et/ou les notifications de requête et/ou les méthodes de type de données XML.
    Source = Microsoft OLE DB Provider for SQL Server
    SQL State = 42000
    Error Number = -2147217900
    Native Error Number = 1934
    Le set que je fais après l'ouverture de la connexion est le suivant(mode OLE DB):
    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
    //// Paramètres de la connexion FACTURATION
    SI bModeODBC ALORS
    	SAGE_FACX..Provider 			= hODBC
    	SAGE_FACX..BaseDeDonnées 		= sBaseODBCFac
    SINON
    	SAGE_FACX..Provider 			= hOledbSQLServer
    	SAGE_FACX..BaseDeDonnées 		= sBaseOLEFac
    FIN
    SAGE_FACX..Utilisateur 				= sBaseLogon
    SAGE_FACX..MotDePasse 				= sBasePw
    SAGE_FACX..Serveur 					= sAdresseServeur
    SAGE_FACX..Accès 					= hOLectureEcriture
    //
    sRqOptionOn est une chaîne = "SET ANSI_PADDING,ANSI_WARNINGS,CONCAT_NULL_YIELDS_NULL,ARITHABORT,QUOTED_IDENTIFIER,ANSI_NULLS ON"
    // Ouverture de la connexion
    SI PAS HOuvreConnexion(SAGE_CPTX) ALORS
    	sMerr = HErreurInfo(hErrComplet)
    	RENVOYER Faux
    FIN
    La connexion n'est pas fermée après l'insert de F_DOCENTETE.

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Utilises-tu également l'option hRequeteSansCorrection pour le SET car je ne vois le code d'exécution de sRqOptionOn ?

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

Discussions similaires

  1. [XE7] Connexion à une base de données SQL Server via ODBC pour plate-forme cible OS X
    Par Ptite Développeuse dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/01/2015, 15h23
  2. Rappel : Dates de fin de support pour SQL Server
    Par mikedavem dans le forum Actualités
    Réponses: 5
    Dernier message: 18/01/2010, 17h36
  3. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  4. Date en SQL Server
    Par Sadneth dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/06/2004, 11h27

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