ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : petit souci SQL   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

dim. 31 mai 2015, 17h19
eddymaue
atoutfox.public.association

petit souci SQL


Bonjour,


petit souci SQL

dans une table Facture

          1    CFILES      Memo       4
          2    FILESIZE    Integer    4
          3    DATEMODIF   Date       8
          4    HEUREMODIF  Character  8
          5    ATTRIBUTES  Character  5
          6    LREP        Logical    1


et ou le champs CFILES contient +de 3000 fichier comme du genre ce qui suit :

C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3749, Monique Grenier 388 Samuel Edey.pdf
C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3750, Carl Lessard, 2 chapel.jpg
C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3750, Carl Lessard, 2 chapel.pdf
C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3751, Carl Lessard, 26 chapel.jpg
C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3751, Carl Lessard, 26 chapel.pdf
C:\Users\eddymaue\SkyDrive\facture\014-10-03 #3752 Carole Levesque, 68 Imp des Vents.jpg
C:\Users\eddymaue\SkyDrive\facture\2015 05 28\  0001.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 28\  0002.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 28\  0003.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 28\  0004.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 28\  0005.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 27\  0001.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 27\  0002.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 27\  0003.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 27\  0004.pdf
C:\Users\eddymaue\SkyDrive\facture\2015 05 27\  0005.pdf

Et voici la requête qui me fait probleme

Select JustPath(cfiles) as cPath  ;&& converti le type memo en charactère
   from  facture ;
   into cursor  test ;
   order by datemodif descending ;
   where not lrep

et le resulatat est

cPath =
C:\Users\eddymaue\SkyDrive\facture\
C:\Users\eddymaue\SkyDrive\facture\
C:\Users\eddymaue\SkyDrive\facture\
C:\Users\eddymaue\SkyDrive\facture\
C:\Users\eddymaue\SkyDrive\facture\
.....
C:\Users\eddymaue\SkyDrive\facture\   && ca aurait dû etre C:\Users\eddymaue\SkyDrive\facture\2015 05 27\

Par contre si je ne fait que

Select cfiles as cPath  ;
   from  facture ;
   into cursor  test ;
   order by datemodif descending ;
   where not lrep

le champs cPath est de type memo et correctement rempli par facture.cfiles

si j'essais

Select Alltrim(cfiles) as cPath ; && converti le type memo en charactère
from facture ;
into cursor test ;
order by datemodif descending ;
where not lrep

rep: string is too long

et effectivement il y a quelque enregistrement de plus de 255 caractères

Select subs(cfiles,Rat("\",cfiles))....

va me donner le \ 0005.pdf et ca demeure un champ memo. ce que je veux c'
est un champ caractère

Select subs(cfiles,1,Rat("\",cfiles)) as cpath ....

va me donner le bon path et je reste toujours dans un champ memo et je désire toujours un champ caractère


bref du moment qu'il y a convertion de type sur le champ cPath la requête tronque le cPath à "C:\Users\eddymaue\SkyDrive\facture\"


donc je dois passer par le code suivant pour y parvenir

* la requête
Select subs(cfiles,1,Rat("\",cfiles)) as cpath ,;
Substr(cFiles,Rat("\",cfiles)+1) as cName ;
from facture ;
into table Test ;
order by datemodif descending ;
where not lrep

* le nbre de car par champ

Select Max(Len(cName)) , Max(Len(cPath)), from Test into array nMax && 198 , 68
* alteration des champs
Alter Table Test alter column cName c(nMax(1))
Alter Table Testc alter column cPath c(nMax(2))


le résultat est bon mais j'aurais aimer que cela ce fasse dans une seul requete


et voilà un beau dimance apres midi à résoudre des ti problemes

--
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber...
il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)


Permalink : http://www.atoutfox.org/nntp.asp?ID=0000016410
20 088 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3