Page 1 sur 1

[R] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 01:51
par overflow
Bonjours

Apres recherche je suis bloquer sur la fonction " LIMIT "
j essaye d afficher des enregistrement suivant leur position mais sans succes

ceci marche par exemple :

Code : Tout sélectionner

$SQL = "SELECT * FROM matable" 

$SQL = "SELECT * FROM matable WHERE nom='test'"
 
mais pas ceci

Code : Tout sélectionner

$SQL = "SELECT * FROM matable LIMIT 1,5"
 
matable a 25 enregistrement et les deux premieres commandes fonctionnent bien

pour la derniere j ai l erreur suivante "erreur de syntaxe dans la clause FROM"

on dirait qu il ne reconnais pas LIMIT comme mot clef

Re: [..] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 12:17
par jchd
Essaye :
$SQL = "SELECT * FROM matable LIMIT 1 OFFSET 5"

SQLite par exemple accepte les deux syntaxes, mais pas tous les moteurs SQL (ça serait bien trop simple !).

Re: [..] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 17:11
par overflow
Même erreur
Le sujet ayant été déplacer (j'ai posé la question sur un autre post au lieu d en créer un)
je rajoute cette portion de code

Code : Tout sélectionner

Global $AccessDB = @ScriptDir & "\bdd.mdb"
Global $oAccessADO = _adoaccessOpen($AccessDB)
Global $rsAccess = ObjCreate("ADODB.Recordset")
Global $SQL = "SELECT * FROM matable where nom=''";==>> selectionner ma table.
$rsAccess.open($SQL, $oAccessADO, $adOpenStatic, $adLockOptimistic)
 
vue que je decouvre seulement les cmd sql dans un script autoit mon code peut être faux

Donc , ce code donne bien les enregistrement dont le champ "nom" est vide
J essaye de le remplacer par une requete qui me donnerais ,par exemple, les enregistrement de 1 a 5

Code : Tout sélectionner

$SQL = "SELECT * FROM matable LIMIT 1,5" ; < erreur
$SQL = "SELECT * FROM matable LIMIT 5" ; < erreur
$SQL = "SELECT * FROM matable LIMIT 1 OFFSET 5" ; erreur
 
Erreur :

Code : Tout sélectionner

err.description : Erreur de syntaxe dans la clause FROM
err.number is : 80020009
err.source is : Microsoft Jet Database Engine
err.helpcontext is 5003131
 
Je cherche également des infos sur les commandes ajouté apres une variables comme

$oConn.ConnectionString
$oConn.open
$oConn.execute

etc. . . .

Re: [..] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 19:10
par jchd
Un p'tit coup de Google pour la route et hop, voilà la réponse (en pur brichou, désolé) :

http://stackoverflow.com/questions/1564 ... cess-limit

Voir particulièrement la dernière réponse notée 3 (vers le milieu de la page) qui confirme que la syntaxe n'a jamais été implémentée.

Autres infos sur le sujet pour divers moteurs : http://cmsaville.ca/documents/MiscDocs/ ... Offset.pdf

Encore une bonne raison pour jeter ce bidule ou, mieux, le lancer très loin, très fort, bien au delà des limites du disque dur.

Re: [..] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 19:13
par overflow
arf . . . .

Bon alors si je vais essayer avec sql lite mais le format de la bdd ne vas pas etre le meme

...

Re: [..] Problème Base de données avec ADO, ADOX, DataLinks

Posté : mar. 30 nov. 2010 22:28
par jchd
Apparemment, Access propose une clause "TOP n" pour récupérer les n premiers enregistrements, mais n'étant pas praticien de cette atrocité je n'en dirai pas plus, même en présence d'un avocat.