Petit soucis avec l'instruction LIMIT dans une commande SQL, ça fait un petit moment que je n'avais plus toucher a Builder, peut etre suis-je rouillé.

Voici le code :
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
16
17
18
for  ( int i=0; i<DataModule1->DSNListe->Count; i++)
{ TQuery* QueryTable;
  QueryTable = new TQuery(NULL);
  QueryTable->DatabaseName=DataModule1->DSNListe->Strings[i];
  QueryTable->Close();
  QueryTable->SQL->Clear();
 
  AnsiString QueryTable_Str;
  QueryTable_Str ="SELECT table1.id, a, b, c ";
  QueryTable_Str+= " FROM table1";
  QueryTable_Str+= " LEFT OUTER JOIN table2 ON table1.id=table2.id";
  QueryTable_Str+= " WHERE table1.id=";
  QueryTable_Str+= id;
  QueryTable_Str+= " ORDER BY date DESC";
  QueryTable_Str+= " LIMIT 0,300";
 
  QueryTable->SQL->Add(QueryTable_Str);
  QueryTable->Open();
Le plantage survient au moment du QueryTable->Open(); i est encore égal à 0.

Si j'enlève la ligne QueryTable_Str+= " LIMIT 0,300"; il n'y a plus de plantage.

J'ai essayé de remplasser cette ligne par LIMIT 300 OFFSET 1 mais rien n'y fait, j'ai toujours ce plantage de l'application.

Quelqu'un peut m'aider ?

En fait j'ai trouvé, LIMIT n'est pas pris en charge par Access.