Page 1 sur 1
access en mode sql pur
Posté : 31 mars 2008, 10:02
par thewind1
Bonjour,
J'aimerai savoir pourquoi "%" n'est-il pas accepté par access 2000 en mode sql svp ?
On est obligé de mettre * pour que l'affichage des données se fassent !?
Il y a peut être quelque chose à modifier dans apache/config ?
Merci.
Posté : 31 mars 2008, 10:13
par Sékiltoyai
Dans apache ?
Euh, msaccess n'a rien à voir avec apache, access c'est une base de données microsoft…
Posté : 31 mars 2008, 10:53
par thewind1
D'après phpteam on peut se connecter à une base access :
http://www.phpteam.net//expert/simulati ... c-php.html
Il s'agit d'une base access, de mon côté qui va alimenté une autre base mssql par odbc pour afficher les infos.
Le problème c'est que dans le script php, la requète, par la méthode odbc , qui interroge access n'accepte pas le "%" pour afficher toutes les informations quand souhaite.
Access n'accepte pas le % mais * c'est ok.
Je pensai qu'il avait moyen d'activé quelque chose dans httpd.conf d'apache pour faire accepter les "*" dans les requètes destinées à access !?
Posté : 31 mars 2008, 11:27
par Sékiltoyai
Euh, la configuration de php ne se règle pas dans le httpd.conf…
Posté : 31 mars 2008, 11:28
par Cyrano
Non.
Chaque SGBD respecte plus ou moins les standards ANSI en matière de langage SQL, or Access comme d'autres a son propre dialecte SQL qui ne correspond par forcément aux standards. Donc si ça fonctionne avec "*", utilise "*" sans chercher à rendre MS-Access conforme aux standards, c'est une cause perdue en plus d'une perte de temps.
Posté : 31 mars 2008, 11:42
par thewind1
merci bien pour l'information.
ça confirme ce qu'on m'a dit à ce sujet.
Mais dans un script php, comment faire pour que "*" dans la requète soit accepter, si c'est possible ?
Sinon, y aurait-il une astuces pour contourner le problème ?
Posté : 31 mars 2008, 11:50
par Cyrano
Comment envoies-tu donc ta requête à MS-Access ? Pour PHP, ta requête n'est qu'une chaine de caractères sans signification. Illustrer ce que tu fais avec un peu de code aiderait sans doute à repérer une éventuelle erreur

Posté : 31 mars 2008, 12:14
par thewind1
Ok, le voici :
Code : Tout sélectionner
$req_ligne="select p_lncustdlv.lncustdlvincde ,
p_lncustdlv.hdcustdlvincde ,
p_lncustdlv.lncustordincde ,
p_lncustord.objincde ,
p_lncustord.objdsc ,
p_lncustord.classincde ,
p_lncustdlv.dlvqty ,
p_lncustord.objexcde ,
p_lncustdlv.dctunithtprc
from p_lncustdlv , p_lncustord , p_hdcustdlv
where p_lncustdlv.lncustordincde=p_lncustord.lncustordincde
and p_hdcustdlv.hdcustdlvincde=p_lncustdlv.hdcustdlvincde
and p_lncustdlv.dctunithtprc <> 0
and p_lncustord.objexcde like '%[0-9]S'
and p_lncustord.analyacctcde='F05'
and year(p_hdcustdlv.hdcustdlvdte) >= $annee_maj
and month(p_hdcustdlv.hdcustdlvdte) >= $mois_maj
and day(p_hdcustdlv.hdcustdlvdte) >= $jour_maj
";
Posté : 31 mars 2008, 12:30
par Ryle
Alors histoire de remettre les choses au clair :
- Apache est un serveur web. Les navigateurs l'interrogent et il leur retourne des pages html.
- PHP est un serveur applicatif. Le serveur web lui demande un traitement et php lui retourne le résultat, sous forme de code html qu'il va pouvoir renvoyer au navigateur
- Access et MySQL sont des bases de données. Elles sont interrogées par php pour récupérer ou mettre à jour les informations qui y sont stockées.
Tout ça pour dire qu'il ne sert à rien de bricoler la config d'apache ou de php pour modifier le fonctionner d'access ou de mysql
Concernant Access, son LIKE utilise effectivement une syntaxe différente qui te permet d'utiliser des (pseudo) expressions régulières pour donner un masque plus précis à ta recherche. Pour MySQL l'opérateur LIKE te permet seulement de spécifier les parties de la chaine que tu ne connais pas. En revanche MySQL propose l'opérateur REGEXP (ou RLIKE) pour utiliser des expressions régulières.
Dans tous les cas, ta requête n'est, en l'état, pas compatible et il te faut l'adapter en fonction de la base de données sur laquelle tu es connecté.
Access LIKE :
http://office.microsoft.com/en-us/acces ... 31033.aspx
MySQL REGEXP :
http://dev.mysql.com/doc/en/regexp.html
Posté : 31 mars 2008, 13:17
par thewind1
Merci beaucoup à tous.
