Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 23h19   #1
o_live
Membre du Club
 
Inscription : juin 2002
Messages : 206
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 206
Points : 40
Points : 40
Par défaut TClientDataSet Tester Delta vide

Bonjour,
j'essaie des tester la propriété Delta d'un TClientDataSet avant de lever l’exception
Citation:
a provoqué une classe d'exception EDBClient avec le message 'Delta vide.'.

j'ai essayé les methode IsNull() IsEmpty() et cela echoue

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
TClientDataSet *pCdsDelta = new TClientDataSet(CDSPers);
try{
 
     if(DataModule1->CDSPers->Delta.IsNull()){ // ne passe pas le test
         return false;
       }
 
       pCdsDelta->Data= DataModule1->CDSPers->Delta; // quand c'est vide decleche exception 
   }
   catch(EDBClient &E)  {
     return false;
   }
// bla
// bla.....
Comment faire merci?
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3
o_live est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 15h50   #2
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 190
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 190
Points : 13 239
Points : 13 239
Cela serait plutôt un VarIsEmpty
Entre Variant et OleVariant, en Delphi c'est plus souple, en C++Builder, je sais qu'il est capricieux entre Variant, OleVariant, TVariant, VARIANT ...

Code :
1
2
if (VarIsEmpty(DataModule1->CDSPers->Delta))
  return false;
__________________
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 19h59   #3
o_live
Membre du Club
 
Inscription : juin 2002
Messages : 206
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 206
Points : 40
Points : 40
Bonjour,

j'ai essayé ton code sous CB6 , j'ai une erreur de compilation :

Citation:
[C++ Erreur] DataModule.cpp(230): E2064 Impossible d'initialiser 'const Variant &' avec 'OleVariant'

[C++ Erreur] DataModule.cpp(230): E2342 Mauvaise correspondance de type dans le paramètre 'V' ('const Variant &' désiré, 'OleVariant *' obtenu)
que faire et comment convertir ?

merci
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3
o_live est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 20h33   #4
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 190
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 190
Points : 13 239
Points : 13 239
Oui, erreur prévisible, C++Builder est pénible pour ça !
Oubli, VarIsEmpty c'est uniquement Delphi ! en C++ c'est bien la méthode IsEmpty(), au lieu de tester le variant, utilise la propriété ChangeCount

Esssaye ceci alors

Code :
1
2
  if ( ! DataModule1->CDSPers->ChangeCount )
    return false;
__________________
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 22h10   #5
o_live
Membre du Club
 
Inscription : juin 2002
Messages : 206
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 206
Points : 40
Points : 40
Ok tu es un as ShaiLeTroll
mille fois merci
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3
o_live est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h48.


 
 
 
 
Partenaires

Hébergement Web