Accueil > Forum > > > > base d edonnee / probleme si un champs est vide
base d edonnee / probleme si un champs est vide
mardi 24 août 2004 à 15:38:45 |
base d edonnee / probleme si un champs est vide

callaghan1981
|
Please il y aurai un gentil admin qui pourrai ;e proposer une solution?? mon programme se connecte a une base de donnee... tt est parfais,.. mon programme lis et consulte la base de donnee tt est parfais.. mais maintena je veux selectionner certaine donnee et les sauvegarder ds un doc txt. tt est PRESQUE parfais. il arrive qu une base de donne ne soit pas tt le temp complete ( genre il y a un champs vide) bref, j ai une chaine d ecaractere, et lorsque le champs est vide, mon programme saute.. bref comment faire comprendre a ma chaine d ecaractere que "c est vide et que c est pas grave " bst = pRstList->Fields->GetItem((long)1)->Value; // jobname if (!bst == NULL) { strcpy(q->jobname,bst);} else {strcat(q->jobname, " " );} printf ( " %s", q->jobname); voila ce que cela maffiche ds ma console qd je fais tourner le programme js0551Luzerne, Switzerland 2004-0315-12-001 js0552Arnult Park, Munich 2004-0315-14-001 js0554 a js0554 tt s arrete le programme passe a la second procedure.. car ds la base de donnee il n ay a pas de jobname pour le jobnumber Js0554 bref les eutres donne suivante ( js0555) ne sont pas lu ce qui est "emmerdant "lol commen faire? merci
|
|
mardi 24 août 2004 à 16:13:26 |
Re : base d edonnee / probleme si un champs est vide

BruNews
|
Les champs NULLABLES sont a prendre dans un: _variant_t var; var = pRstList->Fields->GetItem((long)1)->Value; if(var.vt != VT_NULL) etc...
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 24 août 2004 à 18:43:12 |
Re : base d edonnee / probleme si un champs est vide

callaghan1981
|
merci d avoir repondu si vite mais j ai un nouveau probleme
effectivement tt marche.. bref si c est une valeur null la chaine n aura pas de valeur.. mais le truc si tu veux j ai une liste chaine et pour certaine donne je les met dans certaine variable de ma liste chaine.. et qd jenregistre ma liste ds un fichier texte le truc c est que le job number comprend 2 valeur
try { printf("Jobnumber Indexnumber Idcont Content \t \t box Idnote \t Note \n"); while(!pRstList->EndOfFile) { Project *q; q = new Project; q->succ = NULL;
bst = pRstList->Fields->GetItem((long)0)->Value; // jobnumber strcpy(q->jobnumber,bst); printf ( " %s", q->jobnumber );
var = pRstList->Fields->GetItem((long)1)->Value; if(var.vt != VT_NULL) { bst = var; strcpy(q->jobname, bst); } else { strcpy(q->jobname, " "); } printf ( " %46s", q->jobname); bst = pRstList->Fields->GetItem((long)2)->Value; // indexnumber strcpy(q->indexnumber,bst); printf ( " %18s", q->indexnumber);
lval= pRstList->Fields->GetItem((long)3)->Value; // idcontent q->idcontent=lval; printf ( " %2d", q->idcontent);
bst = pRstList->Fields->GetItem((long)4)->Value; // content strcpy(q->content,bst); printf ( " %30s", q->content);
lval = pRstList->Fields->GetItem((long)5)->Value; // boxnumber q->boxnumber = lval; printf ( " %3d", q->boxnumber); lval= pRstList->Fields->GetItem((long)6)->Value; // idnote q->idnote = lval; printf ( " %2d", q->idnote);
bst = pRstList->Fields->GetItem((long)7)->Value; // note strcpy(q->note,bst); printf ( " %15s \n", q->note );
if (L_project == NULL) L_project = q; else { q->succ = L_project; L_project = q; printf("%s %s \n",L_project->jobnumber,L_project->jobname); } pRstList->MoveNext(); }
lorsque je demande d afficher L_project jobnumber ds cette variable il y a a la fois le jobnumber et aussi la valeur de jobname..
affiche sur la console js0575Arlington Arlington
js0575Arlington ca c est L_project->jobnumber Arlington c est L_project->jobname
commen faire pour resoudre ce probleme?? c est le seul que j ai
merci bcp
|
|
mardi 24 août 2004 à 19:29:10 |
Re : base d edonnee / probleme si un champs est vide

BruNews
|
Je ne mettrai pas un recordset dans une liste chainee, impensable comme methode. Faut tamponner direct dans le fichier texte. J'ai fait exemple ici: ADO: MDB VERS TXT STRUCTURE PAR TAB (WIN32) http://www.cppfrance.com/code.aspx?id=11201
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mercredi 25 août 2004 à 13:38:47 |
Re : base d edonnee / probleme si un champs est vide

callaghan1981
|
bjr j ai ete voir ton exemple j arrive a prendre tt les valeur mais apres je suis perdu, je n arrive pas a utiliser le tapon..c est a dire a mettre ds la variable l ensemble des variable pour enregistrer tt cela ds le fichier texte..comment je dois faire?? jarrive a utiliser les fonction bnstrcpy etc etc mais je vois pas tro a quoi elle me serve? et qd j utilise *psz++ = '\t'; ca fai tro bizare genre au lieu d avoir bs8008 comme indexnumber j ai s8008 (il manque le b) j ai compris la connection, la lecture, la selection, mais je suis perdu pour enregistrer cela ds le fichier texte.. peu tu m aider? je dois rendre tt ca ds 2 jour j ai terminer le reste des programme qui vont avec mais il me manque cela..les donne ds un fichier texte merci
//Fld(0) Jobnumber chaine de caractere //Fld(1)Jobname chaine de caractere peux etre nul // Fld(2) indexnumber chaine de caractere //Fld(3) idcontent int //Fld(4) content chaine de caractere // Fld(5) boxnumber int // Fld(6) idnote int //Fld(7) note chaine de caractere
// SaveX1 Function //First, access and save the LIST table. void SaveX1() { char szTXTJSA[] = "H:\\JSA.txt"; _ConnectionPtr pdb = 0; // pointeur database _RecordsetPtr prs; HANDLE hfl; DWORD dwWrite; long lval, lerror = 1; // presume erreur char szbuff[160]; // tampon pour chaque ligne du txt char *psz; // pointeur ecriture dans szbuff _bstr_t bst; _variant_t var;
_RecordsetPtr pRstList = NULL; _bstr_t strCnn("Provider=Microsoft.JET.OLEDB.4.0;" "Data source = H:\\DATA.mdb;"); TESTHR(pdb.CreateInstance(__uuidof(Connection))); TESTHR(pRstList.CreateInstance(__uuidof(Recordset))); pdb->Mode = adModeShareExclusive;
char szCONNECT[] = "Provider=Microsoft.JET.OLEDB.4.0;Data source=DATA.mdb";
hfl = CreateFile(szTXTJSA,GENERIC_WRITE,0,0,CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, 0); HRESULT hr = S_OK;
pRstList->Open("SELECT * FROM LIST",strCnn, adOpenDynamic,adLockBatchOptimistic,adCmdText); try { printf("Jobnumber jobname Indexnumber Idcont Content \t \t box Idnote \t Note \n"); while(!pRstList->EndOfFile) { bst = pRstList->Fields->GetItem((long)0)->Value; // jobnumber psz = bst;
// Les champs NULLABLES sont a prendre dans un: // _variant_t var; var = pRstList->Fields->GetItem((long)1)->Value;//jobname if(var.vt != VT_NULL) { bst = var; psz= bst; } else { psz = NULL; }
bst = pRstList->Fields->GetItem((long)2)->Value; // indexnumber psz = bst;
lval= pRstList->Fields->GetItem((long)3)->Value; // idcontent bst = lval; psz = bst;
bst = pRstList->Fields->GetItem((long)4)->Value; // content psz = bst; lval = pRstList->Fields->GetItem((long)5)->Value; // boxnumber bst = lval; psz = bst; lval= pRstList->Fields->GetItem((long)6)->Value; // idnote bst = lval; psz = bst;
bst = pRstList->Fields->GetItem((long)7)->Value; // note psz = bst; // WriteFile(hfl, szbuff, psz - szbuff, &dwWrite, 0);
pRstList->MoveNext(); }
|
|
mercredi 25 août 2004 à 13:55:44 |
Re : base d edonnee / probleme si un champs est vide

BruNews
|
psz = bst; ??? Plonge toi dans un livre de C pour comprendre comment on ecrit dans un buffer.
ciao... BruNews, Admin CS, MVP VC++
|
|
Cette discussion est classée dans : base, programme, vide, tt, jobname
Répondre à ce message
Sujets en rapport avec ce message
base de registre... [ par morgandetoi06 ]
svp pouvez vous me donner la synyaxe EXACTE d une fonction pour ecrire une clef dans la base de registre dans HKEY_CURRENT_USER\SOFTWARE\Microsoft\Win
base de donnee / ado / et liste chaine [ par callaghan1981 ]
hello a ts..j ai un petit bleme..jarrive a me connecter a une base de donne, de consulter la baseet je desire now mettre tt les champs dune table ou r
Trouver <mysql.h> [ par lolo007 ]
Bonjour a tousDans le cadre d'un projet, je dois réaliser la lecture dans un automate grâce à un serveur OPC puis, ce que j'ai lue, je dois le mettre
utlité des registres [ par glipper ]
Bonjour,J'aimerais savoir dans quel genre de cas il est utile d'utiliser la base des registres. Peut-on creer des clés juste afin qu'elles contiennent
Mysql avec C++ pour un Programme TROP puissant [ par anismemo2003 ]
Salut a tous, je cherche à créer un application trés trés puissante, je m'explique. Cette application est basée sur une base de données qui rassemble
Un débutant qui veut apprendre! [ par skunsky ]
Bonjour à tous,Je voux explique mon probleme: Je voudrais creer un petit programme avec une interface graphique (faite avec c++ builder) qui me permet
Creer son premier programme [ par andarius40 ]
Bonjour, j'apprends a programmer en c++, j'aimerai creer une application pour gerer mes dvd et cd (il en existe deja beaucoup), mais cela me semble u
Base de Donnée Local [ par Beuuun ]
Youkoulélé a tous!Voila l'histoire, j'ai un programme a réalisé qui a pour but de gérer des clients et leurs devis/factures. Mais je ne sais pas comme
builder et base de donné mysql [ par bilal ]
bojour a tous,j'ai developpé un programme que je compte securisé via le net.tout fonctionne deja bien mais je veux amelioré la chose, pouor le moment
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|