[WD10] pb avec les rubrique Heure et SQL Serveur

Le
Frédéric LAMBOUR
J'ai systématiquement l'erreur suivante lors du Hajoute() du code décrit
plus bas :

Erreur à la ligne 18 du traitement Clic sur Bouton1.
Vous avez appelé la fonction HAjoute.
Erreur de l'accès OLE DB.
Numéro d'erreur = 170147

Echec de la mise à jour de l'enregistrement sur la base de données.

Détail de l'erreur système :

Description = Invalid date format
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 22007
Error Number = -2147467259

Description = Multiple-step OLE DB operation generated errors. Check each
OLE DB status value, if available. No work was done.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 22007
Error Number = -2147217887

Informations techniques

Projet : appels

Dump de l'erreur du module <WD100HF.DLL> <10.00Cg>.

- Appel WL :
Traitement de <MigrationVersSQLServeur.Bouton1>, ligne <18>, thread <0>
Fonction <HAjoute>, n° de syntaxe <2>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 73001

- Code erreur WD55 : 3001

- Pas de code d'erreur système

- Message d'erreur système :
Description = Invalid date format
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 22007
Error Number = -2147467259


Description = Multiple-step OLE DB operation generated errors. Check each
OLE DB status value, if available. No work was done.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 22007
Error Number = -2147217887


- Que s'est-il passé ?
Erreur de l'accès OLE DB.
Numéro d'erreur = 170147

Echec de la mise à jour de l'enregistrement sur la base de données.

- Infos de debug :
IEWDOLDB1027
Module=<WDOLDB>
Version=<10.00Ae>
Exceptions sur code <-2147467259> autorisées

Version du MDAC = <2.80.1022.3>.

[Current Recordset parameters]
Wanted = LockType = <adLockOptimistic>, Location = <adUseServer>, Type =
<adOpenKeyset>, Capacities = <10fef00>
Got = LockType = <adLockUnspecified>, Location = <adUseServer>, Type =
<adOpenKeyset>, Capacities = <10fef00>

[Connection parameters]
DataSource = <DEV>
Initial Catalog = <>
Provider = <SQLOLEDB>
User = <sa>
Password = <,###>
Extended Info = <;Initial CatalogAppels>
Access = <Read/Write>

[Connection settings]
ConnectionTimeout = <30>
CommandTimeout = <30>

[Data format]
Query Parameter Checked = <0> = <>
Query Parameter Needing conversion = <0> = <>
DecimalSeparator = <Undefined>
DateFormat = <>

[Cursor settings Match]
LockType = <adLockOptimistic>, Location = <adUseServer>, Type =
<adOpenKeyset>, Capacities = <10fef00>
LockType = <adLockUnspecified>, Location = <adUseNone>, Type =
<adOpenUnspecified>, Capacities = <ffffffff>
LockType = <adLockUnspecified>, Location = <adUseNone>, Type =
<adOpenUnspecified>, Capacities = <ffffffff>

[Recordset 1]
Settings = <LockType = <adLockOptimistic>, Location = <adUseServer>, Type =
<adOpenKeyset>, Capacities = <10fef00>>
CapacitiesSupported =
<adAddNew;adApproxPosition;adBookmark;adDelete;adFind;adHoldRecords;adMovePr
evious;adNotify;adResync;adUpdate;adUpdateBatch;>
CapacitiesNotsupported = <adIndex;adSeek;>
HFFunctionsSupported =
<HAjoute;HSupprime;HModifie;HPositionCourante;HAvance;HRecule;HLitPremier;HL
itSuivant;HLitPrecedent;HRecherche;>
HFFunctionsNotsupported = <>

Fonction (7,0)

- Infos attachées :
EIT_ADOCODE : <-2147467259>
EIT_BASECODE : <0>
EIT_ODBCDESCRIPTION : <Invalid date format>
EIT_ODBCCODE : <22007>
EIT_NATIVECODE : <170147>
EIT_LOGICALTABLENAME : <APPELSAlias>
EIT_DATEHEURE : 24/01/2006 12:14:24
EIT_PILEWL :
Clic sur Bouton1 (MigrationVersSQLServeur.Bouton1), ligne 18

- Identifiant dans le .err : 72801

Voilà le code qui plante :
Protocole de reproduction :
Copie des données du fichier APPELS vers une table similaire dans SQL
serveur

Sablier(Vrai)
hNomFichierAlias est chaîne
hNomFichierAlias = APPELS..Nom+"Alias"
HDéclareExterne(APPELS..Nom, hNomFichierAlias, BDAppelsSurDEV) //BASE SQL
Serveur pour BDAppelsSurDEV
POUR TOUT APPELS SUR APCLEUNIK

Message("En cours = " +APPELS.APCLEUNIK)

//Autre rubriques
{hNomFichierAlias +"."+ APPELS.HEURE..Nom, indRubrique} = APPELS.HEURE
//Cette affectation pose problème
//Autre rubriques

HAjoute(hNomFichierAlias)

FIN

HFerme(hNomFichierAlias) //comit
HAnnuleDéclaration(hNomFichierAlias)

Sablier(Faux)
Message("")

IMPORTANT :

Si au lieu d'utiliser HDéclareExterne() je crée une nouvelle analyse avec
une table liée à ma base SQL pour pouvoir utiliser la fonction HDéclare() le
code ci-dessous fonctionne !!!!!

Sablier(Vrai)
hNomFichierAlias est chaîne
hNomFichierAlias = APPELS..Nom+"Alias"
HDéclare(appels..nom, "TestRubriqueHeure.wdd", "", hNomFichierAlias) //Base
SQL serveur pour TestRubriqueHeure.wdd
POUR TOUT APPELS SUR APCLEUNIK

Message("En cours = " +APPELS.APCLEUNIK)

//Autre rubriques
{hNomFichierAlias +"."+ APPELS.HEURE..Nom, indRubrique} = APPELS.HEURE
//Plus de pb
//Autre rubriques

HAjoute(hNomFichierAlias)

FIN

HFerme(hNomFichierAlias) //comit
HAnnuleDéclaration(hNomFichierAlias)
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal F
Le #14231391
Moi j'aurai plutôt écrit:
{hNomFichierAlias +".HEURE", indRubrique} = APPELS.HEURE
Mais pas essayé.

--
Pascal

Ne garder que le prénom pour me joindre
Frédéric LAMBOUR
Le #14231381
Ce n'est pas le problème APPELS.HEURE..nom renvoie "HEURE" (moins on utilise
de chaîne en dure plus le code est facile à maintenir)

"Pascal F" news:43d6132c$0$372$
Moi j'aurai plutôt écrit:
{hNomFichierAlias +".HEURE", indRubrique} = APPELS.HEURE
Mais pas essayé.

--
Pascal

Ne garder que le prénom pour me joindre




Frédéric LAMBOUR
Le #14231371
Ca change rien car APPELS.HEURE..Nom renvoie "HEURE" ;)


"Pascal F" news:43d6132c$0$372$
Moi j'aurai plutôt écrit:
{hNomFichierAlias +".HEURE", indRubrique} = APPELS.HEURE
Mais pas essayé.

--
Pascal

Ne garder que le prénom pour me joindre




Publicité
Poster une réponse
Anonyme