Pb ajout champs DBase [Résolu]

cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 17 déc. 2004 à 10:30 - Dernière réponse : jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 20 déc. 2004 à 15:27
Bonjour à tous, bon j'expose mon problème. J'ai crée un petit programme en Delphi 4 qui travaille avec des tables de données DBase IV.

Sur une des tables DBase j'aimerais pouvoir ajouter un champs de type "Float" à une table existante à l'execution mais je n'ais absolument pas trouvé comment faire.

La seule aide que j'ai trouver c'est comment créer une nouvelle table. La aussi si je crée un champ de type string ça marche bien mais si j'essaie de créer un champ de type Float ça ne marche pas.

with Table1 do // Table1: TTable;
begin
TableName := 'Data.dbf';
TableType := ttDBase;
TableLevel := 4;

with FieldDefs do
begin
Clear;
Add('Filed1', ftFloat, 0, false);
end;

CreateTable;
end;

Je vous remerci d'avance pour votre aide !!
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 20 déc. 2004 à 12:03
3
Merci
ca roule c'est sympa.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.

Merci jmp77 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de jmp77
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 11:29
0
Merci
Alors la commande pour ajouter un champ float est :

Table1.FieldDefs.Add(NomChamp,FieldType,LStrChaine,Required);

Avec :
NomChamp = Le nom que tu veux pour ton champ;
FieldType = Le type de ton champ FieldType := FtFloat pour un champ float
LStrChaine = Taille du champ ici 0 pour un float car le format float est définie par defaut
Required = Boolean est ce que ce champ doit toujours etre remplit

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 17 déc. 2004 à 15:17
0
Merci
merci jmp77 pour ta réponse, mais j'arrive toujours pas à ajouter un champs à l'execution. Le code passe mais aucun champ n'est crée :sad) . Voici mon code:

Table1.Active := False;
Table1.Filtered := False;
Table1.TableName := 'c:\Test.dbf';
Table1.FieldDefs.Add('NEW', ftFloat, 0, true);


Si j'ajoute CreateTable il m'efface tous les champs et me crée mon champ "NEW".

Je vous remercie d'avance si vous avez une solution 8-)
Commenter la réponse de cupracing
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 15:54
0
Merci
Effectivement en recherchant dans ma émoire je me souviens que j'ai du faire ce genre d'opérations il ya quelques mois en arriere et je n'ai jamais trouvé comment faire. J'étais passer par un composant annexe mais pas freeware. Mais son utilisation etait temporaire.
Je suppose que toi tu desires garder en permanence cette fonctionnalité sur ton soft?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 17 déc. 2004 à 16:03
0
Merci
oui j'aimerais bien garder cette fonctionnalité sur mon soft, tu te souviens du composant que tu avais utilisé ?
Je vais encore essayer de chercher une solution, sinon j'essayerais d'utiliser le composant dont tu me parles.

En tout cas merci pour ta réponse ;)
Commenter la réponse de cupracing
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 16:25
0
Merci
Alors j'ai peut etre trouver une solution.

Telecharge et installe ce compo freeware :
http://www.torry.net/db/other/db_other/dbupdate.zip

Ensuite tu le poses sur ton appli et tu tapes ceci :
DbUpdate1.TableName := 'C:\Matable.db';
DbUpdate1.AddField('new',ftfloat,0);
DbUpdate1.Exec;


A 1er vue ca fonctionne avec dbase mais je n'ai que des tables paradox pour essayer et ce ne marche pas. Dis moi si avec une table dbase ca fonctionne.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 16:34
0
Merci
Tiens finalement en cherchant bien j'ai trouvé ces deux liens qui repondent à tes attentes :
http://www.elists.org/pipermail/delphi-db/2000-November/002733.html
http://info.borland.com/devsupport/bde/bdeapiex/dbidorestructure.html

Voila avec ca tu devrais avoir ton bonheur.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 17 déc. 2004 à 16:52
0
Merci
j'ai essayé le composant "dbupdate", lorsque j'essaie j'ai une erreure lorsque j'appel la fonction "Exec". L'erreur est la suivante:

Le projet Project1.exe a provoqué une classe d'exception EDBEngine Error avec le message 'Fonctionnalité non supportée.' Processus stoppé ...


tu trouves la même erreur avec les tables paradox ?

Sinon merci pour les 2 liens je pense effectivement que je vais trouver mon bonheur ! je te tiens au courant !!

merci merci :big)
Commenter la réponse de cupracing
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 17:00
0
Merci
Ouais la meme erreur.

Lache l'affaire et prends les deux liens que je t'ai donné normalement avec ca c ok.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 17 déc. 2004 à 17:02
0
Merci
Et surtout sans composants additionels.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 20 déc. 2004 à 10:30
0
Merci
Alors ca a fonctionner au fait?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 20 déc. 2004 à 12:01
0
Merci
excuse moi de te répondre que maintenant, mais j'ai pas pu testé ce week end. Là je viens d'essayer mais j'ai encore une erreur quand j'appelle la fonction "Check"

Le projet Project1.exe a provoqué une classe d'exception EDBEngine Error avec le message Descripteur de champ incorrect.' Processus stoppé ...


je ne sais pas non plus qu'est ce qu'il faut saisir dans ces variables:

pFlds^.iFldType := NewField.iType;
pFlds^.iSubType := NewField.iSubType;
pFlds^.iUnits1  := NewField.iLength;
pFlds^.iUnits2  := NewField.iPrecision;


bon je continue a chercher d'où vient le problème et te tiens au courant.
A+
Commenter la réponse de cupracing
cupracing
Messages postés
28
Date d'inscription
vendredi 3 novembre 2000
Dernière intervention
24 février 2005
- 20 déc. 2004 à 14:57
0
Merci
Je te remercie vraiment bcp jmp77, c'est super ça marche !!! :big)

voici un exemple ici

8-)
Commenter la réponse de cupracing
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 20 déc. 2004 à 15:02
0
Merci
Trop cool je suis content.

En plus tu en as fais une source. Ca c'est super sympa pour la communauté.

Félicitations.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
- 20 déc. 2004 à 15:27
0
Merci
Tiens si ca t'interesse maintenant tu peux utiliser cette source pour voir la création dynamique des composants de base de données TDatabase,TTable et TDatasource :
http://www.delphifr.com/code.aspx?ID=28226

Pour info ce sont des tables paradox.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.