Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3119 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++/ODBC/SQL] Spécialiste du RecordSet needed !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++/ODBC/SQL] Spécialiste du RecordSet needed !

n°1053381
Sagoth
:|
Posté le 20-04-2005 à 12:00:50  profilanswer
 

Bonjour.
 
Voila, j'utilise pas mal de RecordSet mais là je me heurete à un problème de données tronquées (erreur 1004).
 
- J'enregistre dans ma base une "annotation" :

Code :
  1. BEGIN_TRANSACTION(PDBNAT);
  2. CRcdSet note(PDBNAT);
  3. CString sqlRequest;
  4. sqlRequest.Format("UPDATE rcd SET annotation =  \"%s\" WHERE idrcd = '%s' ", m_idappli);
  5. PDBNAT->ExecuteSQL(sqlRequest);
  6. COMMIT_TRANSACTION(PDBNAT);


 
Là, pas de soucis, le champ "annotation" de ma table "rcd" contient bien toute l'annotation.
Or celle ci est tres importante (je n'ai pas compté, mais quand j'enregistre celle ci dans un fichier texte ce dernier fait 26Ko)
 
- Maintenant, je souhaite lire celle ci, et là c'est le drame.
 
En effet, jusqu'à maintenant je lisais ss problème une annotation avec un recordset classique, mais là vu la taille du merdier j'ai une erreur 1004 (truncation).
 
Auriez vous une idée sur la façon de déclarer mon DoFieldExchange ?
 
Voila ce que j'ai en ce moment :
 

Code :
  1. IMPLEMENT_DYNAMIC(CRcdAnnotations, CRecordset)
  2. CRcdAnnotations::CRcdAnnotations(CDatabase* pdb)
  3. : CSwRecordSet(pdb)
  4. {
  5. //{{AFX_FIELD_INIT(CRcdAnnotations)
  6. m_idrcd = _T("" );
  7. m_annotation = _T("" );
  8. m_nFields = 2;
  9. //}}AFX_FIELD_INIT
  10. m_nDefaultType = snapshot;
  11. }
  12. CString CRcdAnnotations::GetDefaultConnect()
  13. {
  14. return _T("ODBC;DSN=DBInfNat" );
  15. }
  16. CString CRcdAnnotations::GetDefaultSQL()
  17. {
  18. return _T("[rcd]" );
  19. }
  20. void CRcdAnnotations::DoFieldExchange(CFieldExchange* pFX)
  21. {
  22. //{{AFX_FIELD_MAP(CRcdAnnotations)
  23.            pFX->SetFieldType(CFieldExchange::outputColumn);
  24. SWRFX_Text(pFX, _T("[idrcd]" ), m_idrcd);
  25. SwRFX_FreeText(pFX, _T("[annotation]" ), m_annotation);
  26. //}}AFX_FIELD_MAP
  27. }
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CRcdAnnotations diagnostics
  30. #ifdef _DEBUG
  31. void CRcdAnnotations::AssertValid() const
  32. {
  33. CSwRecordSet::AssertValid();
  34. }
  35. /////////////////////////////////////////////////////////////////////////////
  36. void CRcdAnnotations::Dump(CDumpContext& dc) const
  37. {
  38. CSwRecordSet::Dump(dc);
  39. }


 
En gros, remplacer le "SwRFX_FreeText" par une autre solution pour récupérer toutes les infos ?
 
Merci d'avance, là je suis bien perdu.


Message édité par Sagoth le 20-04-2005 à 12:01:32
mood
Publicité
Posté le 20-04-2005 à 12:00:50  profilanswer
 

n°1053591
technos
Posté le 20-04-2005 à 14:36:59  profilanswer
 

hello,
essaie en ajoutant la taille dans ta table du champ à la fin de la commande:
SwRFX_FreeText(pFX, _T("[annotation]" ), m_annotation, 1000);
a+

n°1053763
Sagoth
:|
Posté le 20-04-2005 à 16:12:34  profilanswer
 

Bon en fait après qulques tests, la taille max que je peux enregistrer est de 2^11 (2048).
Je vais tronquer sauvagement ce qui dépasse et pi basta. Non mais ^^.
 
PS : l'idée de limiter directement la taille du curseur semble marcher, mais bon je ne dépasserai pas 2048 de toute façon.
 
En tout cas merci pour ta précision :)

n°1054806
technos
Posté le 21-04-2005 à 09:06:32  profilanswer
 

hello,
tu es sur pour la taille limite?
il me semble avoir deja utilisé RFX_Text avec 5000 charactères
a+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++/ODBC/SQL] Spécialiste du RecordSet needed !

 

Sujets relatifs
SQL // bashIncrement d'un champ en SQL
[Delphi + Sql]Les champs dans une listeStocker des fichiers sur SQL Serveur ?
[access/SQL]recherche multi-tableJointure Requête SQL
Requete SQL - TOP10requête union SQL
[SQL] Problème tout con, mais je sais pas comment faireRecordset seulement a l'ouverture du formulaire
Plus de sujets relatifs à : [C++/ODBC/SQL] Spécialiste du RecordSet needed !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR