Delphi 7 et BD : pb d'accent !

Delphi 7 et BD : pb d'accent ! - Delphi/Pascal - Programmation

Marsh Posté le 29-08-2003 à 18:19:38    

Salut à tous,
 
bon en fait désolé pour le titre je ne voyais pas quoi mettre pour être plus explicite. Alors je vous explique mon pb :  
J'ai une base de donnée au format .dbf dans laquelle se trouve des noms, prenoms, date de naissance ...
Losrque j'ouvre ce fichier via Excel, les prénoms apparaissent correctement avec les accents.
Lorsque j'incorpore cette même BD avec delphi (grâce à l'expert fiche) lors de la lecture des champs, Delphi remplace tous les accents par une barre verticale epaisse. Comment remédier à ce pb ?
 
Merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 18:19:38   

Reply

Marsh Posté le 29-08-2003 à 18:29:17    

davidmarli a écrit :


Lorsque j'incorpore cette même BD avec delphi (grâce à l'expert fiche)  


 
Tu peux donner plus de détails ?  
Tu lis la BD via quels composants ? C'est quoi l'"expert fiche" ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 18:38:09    

ben pour generer la fiche avec tous les champs correspondant à ma BD je fais :  
 
Base de Données-->Expert Fiche.
Là un assistant s'ouvre,
je choisis :  Creer une fiche Simple et Creer une fiche avec des objets TTAble
Ensuite je fais "suite",
Je choisis mon .DBF  
je fais "Suite",
Je prends tous les champs, et je fais "Terminer"
 
Voilà, cela crée une fiche avec ta base de données.
 
J'ai été clair cette fois-ci ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 18:41:05    

J'ai jamais utilisé ces trucs automatiques :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 18:58:02    

bon d'accord, mais à mon avis ça revient au même que de le faire à la main sauf qu'on y passe 2 secondes.
 
Et pour mes accents ???


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 19:53:44    

bah je sais pas, j'aurais dit de regarder dans les paramètres de connexion à la BD (TADOConnection quand on passe par ADO par exmple) s'il y a pas une option concernant le codage des caractères, mais là je suppose qu'il fait un accès direct à la table.
 
Tu dis que ça revient à la même que de le faire à la main, beh non justement :D


Message édité par antp le 29-08-2003 à 19:54:17

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 19:56:10    

euh au risque de passer pour un nullos : c'est quoi ADO ???


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:03:16    

en gros, c'est des objets de Microsoft servant à se connecter aux bases de données.
TTable, TDatabase, etc. = BDE, truc en fin de vie, qui oblige à installer BDE sur les machines où on fera tourner le soft
TADOTable, TADODatabase, etc. = ADO/MDAC, ça tourne sous 2000/XP sans install spéciale, et sur les autres Windows il faut mettre à jour MDAC si ça n'a pas encore été fait


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 20:10:16    

bon alors du coup, il faut que je crée ma fiche avec tous les champs à la main ??? (avec ADO) parce que dans ma base il doit y avoir une centaine de champs !


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:11:34    

Je sais pas [:spamafote] Si t'as le temps ça vaudrait le coup de faire un test rapide en ADO avec un champ (pas besoin de mettre les 30).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 20:11:34   

Reply

Marsh Posté le 29-08-2003 à 20:19:42    

ben ok c'est parti ... Seulement moi j'ai jamais fais de BD, donc si tu as le temps la maintenant je técoute, j'ai Delphi ouvert sous les yeux.
Que dois-je poser sur ma form ?
 
Désolé de t'importuner de la sorte, mais bon si je comprends pour un champs, je pense pouvoir y arriver pour les autres.


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:24:11    

Je ne sais pas comment on fait pour accéder à du DBF, je n'ai utilisé que des bases Access et Oracle :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 20:26:27    

O rage, o desespoir, o veill...


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:27:03    

bon sinon en fait il faut quoi sur la form. Parce que les composants dispos ne sont pas très explicite !


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:29:04    

en général un TADOConnection, TADOTable qui y est relié, puis ça marche comme les autres compos.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 20:36:29    

bon ok, j'ai mis le chemin de mon fichier DBF dans tablename, qd je clique sur le comosant ADOtable sur ma forme, tous les champs apparaissent.
Maintenant comment je fais pour visualiser un élément ?
 
