[Résolu] inserer une date via requete SQL "INSERT INTO

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
poukram
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 03 avr. 2006 15:50

[Résolu] inserer une date via requete SQL "INSERT INTO

Message par poukram »

Salut a tous !

J'ai besoin pr mon projet de faire une grande série d'INSERT INTO 'MaTable' et cette dernière contient plusieurs champs date.
A chaque essai j'obtient une erreur "Wrong data type" j'ai essayé plein de chose et au final j'ai réussi a isoler le problème qui vient des dates.

J'ai repris une table moins grande : ID (num clé primaire), Nom (String), Genre (boolean), Prenom (String) et dateT (date)

Je vous met le code que j'utilise actuellement et qui pose soucis :

Code : Tout sélectionner

REM  *****  BASIC  *****
dim maConnexion as Object

Sub Main
 dim maRequete as Object, resuQuery as Object
    dim instrSQL as StringConnecterSource
    dim dateTmp as Date

    dateTmp = Date '(fction qui renvoi la date actuelle sous forme jj/mm/aaaa)

    ConnecterSource

    instrSQL = "INSERT INTO" & chr(34) & "TAuteurs" & chr(34)& "VALUES ("_
& chr(39) & 12 & chr(39) & ","_
& chr(39) & "DURAND" & chr(39) & ","_
& chr(39) & TRUE & chr(39) & ","_
& chr(39) & "Thomas" & chr(39) & ","_
& chr(39) & dateTmp & chr(39) & ")"

maRequete = maConnexion.createStatement()
resuQuery = maRequete.executeQuery(instrSQL)
MsgBox "Ok insertion effectuée"

DeconnecterSource 

end sub

Sub ConnecterSource()
Dim NomSource As String, login As String, password As String
Dim maSource As Object, monDbContext As Object
'Création du contexte
NomSource = "essai"
monDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
maSource=monDbContext.getByName(NomSource)

'Les paramètres de connexion
login = ""
password = ""
maConnexion = maSource.getConnection(login, password)
if IsNull(maConnexion) then
  MsgBox("Connexion impossible", 16)
  Stop
end if
End Sub


Sub DeconnecterSource()
maConnexion.close
maConnexion.dispose
End Sub

J'ai donc un message d'erreur au niveau de la ligne

Code : Tout sélectionner

resuQuery = maRequete.executeQuery(instrSQL)
"Wrong data type"

je suis certain que le problème vient de la date. J'ai testé plusieurs formats de date :
jj/mm/aaaa
jj/mm/aa

en changeant également le type de format que recoit la base de donnée (en bas après avoir choisi le type [Date])
Base ne veut ni de la fonction Date, ni de mes entrées a la main de date.

Je suis surpris que cela me pose autant de problème quelqu'un a déja eu le soucis et a réussi a passer a travers ?
Dernière modification par poukram le 24 avr. 2006 10:11, modifié 1 fois.
OOo 2.0.2 sous windows XP
Dante
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 19 avr. 2006 09:00

Message par Dante »

Je pense qu'il s'agit plutôt d'une date du type :
AAAA-MM-JJ
OO.o 2.3.1 sous Windows XP Pro SP2
poukram
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 03 avr. 2006 15:50

Message par poukram »

J'ai saisi tt les types de date possible :

01/01/01

01/01/2001
01/2001/01
2001/01/01

Et il ne veut rien savoir -> "Wrong Data type"

Meme en choisissant manuellement le format de la date dans ma table !
Je suis dans une impasse la :S

EDIT : je précise aussi que j'ai essayer ces saisies en changeant le code :
dateTmp = "../../.." etc etc
J'ai essayé sans la variable également, j'ai utilisé des MsgBox pr vérifier ce qui était envoyer etc etc ...

EDIT 2 Dante tu cartonne !! J'était resté bloqué sur les "/" j'ai fini par tester "-" et la ca marche :D
J'ai plus qu'a trouver une facon de convertir mes dates access jj/mm/aaaa avec erreurs de frappes possible dans la table ...
au format base :D
OOo 2.0.2 sous windows XP