Bonjour,
je suis de nouveau complètement largué dans mon développement.
Voici le bout de code qui me pose problème :
function Cherche_structure : Integer; var pFlds: pFLDDesc; i: Integer; begin // Initiation des variables pFlds := AllocMem((Table_pour_structure.FieldCount + 1) * sizeof(FLDDesc)); FillChar(pFlds^, (Table_pour_structure.FieldCount + 1) * sizeof(FLDDesc), 0); Check(DbiGetFieldDescs(Table_pour_structure.handle, pFlds)); SetLength(Tabstructure, Table_pour_structure.FieldDefs.Count); SetLength(Tablongeurstring, Table_pour_structure.FieldDefs.Count); SetLength(Tab_signe, Table_pour_structure.FieldDefs.Count); SetLength(Tab_nom_champ, Table_pour_structure.FieldDefs.Count);
for i := 0 to Table_pour_structure.FieldDefs.Count - 1 do begin if i <> 0 then begin Inc(pFlds, 1); // Passer au champ suivant ... end; Tablongeurstring[i]:=pFlds^.iUnits1; // Récupération de la longeur du champ Tab_nom_champ[i]:=pFlds^.szName; // Récupération du nom du champ if LeftStr(pFlds^.szName,3)='NS_' then // Test du nom du champ pour savoir si l'on a un entier signé ou non Tab_signe[i]:=False else Tab_signe[i]:=True; Case pFlds^.iFldType Of // Récupération du type de donnée du champ 1: begin if LeftStr(pFlds^.szName,2)='H_' then Tabstructure[i] := 'Heure' else Tabstructure[i] := 'String'; end; 2: Tabstructure[i] := 'Date'; 3: Tabstructure[i] := 'Memo'; 4: Tabstructure[i] := 'Bool'; 5: Tabstructure[i] := 'Integer'; 6: Tabstructure[i] := '???'; 7: begin if pFlds^.iUnits2=0 then begin Tabstructure[i] := 'Integer'; end else begin Tabstructure[i] := 'Float'; end; end; Else Tabstructure[i] := 'Ché pas'; End; end; Result:= Table_pour_structure.FieldDefs.Count; end;
Je n'ai encore rien modifié dessus pour le moment.
Le seul truc qui me parait logique est de modifier les Table_pour_structure (TTable) par de l'adoquery puisque c'est le composant que j'utilise pour toutes mes modifications.
Le vrai problème c'est que je ne connais absolument pas pFLDDesc et je n'ai rien trouvé de très concluant à son sujet.
J'aimerai donc avoir un peu d'aide sur cette fonction pour virer l'existant afin d'avoir un truc qui fonctionnerai avec SQL. Je prend également les docs concernant pFLDDesc.