Syntaxe requete

cs_marlau Messages postés 11 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 19 juillet 2004 - 5 juil. 2004 à 16:21
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006 - 9 juil. 2004 à 10:15
Problème de syntaxe requete qui fonctionne très bien sous ACCESS en ODBC

DELPHI 6 Base MsSQL
J'ai 3 tables(entre autres...) avec les champs suivants:

TOTO.AFF_NUM
TOTO.AFF_ID

TUTU.AFF_ID
TUTU.AFF_ITEM_ID

TITI.AFF_ITEM_ID
TITI.IDENT
TITI.DIM_X
TITI.DIM_Y

on ne connait que TOTO.AFF_NUM

et l'on veut mettre dans des tableaux (il peut y avoir plusieurs enregistrements.)
TITI.IDENT
TITI.DIM_X
TITI.DIM_Y

J'ai:

1 ADOConnection qui pointe sur la base.
3 ADOTable pour les 3 tables.
3 DataSource
1 ADODataSet
1 DataSource pour le DataSet
3 DBGrid (pour controle) ils fonctionnent
1 Edit pour entrer la valeur TOTO.AFF_NUM
et 2 3 boutons.

je veux faire une requete du style:

Select TITI.IDENT, TITI.DIM_X, TITI.DIM_Y, TOTO.AFF_NUM
from TOTO INNER JOIN (TITI INNER JOIN TUTU
on TITI.AFF_ITEM_ID=TUTU.AFF_ITEM_ID)
on TOTO.AFF_ID=TUTU.AFF_ITEM_ID
where TOTO.AFF_NUM=Edit1.text

comment declarer mon tableau et le remplir?

Merci

6 réponses

TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
6 juil. 2004 à 10:19
Je suppose ke ton nombre de données recupérées est alléatoire :-p
Donc tu dois prendre un tableau dynamique :big)

Pr ta requete, tu peux faire :
Requete:='Select count(TITI.IDENT), TITI.IDENT, TITI.DIM_X, TITI.DIM_Y, TOTO.AFF_NUM 
from TOTO, TITI, TUTU 
where TITI.AFF_ITEM_ID=TUTU.AFF_ITEM_ID
and TUTU.AFF_ID=TOTO.AFF_ID
and TOTO.AFF_NUM='''+Edit1.text+''';


Tu va recuperer ton count ds une var de type integer X, et tu pourras definir la taille de ton tableau :
//var TonTableau:array of array of string; <= DECLARATION
Setlenght(TonTableau X, 3);

Pr remettre a zero ton tableau, tu as soit :
->Stelenght(TonTableau 0,0);
ou
_>Finalize(TonTableau);

:big)
Vala voilou ;)
0
cs_marlau Messages postés 11 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 19 juillet 2004
6 juil. 2004 à 19:23
Merci pour ton aide :)
Pour la requette c'est ok,

Je vois les résultats dans un DBGrid.

Pour la récupération dans un tableau, je coince... :sad)
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
7 juil. 2004 à 10:21
bon alors tu mets ta requete ds une var srting : Requete

//Pr l'exécution de ta requete!!!
frmPrincipal.Requetes.Close;
frmPrincipal.Requetes.SQL.Clear;
frmPrincipal.Requetes.SQL.Add(CorpsReq);
frmPrincipal.Requetes.ExecSQL;

//tu recupere, comme g mis plus haut, le nombre  d'enregistrement ke tu aura, grace a un COUNT  :-p  ds une variable de type Integer(ex Nbr)!!!
Nbr:=NomTQuerry.Fields.fields[0].asinteger;
//Definition du tableau
Setlenght(TonTab Nbr, 3);

//Alimentation du tableau
x:=0;
NomTQuerry.open;
NomTQuerry.first;
While x<Nbr do
  begin
  Tontab[x,1]:=NomTQuerry.fields.fields[0].asstring//ou autre
  Tontab[x,2]:=NomTQuerry.fields.fields[1].asstring//ou autre
  Tontab[x,3]:=NomTQuerry.fields.fields[2].asstring//ou autre
  x:=x+1;
  NomTQuerry.next;
  end;
NomTquerry.close;


Voila voilou, je pense ke tu as tout now :big)
0
cs_marlau Messages postés 11 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 19 juillet 2004
8 juil. 2004 à 14:40
Je suis bouché, ou alors il me faut des vacances :sad)
Je recupère rien...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marlau Messages postés 11 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 19 juillet 2004
8 juil. 2004 à 15:20
Désolé, j'ai trouvé :)
ha cette syntaxe.................

Merci encore
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
9 juil. 2004 à 10:15
lol bah de rien ;)
0
Rejoignez-nous