Par exemple dans ma table j'ai un champ qui s'appelle ELEPRE. Comment puis-je récupérer ce qu'il contient. (et par exemple ce que contient le 50eme enregistrement de ce champs ?) euh la je ne sais pas si je suis très clair.
 


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:40:06    

Si tu utilises les TDBEdit par ex, tu en mets un sur ta form, tu le relies à la TADOTable via un TDataSource (onglet Data Access)
Ensuite t'as une propriété DataField dans les propriétés de ce TDBEdit.
Et pour aller au 50è enregistrement, tu utilisais quoi avant ?
Tu peux toujours mettre un TDBNavigator pour parcourir les enregistrements.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 20:43:44    

euh c'est où ça les TDBedit ???


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:45:25    

et tant que j'y suis les tdatasource?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 20:47:59    

oups j'ai vu où tous ces composants sont localisés .
 
bon et bien c'est bon avec ton système j'ai plus les problèmes d'accent. Donc je te remercie Bp, et encore une fois désolé de te faire perdre tontemps, avec des questions qui doivent te paraitre très bêtes !
Merci bp


Message édité par davidmarli le 29-08-2003 à 20:50:51

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 29-08-2003 à 21:11:44    

Tu ne me fais pas perdre mon temps ;) Si je ne voulais pas "perdre mon temps" je ne viendrais pas sur le forum


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-08-2003 à 22:41:26    

à l'occasion jettes un oeil sur ces cours ->la <-. tu gangneras, je pense, un temps fou ! :D
 
@++


Message édité par KrzAramis le 29-08-2003 à 22:42:08
Reply

Marsh Posté le 30-08-2003 à 08:45:52    

Merci bp pour le lien, j'ai juste parcouru comme ça je vais m'y plonger.  
J vais enfin pouvoir comprendre la BD !!


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 30-08-2003 à 10:48:45    

Rhoo,
 
Je crois savoir que www.about.com est le lien par defaut quand tu demandes une aide en ligne à delphi. C est celui la plus boralnd developper Network. A confirmer.
 
voila pour la petite histoire.
 
@++

Reply

Marsh Posté le 30-08-2003 à 11:43:26    

bon c'est encore moi, et mes questions ! :D
 
Voilà, j'aimerais refaire une barre de navigation plutôt que d'utiliser celle de DBnavigator. (en fait je voudrais juste changer les icônes, afin que l'interface soit un peu plus attirante).
 
Comment puis-je faire ?


Message édité par davidmarli le 30-08-2003 à 11:44:30

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 30-08-2003 à 11:48:46    

Tu mets des icônes et tu leur fais effectuer les actions genre Table1.Edit, Table1.Post, Table1.Next, etc.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-08-2003 à 12:33:48    

merci, ça marche impec .


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 08:26:29    

Autre question : c'est normal qu'on doive mettre un login et un mot de passe pour accéder à la BD ?  
Parce que ma bd c'est pas des données Ultra Hyper Giga important.
Si on peut enlever le login comment fait-on ?
Merci
 
Autre question : j'ai donc chargé ma première base de données (qui contient des donnés sur les élèves d'un collège (nom, prenom date de naiss ...) Dans la bD il y a un champ avec un code correspondant à la nationalité de l'élève. J'ai récupéré sur le site de l'insee la correspondance code<->pays (ceci se présente sous la forme d'une BD avec plusieurs champs : un pour pour le code, un autre pour la nom du pays ...) J'ai donc crée une nouvelle BD dans delphi pour accéder à ces données.
Bien j'en viens à la question proprement dite : lorsque je parcours la première BD, j'ai mis un DBedit pointant sur le champ ELENAT (contenant un numéro, par exemple 100). J'ai donc ce numéro qui s'affiche dans ld DBedit correspondant. Comment faire pour qu'il s'affiche plutôt le nom du pays, en allant regarder dans la seconde bd ?
MErci (je ne sais pas si c'est très clair.)


Message édité par davidmarli le 31-08-2003 à 11:09:18

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 11:39:09    

en fait je vias poser ma deuxième question différemment.
J'ai donc dans un dbedit le numéro d'une nationalité.
Je sais que je peux retrouver ce numéro dans un champ appelé COG d'une autre base de données.
Bien, comment retrouver une données dans une table ?
 
je voudrais par exemple une commande qui me dise, "et bien ce numéro est le 24ème enregistrement dans ta base"
Du coup pour choper le nom du pays j'aurais qu'à ressortir le nom.


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 12:40:16    

s'il y a des liens entre tes tables ou des colonnes commune (genre numéro présent dans les deux tables) ça doit pouvoir se faire via les propriétés "master" et je sais plus quelle autre pas loin, mais j'ai jamais utilisé ça.
 
Pour le mot de passe, il y a moyen de ne pas le mettre, mais je ne sais plus comment... il faut peut-être passer par un TADOConnection.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 31-08-2003 à 18:25:56    

En effet c est le ADOConnection qui gere le mot de passe. De plus si tu veux virer le mot de passe il suffit de mettre la propriete loginprompt a FALSE.
De tout facon si tu fais la Connection String a la main et comme il le faut y a pas de probleme. Tu peux meme faire de la prise en charge de DB en dynamique (c a d pas code en hard). Il me semble bien avoir appris tout ca dans le lien que j ai file plus haut (d ailleurs c est antp qui me la file en premier).
Pour ton histoire de DBEdit ou de DBCombobox (qui je pense seai plus adpaté) tu devrais eviter !
A la place utilise une Combo classique dans laquelle tu mets tes pays ou tes numeros et dans l evenement OnChange de la Combobox tu executes une requete SQL qui te recopies le pays ou le numero la ou il faut. !! avec un peu de chance ca risque de marche dans les deux sens.
 
Je suis desole je me suis un peu perdu dans ta question.
 
@++

Reply

Marsh Posté le 31-08-2003 à 19:01:51    

euh question à 100 balles ? C'est quoi une requête SQL ??????


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 21:06:47    

Serieux tu sais pas ca ? tu abuses la!
C est pas possible à mon sens de faire de  la base de donnes sans connaitre SQL !!!
Dans ton cas en gros tu as besoins d un TADOCommand et dans l evenement OnChange de la combobox tu fais

Code :
  1. procedure Tform1.CmbbxOnchange ( sender : Tobject);
  2. var cmd : string;
  3. begin
  4.   with ADOCommand do begin
  5.     cmd := 'SELECT FROM Tab_Avec_Num WHERE '+ cmbbx.Items[cmbbx.Itemindex];
  6.     Command := cmd;
  7.     Execute;
  8.    end;
  9. end;


 
un requete sql comme ci dessus sert  à consulter la base de donnees, a trier les donnees dans une base etc.
Conclusion tu gagnerais beaucoup de tems a lire et faire les tutroiaux.
 
@++

Reply

Marsh Posté le 31-08-2003 à 21:08:38    

krzAramis a écrit :


C est pas possible à mon sens de faire de  la base de donnes sans connaitre SQL !!!


 
bah si, tu peux ne connaître que la théorie, les tables, les BD relationnelles, etc. sans avoir à manipuler de SQL...
Le SQL n'est qu'un (pas l'unique) langage de manipulation de BD


Message édité par antp le 31-08-2003 à 21:08:54

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 31-08-2003 à 21:35:32    

pour répondre à KrzAramis, ben en fait je ne JAMAIS fais de BD. J'ai juste besoin d'utiliser des Bd pour mon prog. De plus à priori je n'ai pas grand chose à savoir dessus : juste savoir localiser un élément de la base. Car Pour Ajouter, supprimer des éléments Delphi le fait tout seul (enfin il suffit d'une seule commande et celles-ci je les ai comprises.)
 
Voilà pourquoi je n'ai pas envie (et le temps) de passer des heures à faire des tuto sur les BD.
 
au fait c'est censé faire quoi ta requete ?
 
J'ai bien compris que tu recherches dans la BD où j'ai les codes, le code qui est dans la combobox. Mais Command ça fait quoi ?
et Execute ?


Message édité par davidmarli le 31-08-2003 à 21:37:51

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 21:42:26    

au fait dans ton code KrzAramis, Delphi me dit que Command est un identificateur non déclaré !!


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 31-08-2003 à 22:01:02    

Puis pour exécuter du SQL c'est en général ADOQuery plutôt qu'ADOCommand qu'on utilise.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed