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 :

acces avec dbtable


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut acces avec dbtable
    bonsoir à tous

    est ce qu'il est possible d'ouvrir une base de donnée acces avec avec un objet dbtable

    j'utilisait cet objet pour gérer une base de donnée dbase for windows *.dbf*
    avec les instructions suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    table1.open
    table1.fieldbyname('TI1').AsFloat
    .
    .
    .
    je veux maintenant changer le base de donnée sans modifier le programme (si possible)

    Merci d'avance

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Tu as une ADOTable.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut
    j'ai essayé avec mais en exécutant cette instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table2.Filter:='date ='+  QuotedStr(datetostr(DateTimePicker1.Date));
    table2.Filtered:=true;
    un message d'erreur s'affiche;
    project project2.exe raised exeption class EOleExeption with message "impossible de trouver l'objet dans la collection correspondant au non ou à la référence ordinale demandé". Process stopped.Use step or run to continue.
    de même pour table2.eof "informations sur la colonne clé insuffisantes ou incorrectes. trop de lignes sont affectées par la mise à jours.
    il me semble que je ne peux que lire les données (problème que je n'avais pas avec ttable et la base *.dbf*

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    1- Date est un mot réservé au niveau des bases de données (surtout niveau SQL) donc avoir un champ qui s'appel date, ca peut générer des problèmes

    2- Au vue des messages que tu nous indiques, jepense qu'il faudrait revoir la structure de la base de données. Mais la il nous faudrait déjà plus de détails sur celle-ci pour confirmer
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut
    Merci bcp

    Pour le premier problème, je l'avoue, c'était une faute de bêtise et je m'excuse;
    le nom de champ de la table est DAT et non pas date, donc c résolu

    Pour le deuxième problème voilà une question plus précise

    avec le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (not table2.eof) do
    begin
    table2.delete;
    edit1.Text:=booltostr(table2.Eof);
    end;
    si j'utilise une table avec 3 records ça marche et les records sont supprimés avec aucun problème, mais si le nombre de records est grand (220) un message d'erreur s'affiche et rien ne se passe (au niveau de suppression)
    "informations sur la colonne clé insuffisantes ou incorrectes. trop de lignes sont affectées par la mise à jours".
    Et ceci avec le même code

  6. #6
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    De manière générale je te conseille plutôt d'utiliser des requêtes SQL pour travailler sur tes tables y compris pour les suppressions.
    Sinon, pour ton code, j'aurais pensé que table.delete supprime la table et non pas l'enregistrement pointé, donc pas à mettre dans une boucle, d'autant que tu ne 'parcours' pas ta table avec ta boucle : je ne vois par de 'next'.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Ne connaissant pas la structure de ta base de données, ma réponse pourra être incorrecte.

    En général ce type de message apparait lorsqu'on a des doublons dans une table et qu'on essai d'en supprimer un. Le soucis vient du fait que quand tu fais Delete qui ne sait pas lequel des deux supprimer.

    2 solutions :

    1- Soit tu rajoutes une colonne autoincrément dans ta base de données et tu gardes ton fonctionnement de suppression
    2- Soit tu rajoutes toujours un autoincrément (pas bon les doublons dans une table :p), et tu passes à la suppression par le SQL (qui sera beaucoup plus rapide en traitement)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Violation d'accès avec les composants Word 97/ 2000
    Par edechaux dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/03/2006, 10h48
  2. [VBA] supression element Acces avec Excel
    Par Emcy dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 07/11/2005, 18h30
  3. Restreindre un accès avec htacess
    Par dinver dans le forum Apache
    Réponses: 1
    Dernier message: 30/09/2005, 20h15
  4. Ouverture d'une base Acces avec Builder 6 pro
    Par tryonyco dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/08/2005, 16h45
  5. probleme de chemin d'acces avec aspSmartUpload
    Par julio_097 dans le forum ASP
    Réponses: 2
    Dernier message: 22/08/2005, 17h53

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