|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| Inicio → WINDEV 2025 → SQL identifier le type de rubrique pour encadrer ou pas une variable avec des apostrophes |
| SQL identifier le type de rubrique pour encadrer ou pas une variable avec des apostrophes |
| Iniciado por damien.defeux, 25,mar. 2019 10:54 - 6 respuestas |
| |
| | | |
|
| |
| Publicado el 25,marzo 2019 - 10:54 |
Bonjour,
En faisant une requête SQL avec WHERE, comment savoir le type de la rubrique sur laquelle je fais ma recherche ?
C'est pour encadrer ou pas ma variable avec des apostrophes.
Exemple comment choisir quelle requête prendre en fonction du type de MaRubrique :
Var_MaRubrique est une chaine = "12"
"SELECT * FROM MonFichier WHERE MaRubrique ='" + Var_MaRubrique + "'"
OU
"SELECT * FROM MonFichier WHERE MaRubrique =" + val(Var_MaRubrique) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 25,marzo 2019 - 12:04 |
"SELECT * FROM MonFichier WHERE MaRubrique =" + val(Var_MaRubrique) est erroné, vous concaténez une String avec un entier. Il faut fournir une chaine interprêtable donc "SELECT * FROM MonFichier WHERE MaRubrique =" + Var_MaRubrique
En ce qui concerne les ' en principe on connaît le type des données que l'on manipule. Certains moteurs de base de données acceptent les côtes même pour des champs numériques Enfin pensez à doubler les côtes dans les chaines alpha
SELECT * FROM MonFichier WHERE MaRubrique ='D'Artagnan' doit être écrit SELECT * FROM MonFichier WHERE MaRubrique ='D''Artagnan'
Ce qui donne en syntaxe "SELECT * FROM MonFichier WHERE MaRubrique ='" + Remplace(Var_MaRubrique, "'", "''") + "' " |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 25,marzo 2019 - 15:26 |
Bonjour Quelle type de base de donnée HF, MySQL, Oracle, PostgreSQL ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 25,marzo 2019 - 15:39 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,marzo 2019 - 11:30 |
En général c'est du HF mais parfois du Oracle ou SQLServer.
Les bases de données ne sont pas les miennes et peuvent changer avec le temps, je travaille en dynamique. Du coup je cherche une solution pour mes requêtes.
Car rechercher la valeur .07854 dans une colonne texte ou numérique n'est pas pareil. En effet avec des ' cela fonctionne sans erreur, mais si je fais :
select * from MonFichier Where MaRubrique = '.07854' avec MaRubrique étant un numérique je vais récupérer les lignes avec 0 dans MaRubrique ce qui ne sera pas le cas si MaRubrique est du texte, ni je fais :
select * from MonFichier Where MaRubrique = .07854 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,marzo 2019 - 14:53 |
HListeRubriques si tu gères ton analyse depuis Windev Ensuite : Type=T ou Type=N |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,marzo 2019 - 15:17 |
Le plus simple semble être d'utiliser une requête paramétrée.
sdReq est une requete SQL = [ SELECT * FROM MonFichier WHERE MaRubrique = {pValCherche} ]
sdReq.pValCherche=12 HExecuteRequete(sdReq) |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|