requete SQL : comment préciser la table de recherche ? [DELPHI] - Delphi/Pascal - Programmation
Marsh Posté le 25-01-2004 à 22:56:02
From F_ELE ?
ou From F_ELE.DBF ?
ou encore From "F_ELE.DBF" ?
ou pour finir 'F_ELE.DBF' ?
(juste des idées comme ça, je ne me souviens plus comment j'avais fait... faut que je voie ça demain au boulot )
Marsh Posté le 26-01-2004 à 13:19:28
C'est bon j'ai trouvé : mon erreur était que les fichiers de BD n'étaient pas dnas mon rép de mon projet !
Une fois copiées dedans plus de pb.
Sinon pourquoi cette suite d'instruction marche :
adotableBD.close;
adotableBD.tablename:='F_ELE';
adotableBD.open;
showmessage('toto');
ADOTABLEBD.first;
et lorsque je rajoute en dernière position la commande suivante
ADOTABLEBD.deleterecords(arcurrent);
Delphi m'indique : Le projet projet1.exe .... message : "La requête est trop complexe" !
Merci
Marsh Posté le 26-01-2004 à 13:56:56
c'est quoi "arcurrent" ?
edit: ok, vu dans l'aide, c'est une constante
Pourquoi tu fais pas juste Delete plutôt que d'appeler DeleteRecords ?
Marsh Posté le 26-01-2004 à 18:05:02
et bien même message : la requête est trop complexe !!!
Franchement la BD c'est bien, mais ça commence à me gon... !
Sinon avant de faire un ADOTABLEBD.delete
faut-il mettre
ADOTABLEBD.Insert; ????
Et après un ADOTABLEBD.post; ?????
Merci
Marsh Posté le 26-01-2004 à 19:07:38
bah non, juste le delete.
C'est ce genre de problèmes qu'on a avec ces composants automatiques.
Alors qu'avec des bêtes requêtes SQL et un TADOQuery en général ça passe, mais :
- il faut connaître le SQL
- pour Paradox/dBase c'est pas terrible en général
- ça empêche souvent d'utiliser les composants automatique (TDBEdit, etc.)
Marsh Posté le 26-01-2004 à 20:04:41
bon j'ai fait autrement : j'ai posé un ADOCOmmand
et en textcommand j'ai fait :
'DELETE From F_ELE' !
Sinon question bête : si j'ai une table dans ma bd, et jee charge un fichier contenant une version plus récente de ma base : comment recupérer UNIQUEMENT les nouveaux enregistrments ou bien ceux qui ont été modifiés ?
J'ai entreaperçu une fonction update, mais j'ai pas bien compris son rôle .
Merci
Marsh Posté le 26-01-2004 à 20:07:24
davidmarli a écrit : |
ça vire tout le contenu de la table ça je pense
davidmarli a écrit : |
Update sûrement pas.
Je pense qu'il faut manuellement regarder si chaque enregistrement existe et l'ajouter s'il n'existe pas ou s'il a été modifié
Marsh Posté le 27-01-2004 à 15:21:39
Et pk t'essaie pas avec un TQuery tout con ?
Sinon pour le pb d'update : créer un champ dans ta base 'MAJ' avec un format date et compare les date de MAj ....
Marsh Posté le 27-01-2004 à 20:05:32
pas couillon comme truc !
Merci
Marsh Posté le 29-01-2004 à 12:46:11
oui, le Duc c'était pour toi !!!
Sinon, une ch'tite question : dans ma base access j'ai 5 tables.
Dans Delphi je suis obligé de poser 5 composant ADOTable sur ma form ?
Merci
Marsh Posté le 29-01-2004 à 12:49:29
si tu dois accéder aux 5 à la fois, oui, je pense
Marsh Posté le 29-01-2004 à 12:59:12
Voilà antp t'as répondu : si ce n'est pas simultané, tu peux n'en avoir qu'une et faire des update de requête lors du changement de table.
Mais ça reste qd même plus simple d'utiliser 5 ADOTable...
Privilège pê plutôt les ADOQuery : perso j'ai l'impression que les composants "table" en règle générale sont moins évolués et risquent plus de merder : mais ça n'engage que moi !!
Marsh Posté le 29-01-2004 à 13:28:23
merci à tous les deux.
Sinon désolé pour ton pseudo : j'avais pas fais gaffe LE DUKE !!
Marsh Posté le 25-01-2004 à 20:42:33
Salut,
voilà mon pb :
J'ai une chaine de connection qui me connecte à mon fichier Gestion.mbd (lequel contient 3 tables)
J'ai une seconde chaine de connection au travers laquelle j'ouvre un fichier F_ELE.DBF
Je voudrais faire une requete sur cette table afin de sortir un certain nb d'info. Mais j'ai un pb avec ma command SQL :
Select ELENOM,ERENOM
From ???
Where ELENOM='TOTO'
Le pb est que je ne sias pas quoi mettre comme nom de table !
En effet si je mets f:\softnote2\BDGEP\F_ELE.dbf, delphi me dit : information incohérente ....
De plus ma requête est faite avec un ADOQUERY, mais je ne suis pas certain des connections et datasource de cet objet
J'ai mis comme datasource : la BD où je veux faire une recherche (DataSourceFELE)
et comme connection : ADOCOnnectionDBF (la connection à la base F_ELE.dbf)
Voilà, merci pour votre aide.
PS : apprendre la BD seul n'est pas vraiment chose facile !
---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF