IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Insertion dans une table TSQLTable


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut Insertion dans une table TSQLTable
    Bonjour à tous,

    Je suis en train de migrer mes application vers Dbexpress. J'ai lu quelques tutoriels et fait des recherches mais je n'ai pas encore trouvé une solution à mon problème.
    Voici comment je faisais en BDE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
              Statistique.Append;
              Statistique.Edit;
              Statistique.FieldByName('PO_SECTION').Value := Edit1.Text;
              Statistique.FieldByName('ST_NB_15').Value := Edit4.Text;
              Statistique.FieldByName('ST_NB_30').Value := Edit5.Text;
              Statistique.FieldByName('ST_NB_NULL').Value := Edit6.Text;
              Statistique.FieldByName('ST_DATE_SAISIE').Value := Date;
              Statistique.FieldByName('ST_NB_H_30').Value := Edit8.Text;
              Statistique.FieldByName('ST_NB_H_1H').Value := Edit9.Text;
              Statistique.FieldByName('ST_NB_H_HH').Value := Edit10.Text;
              Statistique.Post;
    Avec Dbexpress j'utilise en datamodule avec TSQLConnection, TSQLDataset, DataSetProvider et Client DataSet et une table TSQLTable nomme statistique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
               DataModule2.Statistique.Append;
               DataModule2.Statistique.Edit;
               DataModule2.Statistique.FieldByName('PO_SECTION').Value := Edit1.Text;
               DataModule2.Statistique.FieldByName('ST_NB_15').Value := Edit4.Text;
               DataModule2.Statistique.FieldByName('ST_NB_30').Value := Edit5.Text;
               DataModule2.Statistique.FieldByName('ST_NB_NULL').Value := Edit6.Text;
               DataModule2.Statistique.FieldByName('ST_DATE_SAISIE').Value := Date;
               DataModule2.Statistique.FieldByName('ST_NB_H_30').Value := Edit8.Text;
               DataModule2.Statistique.FieldByName('ST_NB_H_1H').Value := Edit9.Text;
               DataModule2.Statistique.FieldByName('ST_NB_H_HH').Value := Edit10.Text;
               DataModule2.Statistique.Post;
    Voici l'erreur : Cannot modify a read-only dataset. Cela veut que ma dataset est en lecture seul. J'ai chercher ou je peux corriger cela en vain. J'utilise Delphi 7
    Je me tourne donc vers vous pour être aidé.
    Merci.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Bonjour,
    Citation Envoyé par sondo Voir le message
    Voici l'erreur : Cannot modify a read-only dataset. Cela veut que ma dataset est en lecture seul. J'ai chercher ou je peux corriger cela en vain. J'utilise Delphi 7
    Je me tourne donc vers vous pour être aidé.
    qui appelle l'aide de Delphi vous aurait permis de trouver la raison...


    Je cite :
    TSQLTable est un ensemble de données unidirectionnel.A l'inverse des autres ensembles de données,les ensembles de données unidirectionnels ne mémorisent pas dans un tampon mémoire plusieurs enregistrements.A cause de cela,vous ne pouvez vous déplacer qu'en utilisant les méthodes First et Next.Il n'existe pas de gestion d'édition intégrée.Les données d'une table SQL ne peuvent être éditées qu'en créant explicitement une commande SQL UPDATE ou en connectant la table à un ensemble de données client au moyen d'un fournisseur.
    Ensuite, évitez les composants Table (TTable, TADOTable, TSQLTable) dès que vous vous connectez à une base de données client/serveur (MsSqlServer, Oracle, Firebird, etc). Ces composants rapatrient TOUTES les lignes et TOUTES les colonnes d'une table dans la mémoire du poste client. En lieu et place, utilisez les composants Query, Dataset qui limitent le volume de données rapatriées au strict nécessaire ou qui permettent de faire des mises à jour (UPDATE MaTable SET...) des suppressions (DELETE FROM Matable WHERE...), des ajouts (INSERT INTO MaTable...).

    Enfin, n'hésitez pas à consulter les pages de Frédéric Brouard alias SQLPro sur ce site même : Le SQL, tout le SQL, rien que le SQL & les bases de données relationnelles

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    je encore

    une note également , un APPEND met le dataset en mode EDIT
    le Statistique.Edit; était donc inutile

  4. #4
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Salut SergioMaster et Ph. B.,

    Merci pour votre aide. En suivant vos conseils avec quelques recherches sur Internet, je procède maintenant de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With DataModule2.SQLQuery1 do
        begin
          close;
          DataModule2.SQLQuery1.SQL.Add('Insert into test(PO_SECTION,ST_NB_15,ST_NB_30,ST_NB_NULL,ST_DATE_SAISIE,ST_NB_H_30,ST_NB_H_1H,ST_NB_H_HH) Values(:PO_SECTION, :ST_NB_15, :ST_NB_30, :ST_NB_NULL, :ST_DATE_SAISIE, :ST_NB_H_30, :ST_NB_H_1H, :ST_NB_H_HH)');
          paramcheck:=true;
          DataModule2.SQLQuery1.ParamByName('PO_SECTION').Value := Edit3.Text;
          DataModule2.SQLQuery1.ParamByName('ST_NB_15').Value := Edit4.Text;
          DataModule2.SQLQuery1.ParamByName('ST_NB_30').Value := Edit5.Text;
          DataModule2.SQLQuery1.ParamByName('ST_NB_NULL').Value := Edit5.Text;
          DataModule2.SQLQuery1.ParamByName('ST_DATE_SAISIE').Value := Date;
          DataModule2.SQLQuery1.ParamByName('ST_NB_H_30').Value := Edit8.Text;
          DataModule2.SQLQuery1.ParamByName('ST_NB_H_1H').Value := Edit9.Text;
          DataModule2.SQLQuery1.ParamByName('ST_NB_H_HH').Value := Edit10.Text;      
          DataModule2.SQLQuery1.ExecSQL();
    Merci à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  2. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  3. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  4. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo