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 :

numero de l'enregistrement en cours


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Points : 39
    Points
    39
    Par défaut numero de l'enregistrement en cours
    comment recuperer le numero de l'enregistrement en cours
    j'ai utiliser se code mais j'ai toujours -1 ds combobox2.itemindex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    trub.FindKey([edit7.text]);
    dbedit4.Text:=trublibrub.Value;
    edit24.Text:=inttostr(trub.RecNo);
    combobox2.ItemIndex:=strtoint(edit24.text);
    [Balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir]

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Est-ce que trub.RecNo serait pas déjà du texte? une piste: vérifie à chaque étape le type des résultats.
    Bon Code

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    RecNo est bien un entier
    mais c'est pas clair ton but, peut être peut tu être plus clair ?
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par colombe
    comment recuperer le numero de l'enregistrement en cours
    en utilisant TonDataSet.RecNo

    quel est le role exact de ton combobox ? quelles valeurs contient-il ? parce que la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    combobox2.ItemIndex:=strtoint(edit24.text);
    pourrait de créer des problème si aucun élément d'index voulu n'existe. de plus pourquoi faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    edit24.Text:=inttostr(trub.RecNo);
    combobox2.ItemIndex:=strtoint(edit24.text);
    alors que ceci suffit ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    combobox2.ItemIndex := trub.RecNo;
    pour finir :
    Citation Envoyé par TicTacToe
    mais c'est pas clair ton but, peut être peut tu être plus clair ?

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 918
    Points
    3 918
    Par défaut
    Bonjour

    La propriété RecNo retourne -1 pour la plupart des ensembles de données.

    Pour un résultat de requête (SELECT), la notion même de numéro d'enregistement ne permet pas d'identifier un enregistrement de la base d'une manière générale, cela ne constitue pas une clé. Ce qui explique le choix de la valeur -1. Recno n'est pas un concept pertinent pour les bases relationnel. Il "dépanne" pour les bases de données dites navigationnelles (telle que Paradox).

    Il faut plonger dans le code source du composant ensemble de données pour déterminer si Recno retourne -1 ou une valeur plus "significative" (cas des TTable).

    La morale est qu'il vaut mieux éviter d'employer Recno.

    A titre de complément, un extrait de l'aide de Delphi 2006
    Citation Envoyé par F1
    Telle qu'implémentée dans TDataSet, la valeur de RecNo est toujours -1. En général une application n'accède pas à RecNo au niveau de TDataSet. A la place, l'accès s'effectue à une propriété RecNo ré-implémentée dans une classe dérivée telle que TTable . RecNo propose une propriété de rappel pour les ensembles de données dérivés ne supportant pas les numéros d'enregistrement.
    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  6. #6
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    +1, complétement d'accord Eric.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut une proposition
    salut
    il est possible d'utiliser une requette sql pour compter le nombre d'enregistrement déjà effectué de conserver cette valeur dans une variable local de type entier ou smallint , de l'incrémenter à pas de 1 puis de l'afficher
    j'espers que cela vous aidera

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,
    -1 veut dire vous avez 5 et vous obtenez 4 si oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    edit24.Text:=inttostr(trub.RecNo+1);
    si votre combo contien -1 sa veut dire que votre table est vide
    et avec le code que je vous ai donner vous allez obtenir 0 donc auccun enregistrement.
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  9. #9
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    recno ne fonctione pas sur tous les type de base de donnée j'ai testé avec paradox c'est ok mais pas avec access par exemple.

  10. #10
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 14
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Suivant les objets que tu utilise les options sont différentes.

    Un TQuery :
    Ajoute un champ RecNo à ta requête et calcule le ensuite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    var
     Qr : tquery;
    begin
     Qr := tquery.create;
     .... /* initilaisations diverses et variées*/ 
     qr.sql.text := 'select Ch1, ch2, 0 RecNo from table'
     qr.cachedupdate := true;
     qr.updateobject := 
     qr.open;
      qr.first
      i := 1;
      while not qr.eof do 
      begin
        qr.fieldbyname('recno').asinteger := i;
        inc(i);
        qr.next;
      end;
    end;
    Avec un ttable (avec un tquery asssi) tu peux le basculer via tprovider dans un tclient dataset et faire la même chose.

    enfin bon la solution dépend du problème.

    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

Discussions similaires

  1. Empecher Lecture d'Enregistrement en cours de Modification
    Par toony dans le forum Administration
    Réponses: 4
    Dernier message: 09/12/2009, 11h18
  2. Valider l'enregistrement en cours VBA
    Par avril.stephane dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2005, 15h13
  3. Réponses: 7
    Dernier message: 12/01/2005, 11h30
  4. Réponses: 2
    Dernier message: 10/10/2004, 23h12
  5. Réponses: 7
    Dernier message: 06/10/2004, 22h13

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