Amis programmeurs, bonjour,
cela doit être la trois ou quatrième fois que je laisse un message sur un forum de ma vie, pour un problème de programmation, car j'ai toujours trouvé une réponse quelque part enfoui dans le net. Mais là, je cale, sur une chose qui me paraît pourtant simple.
J'ai un projet à faire sous
Delphi 7, avec une communication avec une base de données locale (
MS SQL 2000). Dans cette base de données, se trouvent plusieurs tables (organisées pareilles). Chaque table est conséquente, puisque j'en ai une qui atteint maintenant les 150 millions de lignes, et cela ne cesse d'augmenter.
Dans mon application Delphi j'aimerais récupérer tous les numéros
id qui correspondent aux critères de recherche de l'utilisateur. Pour ce faire, j'utilise un SELECT, mais mon application plante, car la recherche des éléments est trop longue (par ailleurs, la mémoire programme utilisée passe de 9 Mo à 50 Mo en peu de temps).
Donc j'aimerais savoir si quelqu'un peu me dire, s'il existe une solution rapide pour récupérer ces
id ?
Voici le bout de code qui récupère les id :
Code Delphi :
requeteSQL:='SELECT '+produit+'.id FROM '+produit+' WHERE (id_produit = '+inttostr(numIdProduit)+') AND (id_machine = '+inttostr(numMachine)+') AND (id_mesure = '+inttostr(numMesure)+')';
with Query do begin
Close;
SQL.Clear;
SQL.Text:=requeteSQL;
Open;
nbRecords:=RecordCount;
if nbRecords<>0 then begin
log.Caption:=log.Caption+#13+'Records id : '+IntToStr(nbRecords)+' lignes';
while not Eof do begin
numId:=FieldByName('id').AsInteger;
Next;
end;
end else begin
log.Caption:=log.Caption+#13+'!!!Recherche... => données inexistentes !!!';
end;
Close;
end;
requeteSQL => String
Query => TADOQuery
Au préalable, je récupère quatre informations : le nom de la table (
var produit), un numéro de produit (
var numIdProduit), un numéro de machine (
var numIdMachine) et un numéro de type de mesure (
var numIdMesure)
mais la requêtes ne renvoie jamais mon résultat (car mon appli plante).
Voici l'organisation de ma table dans laquelle je fait ma recherche :
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ id + id_produit + id_machine + id_mesure + autres_donnees +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+_1__+_15_________+_16_________+_2_________+................+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ etc.......................................................+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Pour de plus amples informations, je peux répondre à vos questions, si je ne suis pas assez clair.
Merci d'@vance
@++;
P.S : je suis débutant en Delphi