Page 1 sur 1

Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 20 mai 2011, 15:44
par wachmotep
Bonjour,

Je développe un site avec un base de donnée sur Toad for mysql.

Mon problème est que, sans savoir pourquoi je ne peux plus afficher et extraire une des tables de ma base. Toad m'affiche cette erreur :

MySql.Data.Types.MySqlConversionException
Unable to convert MySQL date/time value to System.DateTime
Stack Trace:
at MySql.Data.Types.MySqlDateTime.GetDateTime()
at MySql.Data.MySqlClient.MySqlDataReader.GetValue(Int32 i)
at Quest.Toad.Db.Connection.ReadRow(IDataReader reader, FastTable datatable, FastReadOptions options, PrePostProcessHandler prePostProcessHandler)
at Quest.Toad.Db.ToadDataAdapter.InternalReadBackground()

Voici le create table de ma table :

CREATE TABLE `sample` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'identifiant de la table seample',
`demandeur` varchar(50) DEFAULT NULL,
`excecutant` int(10) DEFAULT NULL,
`dateDemande` date DEFAULT '0000-00-00',
`dateRequise` date DEFAULT '0000-00-00',
`dateRendu` date DEFAULT '0000-00-00',
`etat` int(11) DEFAULT NULL,
`tempsTraitement` int(20) DEFAULT NULL,
`dateDebut` date DEFAULT '0000-00-00',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=latin1;

J'aimerai pouvoir au moins récupérer les valeurs ce cette table (savoir où elles sont stockées en dure) et au mieux corriger ce problème.

Merci

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 20 mai 2011, 19:41
par ouckileou
Essaie de te connecter a ta base avec une autre interface, genre la ligne de commande ou phpmyadmin, tu pourras deja recuperer tes donnees. Je dirai que l'erreur semble vraiment propre a Toad, on dirait une erreur .Net donc tu ne devrais pas avoir de soucis.

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 24 mai 2011, 12:17
par wachmotep
salut,

Merci de ta réponse rapide. Je galère un ptit peu a trouver où sont stocker les données a attaquer avec une autre interface.

Dans C/programme file:mysql serveur 5.1/my.init j'ai trouver le chemin pour accéder au dossier MaBase contenant les fichers MYD, frm et MYI de mes tables .

Je les ai copier dans le même répertoire sur un autre ordinateur avec une interface PhpMyadmin mais ça ne marche pas. :cry:

Sinon j'ai installer xampp mais y'a un problème d'acces de port avec apache #-o

Je sais pas trop comment gérer ça.

Merci de ton aide :D

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 24 mai 2011, 21:48
par moogli
salut,


pour la copie des fichiers, ça ne fonctionne correctement si la table est la même sinon il y a un risque de perte de données.

a tu essayé l'accès avec la console mysql et essayé une requête SQL sur cette table ?

@+

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 25 mai 2011, 17:14
par ouckileou
Ne touche pas aux fichiers de la base, tu dois pouvoir te connecter directement sur la base courante.

Code : Tout sélectionner

mysql -h <host> -u <user> -p
Une fois entre le bon mot de passe tu seras connecte a ton serveur MySQL:

Code : Tout sélectionner

use <nom_bdd>
te positionne sur la base de donnees que tu souhaites utiliser

Quel est le probleme de port exactement ?

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 26 mai 2011, 10:55
par wachmotep
Bonjour,

J'ai le site de mon service qui est sur un ordi (disons ordi1) pour pouvoir faire mes test on m'a donner un autre ordi (ordi2)

Sous ordi1 la base de donnée est gérer avec toad for my sql. J'ai exporter la base et l'ai importée sur ordi2 avec un phpmyadmin
Je pense donc que les bases sont les mêmes.

Le port de connexion utiliser est par ordi1 avec toad est 3306. Le xammp que j'ai installé sur ordi1 se connecte avec le port 80. Faut il le configurer pour qu'il se connecte au port 3306 ? Et si oui comment ?

