FORUM DES UTILISATEURS / USER'S NEWSGROUP


Heures au format UTC + 1 heure




Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: rechercher dans texte achat
MessagePublié: 15 Sep 2016 16:23 
Hors-ligne
Abonné

Inscrit le: 03 Nov 2007 13:25
Messages: 175
Localisation: Suisse
Bonjour,

peut-on rechercher faire une recherche d'un mot dans le texte achat avec cette fonction:

and A."Texte" like '%[VAR4]%'

Merci de votre réponse

_________________
Almec Sàrl (Suisse, Mécanique de précision)
SOLUNE Ipso 16.1.2


Haut
 Profil  
 
MessagePublié: 19 Sep 2016 14:05 
Hors-ligne
Administrateur

Inscrit le: 03 Fév 2015 16:02
Messages: 67
Bonjour.

En SQL, NexusDB ne permet pas nativement d'effectuer cette opération; ainsi il ne sera pas possible de caster le texte afin de le comparer, ou de caster la chaine à comparer :

//SELECT * FROM "Produits" WHERE CAST("Texte" AS NULLSTRING(1000)) LIKE '%blabla%';
//SELECT * FROM "Produits" WHERE ToString("Texte") LIKE '%blabla%';
//SELECT * FROM "Produits" WHERE "Texte" LIKE Text2Blob('%blabla%');

=> Tout cela ne fonctionne pas !


Solution N° 1 : Si la recherche doit se faire sur plusieurs enregistrements.
Il faut utiliser les fonctions d'export/import pour convertir le texte Blob en Nullstring
Lors de l'export, préciser d'exporter les données sans formatage. (Toute la mise en forme et les images sont alors perdue)

A l'import, la chaine devra être placée dans un champ de type Nullstring suffisament grand pour contenir le texte.

La recherche peut alors se faire sur ce dernier.


DROP TABLE "##TMP-VerifBlob";
CREATE TABLE "##TMP-VerifBlob"(
"Produit" NULLSTRING(100),
"Texte" NULLSTRING(1000));

sExport(C:\Temp\VerifBlob.txt;SELECT "Réf. produit", "Texte" FROM "Produits";0;FALSE;FALSE;FALSE;TRUE);
sImport(C:\Temp\VerifBlob.txt;##TMP-VerifBlob;0;FALSE);

SELECT * FROM "##TMP-VerifBlob" WHERE "Texte" LIKE '%blabla%';


Solution N° 2 : Si la recherche porte sur un seul enregistrement.

Il est possible d'utiliser une variable du script pour y stocker le texte du champ Blob.
Cette variable sera ensuite insérée dans un champ de type Nullstring, à ce moment là, Solune converti le Blob en Nullstring, toute mise en forme est perdue.

La recherche devient possible.

DROP TABLE "##TMP-VerifBlob";
CREATE TABLE "##TMP-VerifBlob"(
"Texte" NULLSTRING(1000)
);

sTexte:=!SELECT "Texte" FROM "Produits" WHERE "Réf. produit" = 'Prod1';
INSERT INTO "##TMP-VerifBlob" ("Texte") VALUES ('[sTexte]');
SELECT COUNT(*) FROM "##TMP-VerifBlob" WHERE "Texte" LIKE '%blabla%';

Cordialement.

_________________
Nicolas - Service Développement Solune


Haut
 Profil  
 
MessagePublié: 20 Sep 2016 5:14 
Hors-ligne
Abonné

Inscrit le: 03 Nov 2007 13:25
Messages: 175
Localisation: Suisse
Oula!!

Merci beaucoup pour votre réponse complète.

Par contre, pour un utilisateur lambda, c'est pas évident ce type de champ 'blob' à manier...

bonne journée

_________________
Almec Sàrl (Suisse, Mécanique de précision)
SOLUNE Ipso 16.1.2


Haut
 Profil  
 
MessagePublié: 20 Sep 2016 9:08 
Hors-ligne
Abonné

Inscrit le: 03 Nov 2007 13:25
Messages: 175
Localisation: Suisse
Ben j'ai réussi... pas simple;)

PAr contre, la casse est pas terrible (V. Photos)

Merci encore


Pièces jointes:
Capture1.JPG
Capture1.JPG [ 34.65 Kio | Consulté 936 fois ]

_________________
Almec Sàrl (Suisse, Mécanique de précision)
SOLUNE Ipso 16.1.2
Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Aller vers:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr