tarbangdo
Messages postés4Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention31 octobre 2005
-
28 avril 2005 à 16:05
vaughan
Messages postés198Date d'inscriptionmardi 6 août 2002StatutMembreDernière intervention29 octobre 2008
-
28 avril 2005 à 17:38
Mon proléme est le suivant: J'ai des données à extraire dans une table SQL, il
se trouve que pour un champ donné il est lui méme composé de d'une chaine
de données (des réels ) sépareés par des espaces.Supposons qu'on ai 10 réels
separés par des espaces comment extraire la cinquiéme enregistrement de ce
champ celui-ci sera utilisé pour des calculs d'autres parametres.
vaughan
Messages postés198Date d'inscriptionmardi 6 août 2002StatutMembreDernière intervention29 octobre 2008 28 avril 2005 à 17:38
Tu créé une procedure stockée dans ta base de donnée qui te ramène un élément par rapport à sa position.
Exemple ; SUBSTRCOL(Num_Col,Chaine)
Et dans ta requête tu effectues : Select SUBSTRCOL(5,TA_COLONNE) FROM TA_TABLE WHERE TES_CRITERES
Exemple de cette procedure en code delphi
Function TChaine.SubStrCol(Num_Col: Integer; Sep: string): String;
Var
Position : Integer;
StrTemp : TChaine;
begin
// Position du caractère de séparation
Position := Pos(Sep,FVal);
// Première colonne à extraire
If Num_Col = 1 Then
Begin
// Caractère de séparation existant
If Position <> 0 Then
Result:= Copy(FVal,1,Position-1)
Else
Result := FVal;
End
Else
Begin
StrTemp := TChaine.Create();
Try
// Caractère de séparation existant
If Position <> 0 Then
Begin
StrTemp.Val := Copy(FVal,Position+1,length(FVal)-Position);
Result := StrTemp.SubStrCol(Num_Col-1,Sep)
End
Else
Result := EmptyStr;
Finally
StrTemp.Free;
End;
End;