Pour ce qui est des ligne de commande, les ordi st sur des windows xp et je ne sais pas utiliser la console windows et ne peux pas passer aucun ordi sous linux.



Le probleme est que je en peux afficher la table. Par contre les insert/update/delete via le site marchent très bien et je peux les afficher.

Ce que je voudrais tester, et j’attends votre feu vert, c'est faire un script php du genre :
ALTER TABLE `matable` CHANGE `date_pb` `date_pb` DATE NOT NULL
petite explication : dans "matable", les dates bug. Au début elles s'affichaient au format yyyy_mm-dd-hh-mm alors que leurs avais mis comme valeur par défaut 0000-00-00 donc elles devaient avoir le format yyyy_mm-dd. J'ai laisser aller, bien que avec la même config sur une autre table créer auparavant il n'y avait pas de problème. Et maintenant elles ne veulent plus s'afficher avec toad. Est ce une mise a jour automatique de toad qui a créer le problème ? je ne sais pas.
En tout cas si le script ne fait pas de conversion forcé, je compte essayer de passer les dates en type string, couper la partie "hh-mm" et les reconvertir en date. Qu'en pensez vous ?

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 26 mai 2011, 13:17
par moogli
La console mysql c'est la même sous win ou nux ;)
tu fait démarrer => executer dans le champ tu tape cmd puis entrer et t'a une belle console.
pour se connecter a la console mysql => mysql -u utilisateur -p ou mysql --user=utilisateur --password=motDePasse
ensuite pour :
- changer de base : use nomdelabase;
- faire une requete quelconque ben c'est du SQL que tu tape directement sur la ligne de commande, n'oublie pas le ; en fin de ligne :).

ensuite le port 80 c'est le port web (donc phpmyadmin ? mais derrière php utilise le 3306 qui "LE" port par defaut de mysql ;) ), je ne pense pas que celui ci soit utiliser par mysql mais par le serveur web que tu installe en même temps.


si ton champ est de type date tu ne peut avoir l'heure dedans c'est un datetime ça, je voit pas trop comment ça peux ce produire :/

je viens de tester (très rapidement) toad :
- il affiche les dates au format français "en style datetime" ce qui peux induire en erreur (surtout quand je peux mettre 20/05/2011 12:12:12 dans le champ et qu'il l'accepte sans broncher ;) )
- pas vraiment intuitif

Dans le même style il existe mysql workbench qui te présente les données non formatée (bon après c'est p'tet paramètrable)

le format datetime c'est yyyy-mm-dd hh:mm:ss et non yyyy_mm-dd-hh-mm

le alter table ne devrait pas trop poser de soucis par contre les dates non conforme risque d'être tronquées, je te conseil de tester sur une copie de la table ;)


@+

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 31 mai 2011, 11:54
par wachmotep
Bonjour,

J'ai finalement résolue le problème en changeant simplement le type de date en string. D'après mon tuteur c'est mieux car le type date diffère selon les différente versions des PC.

Merci de votre aide

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 31 mai 2011, 20:58
par moogli
O_o

c'est mieux de ne pas pouvoir faire de calcul sur les dates ? (finis le order by date par exemple et j'en passe).

le type date ne dépend pas du pc mais au pire du SGBD, si celui est conforme a la norme SQL c'est partout pareil ton problème vient du fait que ton outil est foireux ;)

@+

Re: Toad for mysql Unable to convert MySQL date/time value to Sy

Posté : 01 juin 2011, 23:40
par ouckileou
Oui c'est n'importe quoi, il n'y a aucun avantage a passer de DATE a STRING. Ca prend plus de place, et tu peux aovir des soucis pour manipuler les dates comme l'a dit moogli. Mais est-ce que tu as change au niveau de la base elle-meme, ou c'est un type propre a Toad ? Car String n'existe pas dans MySQL, cest VARCHAR.

Est-ce que tu as vraiment besoin d'utiliser Toad ? On dirait que tu n'es pas completement a l'aise avec les bases de donnees, la tu ajoutes un difficulte avec le maniement de Toad.