Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment demander une sauvegarde numérique conditionée [ Base de données / Autre ] (Lunasoft)

samedi 28 juin 2008 à 17:04:05 | Comment demander une sauvegarde numérique conditionée

Lunasoft

Bonjour!

J'ai une question sans solution qui me demande de l'aide de votre part.
J'ai deux tables ayant les trois champs identiques pour toutes les deux Tables (Entreprise, Annee).
Dans les codes de filtrage que j'ai écrit, je demande à mon programme de me filtrer toutes données d'une entreprise quelqueconque...à l'année X.
Quand le filtrage sera fait, j'aimerai que dans les codes suivants de sauvegarde...qu'il y est une sauvegarde separée. Cela veut dire tous les comptes de 1 à 5 du champ "money" de la Table1 devrait être enregistrés dans la table2. Mais ça ne marche pas!

procedure TForm1.Button1Click(Sender: TObject);
begin
  case Table1.FieldValues['money'] of // le plantage commence ici
    0..5 : begin
           adotable2.Append;
           adotable2.fieldvalues['money'] := adotable1.fieldvalues['money'];
           adotable2.post;
       end;
    end;

Merci,
LunaSoft


samedi 28 juin 2008 à 22:10:50 | Re : Comment demander une sauvegarde numérique conditionée

cantador

Membre Club

Bonsoir,

N'ayant pas toutes les données du problème, je te propose néanmoins ceci :

il faut d'abord ouvrir les deux tables
...
Table1.Open;
adotable2.Open;

...
et ensuite
ta procédure :TForm1.Button1Click(Sender: TObject);
ne stocke qu'un seul enregistrement..

il faut donc lui introduite une boucle :
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.First;
While not Table1.Eof do

    begin
        case Table1.FieldValues['money'] of 
          0..5 : 
           begin
           adotable2.Append;
           adotable2.fieldvalues['money'] := adotable1.fieldvalues['money'];
           adotable2.post;
            end;

      
Table1.Next;
    end; 
end;


cantador


samedi 28 juin 2008 à 22:32:19 | Re : Comment demander une sauvegarde numérique conditionée

Delphiprog

Administrateur CodeS-SourceS
Et dire que ça serait bien plus simple et plus rapide avec une requête SQL :
INSERT INTO table2 ('money') SELECT money FROM table1 WHERE money BETWEEN 0 AND 5

Enfin, moi ce que j'en dis...

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

samedi 28 juin 2008 à 22:42:11 | Re : Comment demander une sauvegarde numérique conditionée

cantador

Membre Club

Effectivement Delphiprog, c'est ce que je ferai aussi mais comme Lunasoft
n'a pas choisi le SQL...

et Lunasoft qu'est ce qu'il en dit ?

cantador


dimanche 29 juin 2008 à 00:45:14 | Re : Comment demander une sauvegarde numérique conditionée

Lunasoft

Bonjour,
Merci de m'avoir donné toutes vos réponses.
Tous les codes ont fonctionné normalement (cantador et Delphiprog). Seulement, permettez-moi d'apprendre du moins toutes les voies possibles.
Au fait; je crois que j'ai dû omettre de dire à Cantador que mes intentions étaient de faire une sauvegarde en gros: toutes les données entre 0 à 5 devraient être enregistrées et non juste un enregistrement.(Pardon!).
Mais à l'entretemps, quand j'exécute tes codes (@cantador), ils marchent et par après il y a plantage! Donc, il faudra relancer le programme.
J'ai ajouté ce code : Table1.free mais ça plante toujours après avoir bien exécuté. Voila tout (@cantador).

@DelphiProg
Tes codes marchent bien. Seulement, il y a toujours un message demandant de bien voire si le nom de mon champ "money" aurait été bien écrit.
J'ai reverifié mais tout est correcte!
Je ne dis pas que tes codes ne marchent pas! Je crois que je devrais encore revoir ma Table. Et si ça persiste...je tâcherai de vous tenir informer.

Merci,
LunaSoft

dimanche 29 juin 2008 à 11:54:47 | Re : Comment demander une sauvegarde numérique conditionée

cantador

Membre Club

Table1.free n'est pas valable car celle-ci n'est pas créee dynamiquement.
il y a plantage!
quel est le message d'erreur ?

info:
ton code ajoute des données dans adotable2, mais si tu recliques à nouveau, il te rajoute encore une fois les mêmes etc.etc.
J'imagine que ce n'est certainement pas ce que tu souhaites faire..

donc, il nous fait plus de précisions et d'informations sur les tables.

cantador


dimanche 29 juin 2008 à 21:54:06 | Re : Comment demander une sauvegarde numérique conditionée

Delphiprog

Administrateur CodeS-SourceS
@lunasoft : selon la base de données utilisée, 'money' est peut-être un mot réservé pour le moteur SQL. Dans ce cas, il faut mettre le nom du champ entre guillemets doubles :
"INSERT INTO table2 ('money') SELECT "money" FROM table1 WHERE "money" BETWEEN 0 AND 5"
Mais, en règle générale, il ne faut jamais utiliser de mots réservés pour nommer les champs, les tables ou une base.

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

lundi 30 juin 2008 à 00:42:09 | Re : Comment demander une sauvegarde numérique conditionée

Lunasoft

@Cantador
Tu sais quoi, je me rends compte maintenant que la sauvegarde en groupe (0 à 5) se fait sans problème! (j'en suis content!)
Revenons-en au plantage:
il y a plantage lorsque j'ajoute un chiffre en dehors dudit interval (0 à 5). C'est une réaction normale. Mais pas du tout normal aussi.
Pourquoi? Parce qu'il y fait sa recherche et quand il y a une infiltration d'un chiffre dans le champ en dehors dudit interval. Là, il se plante (mais sans message). Pour y remedier, Il faudra juste relancer le programme.
En un mot, s'il n' y a que les chiffres nageant dans cet interval (0 à 5). C'est sans problème et là, il enregistre (ou export) dans la table AdoTable2 (sans faire un plantage).
Voilà alors ce que j'ai essayé de faire pour obstruer ce plantage (coloré de rouge). Malgré ça, il y a toujours plantage.

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.First;
While not Table1.Eof do

    begin
try
        case Table1.FieldValues['money'] of 
          0..5 : 
           begin
           adotable2.Append;
           adotable2.fieldvalues['money'] := adotable1.fieldvalues['money'];
           adotable2.post;
except
            end;

      
Table1.Next;
    end; 
end;


@DelphiProg
J'ai dû changer le nom du champ. Mais ma maladie persiste toujours. Je veux encore m'epoumoner dessus et voire là où j'ai vraiment loupé. L'erreur viendrait probablement de moi...


Merci,
LunaSoft

mardi 1 juillet 2008 à 09:04:12 | Re : Comment demander une sauvegarde numérique conditionée

cantador

Membre Club

Attention le try except peut effectivement être utile lorsqu'on a maîtrisé totalement les conditions dans lesquelles l'erreur ou les erreurs se produisent.
Dans la négative, c'est très risqué, car ton programme pourrait ne pas fonctionner correctement et tu ne verras rien !

je ne comprens pas pour l'instant l'anomalie qui se produit :

il y a plantage lorsque j'ajoute un chiffre en dehors dudit interval (0 à 5).
oui mais que fais-tu exactement ?
car si un autre chiffre apparaît le programme doit l'ignorer et tomber sur le next.
il faut mettre un point d'arrêt et pister ce qu'il fait.

cantador


mardi 1 juillet 2008 à 16:13:53 | Re : Comment demander une sauvegarde numérique conditionée

Lunasoft

Cantador, t'as raison. Au fait; quand je dis: il y a plantage lorsque j'ajoute un chiffre en dehors dudit interval (0 à 5).C'est dire qu'un chiffre enregistré dans la table qui n'est dans l'interval numérique demandé. Le programme se plante totalement. Ce point, ça va (je suis déjà sur la bonne voie de le résoudre).
Mon problème c'est d'avoir un code (ou des codes) qui me permettront d'éviter le redemarrage du programme.

ooooooh écoute, j'ai découvert quelque de bizarre (interessant d'une part et de l'autre non.)
Il arrive que, quand je clique mon boutton pour transferer les données demandées dans mes codes:
...OnClick....
while not......
case....
0..5 : begin....
...
le programme s'plante réellement. mais curieusemsent, lorsque je le relance. Je retrouve effectivement les données demandées d'être enregistrées dans la table voulues. C'est pertinent ça! Comment éviter juste ce plantage. Ce même "malheur" qui arrive fait au moins que les données sont enregistrées. Comment explique t-on ça.

Merci,

LunaSoft



1 2

Cette discussion est classé dans : sauvegarde, demander, fieldvalues, adotable2, money


Répondre à ce message

Sujets en rapport avec ce message

HELP !! SAUVEGARDE DBF DBGRID !!! [ par webazard ] Voila second probleme je ma base, je fais mon enregistrement et tout et tout je rajoute une SaveDialog je fais DBGrid1.Columns.SaveToFile(SaveDialog. Ordonner un champ Dbase [ par webazard ] Bonjour, j ai une base (dbf 3) je n'ai presicez aucun index particulier.Voila mon prog ajout certain champ dont un numerique (smallint) j ai mis un bu Email : Pièces jointes, sauvegarde [ par Bruto ] Je suis entrain de créer un prog pour la réception d'email's.J'utilise un composant NMPOP3.Le prob est que quand je réceptionne le(s) mail(s)il m'obli sauvegarde et chargement [ par phoenyx ] salut à tousje cherche un moyen d'effectuer la sauvegarde et le chargement d'un nombre important de données (de l'ordre du million)...ces données sont Sauvegarde d'un base de données [ par flo2102 ] Bonjour a tous,Je souhaiterait faire une sauvegarde d'une base de données avant de faire des traitements deçu. quel est le code en delphi svp?Merci d' [sauvegarde]sauvegarde d'une base IB [ par lnicos ] Voilà, j'aimerais intégrer dans mon programme une fonction de sauvegarde. J'aimerais en effet créer un petit module de sauvegarde, qui permettrait aux Sauvegarde txt : Nom de fichier par défaut [ par finipe ] Bonjour à tous. Problème tout bête mais je butte : je veux sauvegarder les lignes d'une listbox dans un fichier txt. Là aucun problème je sais faire. Sauvegarde des paramètres d'affichages du Appli [ par lugo ] Bonjour à tous,Est-ce quelqu'un aurait un exemple sous la main d'une sauvegarde de paramètres d'affichage d'une form, afin de récupérer les paramètres sauvegarde Quickreport [ par limy ] Bonjour,je souhaiterais sauvegarder un quickreport par programmation, sans que l'utilisateur clique sur le bouton sauvegarder du quickreport..... mais TNMPOP3 : DecodeStart et sauvegarde d'un fichier attaché [ par manudel ] Je n'arrive pas à utiliser la propriété DecodeStart :- pour sauvegarder un ou plusieurs fichiers attachés sur mon disque dur;- à un endroit bien spéci


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.