IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Chaîne de caractères SQL


Sujet :

Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Chaîne de caractères SQL
    Salut,
    J'aimerais savoir comment éliminer les caractères non alphanumérique dans une chaine de caractères sous requête SQL ; j'ai un champ : NUM , ce champ par exemple est : aa333.zoo je cherche à supprimer le point (.) , résultat : NUM = aa333zoo
    j'ai utilisé REPLACE *PARADOX/DELPHI7*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     UPDATE table SET NUM=REPLACE(NUM,'.',' ')
    ça n'a pas marché ! message :capability not suppoted

    très sympa de consacrer votre temps pour m'aider.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    c'est plus une question à poser sur le forum du SGBD concerné que dans le forum Delphi.
    La première indication à nous fournir serait déjà le SGBD utilisé
    ceci étant, un réponse programme Delphi est envisageable mais, là aussi, la version de Delphi est importante (possibilité d'utiliser les expressions régulières avec D7 et plus)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Chaîne de caractères SQL
    re-salut ,
    j'utilise PARADOX DELPHI7 .MERCI .

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    J'ai un peu oublié le SQL utilisable avec Paradox et Delphi 7.

    Cependant, d'après cette discussion http://www.developpez.net/forums/d13...table-paradox/, il semble que l'instruction REPLACE ne soit pas acceptée dans un UPDATE.

    Je sais que le SQL local utilisé dans Paradox comporte des restrictions. Il semble que ce soit le cas dans ta situation.

    L'intervenant du message ci-dessus avait trouvé une solution. Est-elle possible dans ton cas ?

    Vérifies aussi si le nom te ta colonne n'est pas un mot réservé pour Paradox

    Editer
    Après, il est possible de traiter ce point avec quelques lignes de code dans Delphi 7. Ce n'est pas génial, mais ça peut dépanner.

    A+

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Après quelques recherches dans mes archives, j'ai trouvé le fichier d'aide SQL Local pour Paradox.

    Le langage SQL pour Paradox qui est un extrait de SQL-92 comporte des restrictions et notamment le fait que REPLACE n'est pas reconnu. Ceci explique la raison de ton erreur. Par contre le mot NUM qui désigne ta colonne n'est pas un mot réservé, c'est le mot NUMERIC qui est réservé.

    Pour résoudre ton problème, il faut repenser le schéma de ton application. D'ailleurs, tu n'indiques pas la raison pour laquelle tu veux remplacer le '.' par un espace. Il s'agit d'une correction définitive ou d'une opération qui doit se reproduire en permanence ? Il existe peut-être aussi une autre approche.

    Sinon, comme indiquer dans mon premier message, il y a la possibilité d'utiliser le code Delphi. Bien sûr, il faut lire la valeur, faire la correction dans le programme, puis procéder à une nouvelle écriture. L'opération est plus longue, mais en général, les volumes avec Paradox sont faibles donc cette approche est réaliste.

    A+

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut chaine de caractères
    salut et merci tout le monde pour votre aide ; j'ai trouvé une solution sans passer par SQL , une boucle pour parcourir le champs : NUM et supprimer le point (.) qui se trouve dans chaque enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var i:integer;r:string;
    begin
    table.first;
     while not table.Eof do
      begin
         table.edit;
         for i:= 0 to (table.FieldCount-1) do
         begin
         r:=table.FieldByName('NUM').AsString;
         table.FieldByName('NUM').AsString:=StringReplace(r,'.','',[rfReplaceAll, rfIgnoreCase]);
        end;
        TABLE.Next ;
    end;
    table.Post;
    Merci encore une fois !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Creation d'une chaine de caractere aleatoire.
    Par Shakta dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/01/2008, 16h25
  2. [SQL]Probleme avec chaine de caracteres
    Par acheo dans le forum Access
    Réponses: 4
    Dernier message: 31/03/2007, 22h28
  3. [SQL Server 2000] Extraction dans une chaine de caracteres
    Par KOFJCH dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2006, 09h28
  4. [T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Sybase
    Réponses: 1
    Dernier message: 21/09/2006, 08h28
  5. [SYBASE][T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/09/2006, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo