[Résolu] Insertion de champ date dans table

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 !
antoskin
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 18 avr. 2006 10:13

[Résolu] Insertion de champ date dans table

Message par antoskin »

Bonjour à tous!

Je possède une table TEST avec comme attribut :
Id --->Integer non "auto-incrémental"
Date ---->Type Date au format "JJ/MM/AA"


Je possède un formulaire avec un champ formaté date et je cherche à insérer sa valeur dans ma table...

Voici mon code :

Code : Tout sélectionner

sub Main
	dim MonDocument,maRequete as object
	dim Form as object
	dim SQL,today as String
	dim dateForm as String
	dim A as Date
	dim B as String

	MonDocument = ThisComponent
	Form = MonDocument.DrawPage.Forms.getByName("MainForm")
	
	ConnecterSource
	dateForm=Form.getByName("Date").Date 'Date du type 20060524
	
	today=Right(dateForm,2)+"/"+Left(Right(dateForm,4),2)+"/"+Right(Left(dateForm,4),2) '24/05/06
	
	A= DateSerial(Left(dateForm,4),Left(Right(dateForm,4),2),Right(dateForm,2)) '24/05/2006

	B=Left(dateForm,4)+"-"+Left(Right(dateForm,4),2)+"-"+Right(dateForm,2) '2006-05-24

	
	SQL="INSERT INTO TEST(Id,Date) values(1,"+B+");"
	maRequete=maConnexion.createStatement()
	maRequete.executeUpdate(SQL)


	DeconnecterSource

end sub

J'ai essayé d'insérer à la place de B la valuer de A, ou de today, avec ou sans '', rien n'as l'air de fonctionner...

J'ai une erreur de type SQLException à cette ligne

Code : Tout sélectionner

maRequete.executeUpdate(SQL)

J'ai bien entendu fait des recherches sur le forum, mais aucune des solutions propsées ne fonctionne(ou alors je les utilise mal! :D )

Bref si quelqu'un peut me dépanner, ça serait génial !

Merci d'avance et bonne journée! 8)
Dernière modification par antoskin le 23 mai 2006 09:08, modifié 1 fois.
Windows XP SP 2, OOo 2.0.2
poukram
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 03 avr. 2006 15:50

Message par poukram »

essai comme ca :

Code : Tout sélectionner

dateForm=Form.getByName("Date").Text

B = convertDate ( dateForm )

Function convertDate (dat as string)
	dim strTmp as string
	dim jj as string
	dim mm as string
	dim aaaa as string
	dim tmp as integer
	strTmp = dat
	
	if ( Left(strTmp,2) = "00" OR strTmp = "" OR strTmp = null OR strTmp = " " ) then
		strTmp="0001-01-01"
	else
		jj = Left(strTmp,2)
		mm = Mid(strTmp,4,2)
		aaaa = Mid(strTmp,7,4)
		'
		strTmp = aaaa + "-" + mm + "-" + jj
	end if
	convertDate = strTmp
end Function
Et peut etre 'executeQuery' au lieu de 'executeUpdate' parceque la tu ne fais pas d'update ...
OOo 2.0.2 sous windows XP
antoskin
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 18 avr. 2006 10:13

Message par antoskin »

Toujours la même erreur, je ne comprend vraiment pas...
Windows XP SP 2, OOo 2.0.2
antoskin
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 18 avr. 2006 10:13

Message par antoskin »

En fait je n'utilisait pas un champ formaté de type date JJ/MM/AA" mais un champ de Date (ce qui n'es pas la même chose...)

Je récupère donc la valeur de ce champ avec

Code : Tout sélectionner

Dim s as String
s=Form.getByName("Date").Text
et je l'insère comme ceci :

Code : Tout sélectionner

SQL="INSERT INTO TEST(Date,Id) values ('"+s+"',5);"
En fait j'ai l'impression que les champs de date sont assez complexe à utiliser...

En tout cas le problème est résolu merci à toi Poukram d'avoir essayé de m'aider!

Bonne journée à tous :D
Windows XP SP 2, OOo 2.0.2
poukram
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 03 avr. 2006 15:50

Message par poukram »

Bah écoute de rien ;)

Relit mon post tu verra que le

Code : Tout sélectionner

Form.getByNam("Date").Text

y étais ;)
OOo 2.0.2 sous windows XP
antoskin
Membre OOrganisé
Membre OOrganisé
Messages : 93
Inscription : 18 avr. 2006 10:13

Message par antoskin »

non mais là c'est moi qui ai beugué :D :marto: :marto: :marto:
Windows XP SP 2, OOo 2.0.2