PFLDDesc

vico8000 - 9 août 2017 à 15:22
 vico8000 - 10 août 2017 à 10:30
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.

Merci par avance. Cordialement.

2 réponses

papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
10 août 2017 à 09:27
salut
peut être en regardant l'unité BDE
http://velocityps.com/Delphi6/Install/program%20files/Borland/Delphi6/Doc/BDE.int
dans la laquelle se trouve pFLDDesc.
Tu utilise paradox ??
0
Salut,

Merci pour ta réponse, je jette un coup d'oeil à ce que tu m'as envoyé.

Non je n'utilise pas paradoxe. Je suis actuellement sous DBase et je migre vers MSSQL.

Cordialement.
0
Rejoignez-nous