Requetes sous visual c++

Fermé
cobra - 19 avril 2002 à 09:59
 cobra - 22 avril 2002 à 11:30
Comment faire pour utiliser une requete qui a ete definie dans access sous visual c++ ?

Et comment gérer le mode du jeu d'enregistrement ? J'ai ete par le panneau de config-> drivers odbc -> la case "lecture seule" n'est pas cochée. Pourtant quand je fais une tentative d'enregistrement j'ai le message "le jeu d'enregistrement est en lecture seule"

Merci
A voir également:

4 réponses

tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
19 avril 2002 à 10:26
est ce q tu l'ouvres en mode dynaset?, c'est ce mode qui te permet de le modifier, si t'as mis dynamic, certains drivers odbc ne supportent pas, je ne sais pas pourqoi, c'est ce qui est dit ds le msdn
tafiscobar
0
J'ai été voir dans les header et le cpp de salleset et effectivement c'etait dynamic, je l'ai changé et j'ai obtenu 8 erreurs de compilation

header

class CSalleSet : public CRecordset
{
public:
CSalleSet(CDatabase* pDatabase = NULL);
DECLARE_DYNASET(CSalleSet)
...
};

cpp

IMPLEMENT_DYNASET(CSalleSet, CRecordset)

CSalleSet::CSalleSet(CDatabase* pdb)
: CRecordset(pdb)
{
...
m_nDefaultType = snapshot;
}
0
J'ai modifie le set.h et set.cpp

il etait marque dynamic j'ai donc rempalce le mic par set et j'ai eu des erreurs de compilation. Apparement il fallait ajouter un ; quand j'ai remplace mic par set. Mais ca ne change rien il veut tjs pas enregistrer.

dans le view
void CSalleView::OnButtonNouveau()
{
// TODO: Add your control notification handler code here
CDialogueReservation Reservation;
// Détermination de l'action effectuée
Reservation.m_strAction = "Ajouter";
m_pSet->MoveLast();
Reservation.DoModal();
// Enregistrer les données dans la base
m_pSet->m_nom_salle = Reservation.m_strDesignation;
m_pSet->m_date = Reservation.m_strDateDebut;
Reservation.m_strHeureDebut = Reservation.m_strHeureDebut + Reservation.m_strMinDebut;
m_pSet->m_heure_debut = Reservation.m_strHeureDebut;
Reservation.m_strHeureDebut = Reservation.m_strHeureFin + Reservation.m_strMinFin;
m_pSet->m_heure_fin = Reservation.m_strHeureFin;
m_pSet->m_chaises = Reservation.m_bChaises;
....
m_pSet->AddNew();
m_pSet->Update();
m_pSet->Requery();
}

Je pose peut etre parfois des questions idiotes, mais je decouvre vc++

cobra
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
19 avril 2002 à 15:09
d'abord declare_dynamic , n'a rien a voir avec le mode d'acces a la base, ce declare_dynamic c'est juste pour savoir en quelque sorte ce que ta classe herite de CObject. Donc, ne l'enleve pas, remet
declare_dynamic et implement_dynamic et enleve les ;.
Maintenant, pour ce qui est d'ajouter des enregsitrements, c'est ds cet ordre :
m_pset->addnew();
//les affectations
m_pset->update();
voila, tu ajoutes d'abord une ligne pui stu la remplis(ce n'est pas l'inverse on ne remplit pas un vide puis ajouter une ligne).
tafiscobar
0
J'ai mis le m_pSet->addnew ou tu l'as dit, mais ca va tjs pas. Ou puis-je voir quel est le mode d'ouverture de ma base ?

Et aussi, j'ai créé une requete (test) sous access, comment acceder aux resultats sous vc ++ ?

cobra
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
19 avril 2002 à 19:27
regarde ds le constructeur de CSalleSet, tu as normalement une variable qui s'appelle m_nDefaultType, c'est ton mode de connexion, voila. En tout cas, pour ce quie st de l'ajout c'est comme cela :
addnew()//ajout
update() //enregistrement
movelast() //pour aller vers celui q'on a enregistrer
requery() //pour mette a jour le recordset.
sinon, essaies de m'envoyer les fichiers par mail, je t'ai envoeye un mail moi.
tafiscobar
0
Et pour accéder aux valeurs de la requete quej'ai créé sous access ? je fais comment ?

Cobra
0