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 :

Comment savoir si le champ d'une table est vide?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut Comment savoir si le champ d'une table est vide?
    Bonjour à tous!

    J'ai un petit problème de filtrage pour mes DBLookupComboBox.

    J'en ai trois (dans l'ordre): Site, Service, Salarié.

    Lorsque l'utilisateur choisi un site (et si la CheckBox "Filtrer" est cochée), la DBLookupComboBox_Service ne contiendra que les services présents sur le site en question. De même pour les Salarié appartenant à un Service d'un Site.

    J'ai eu un peu de mal, mais tout marche! ...

    ... Sauf dans le cas où le service ne contient aucun salariés (ce qui est impossible en théorie, mais je souhaite quelque chose qui marche dans n'importe quelle situation). Dans ce cas là, j'ai le petit sablier SQL, et sa fait une boucle infinie. =/

    Voici un morceau de mon code :
    (Heberger est l'association reliant Site & Service, pour savoir quel site contient quel(s) service(s))

    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
     
    procedure TForm2.DBLookupComboBox3Exit(Sender: TObject);
    begin
      DM1.Heberger.First;
      DBLookupComboBox4.ListSource.DataSet.Filter := '';
      DBLookupComboBox5.ListSource.DataSet.Filter := '';
      if CheckBox1.Checked=TRUE then begin
      while DM1.SiteSite_ID.Value <> DM1.HebergerSite_ID.Value do DM1.Heberger.Next;
      DBLookupComboBox4.ListSource.DataSet.Filter := 'Serv_ID = '+inttostr(DM1.HebergerServ_ID.Value);
      while DM1.SiteSite_ID.Value = DM1.HebergerSite_ID.Value do
      begin
      DBLookupComboBox4.ListSource.DataSet.Filter := DBLookupComboBox4.ListSource.DataSet.Filter + 'OR Serv_ID = '+inttostr(DM1.HebergerServ_ID.Value);
      DM1.Heberger.Next;
      end;
      end;
    end;
    J'aimerais avoir vos avis et vos idées sur ce problème, merci d'avance!

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    la propriété/fonction IsEmpty ?
    sinon dans le While ajouter une condition sur EOF ...

    Edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if CheckBox1.Checked=TRUE then begin
    plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if CheckBox1.Checked then begin
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    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
    s'applique a la plupart des champs, j'ai pas testé avec les Blobs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if MaTable.fieldbyName('Ckamps').IsNull then <votre code>;

Discussions similaires

  1. [VxiR2] Savoir si un champs d'une table est déja utilisée
    Par coolmek dans le forum Designer
    Réponses: 4
    Dernier message: 05/05/2011, 14h04
  2. Réponses: 4
    Dernier message: 28/01/2009, 12h59
  3. comment inserer un seul champ d'une table dans une autre
    Par kesamba dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/12/2007, 04h48
  4. [MySQL] Comment afficher tous les champs d'une table?
    Par Nibor dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 08/11/2006, 20h20
  5. Comment mettre à jour 1 champ d'une table via une autre tabl
    Par cpasmoibiensur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/02/2006, 13h33

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