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 :
Le plantage survient au moment du QueryTable->Open(); i est encore égal à 0.
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();
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.![]()
Partager