

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in org.openoffice.fr.prog[prog] requietes SQL et operations su...| From | Sent On | Attachments |
|---|---|---|
| Snopie Snopie1 | Aug 29, 2005 10:31 am | |
| Bernard Marcelly | Aug 30, 2005 3:17 am | |
| Snopie Snopie1 | Aug 30, 2005 8:25 am | |
| Bernard Marcelly | Aug 31, 2005 12:46 am | |
| Snopie Snopie1 | Aug 31, 2005 5:09 am | |
| Bernard Marcelly | Aug 31, 2005 8:12 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] requietes SQL et operations sur Currency | Actions... |
|---|---|---|
| From: | Snopie Snopie1 (snop...@yahoo.fr) | |
| Date: | Aug 29, 2005 10:31:29 am | |
| List: | org.openoffice.fr.prog | |
bonjour liste, j'ai qlqs problemes avec la recuperation des resultats de requetes SQL ainsi qu'avec les nombres et les conversions string->currency.
je fais un acces odbc->mysql avec un select qui me renvoie une somme. lorsque je l'execute en ligne de commande mysql, ca marche, mais lors d'un acces a partir d'OOo, j'ai mon nombre qui est tronque de sa partie decimale: ============= 'la source est correctement connecte
res=req.executeQuery("select nom,sum(credit) from clients group by idclients") Do while res.next nom =res.Columns(0).String str_solde=res.Columns(1).String 'type String... msgbox("str_solde=" & str_solde) 'renvoie la sommme tronquee! ' traiter nom, str_solde Loop ==============
si je fais res.Columns(1).Short, la troncature est aussi effectuee. .Double n'est pas acceptable car les calculs doivent etre exacts (cf. plus loin).
puis il y a ce code: =============== Sub Main Dim s As String Dim c As Currency, d As Currency, g As Currency Dim e As Integer
s="zero" c=100/8/2 'voici d'un coup le resultat qu'on veut
GoSub dump s="un" c=100 d=100/8 '=12.5 ok
GoSub dump s="deux" c=d d=c/2 '=0 ko!
GoSub dump s="trois" e=2 d=c/e '=0 ko!
GoSub dump s="quatre" g=2 d=c/g '=0 ko!
GoSub dump
Exit Sub dump: msgbox "s=" & s & chr(13) & "c=" & c & chr(13) & "d=" & d & chr(13) & "e=" & e & chr(13) & "g=" & g Return
End Sub ===============
mais si on remplace dans les rvalues des affectations, les variables par leur val() (ie. d=val(c)/val(g)), ca marche.
en lisant "Programmation OOo" d'eyrolles, je vois que val() renvoie un flottant, or je veux un calcul _exact_ a 4 decimales.
tjs dans le meme livre p58: les currency ne supportent que + et - pour la version 1.1.
ma question est: comment fait-on pour convertir sans perte d'information (en deca de 4 decimales, et sans la troncature des flottants) ainsi que pour effectuer des operations de division et multiplication sur les currency?
M. Marcelly devrait mettre en gras le passage p58 pour la prochaine edition. ;)
merci beaucoup, snopie
___________________________________________________________________________ Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger Téléchargez cette version sur http://fr.messenger.yahoo.com







