Soyez le premier à donner votre avis sur cette source.
Vue 7 531 fois - Téléchargée 942 fois
#include <windows.h> #include "bnlib2c.h" #include "McrAsm.h" // adapter le dossier de msado15.dll #import "D:\AdoDb\Ado25\msado15.dll" no_namespace rename("EOF", "EndOfFile") struct InitOle { InitOle() {CoInitialize(NULL);} ~InitOle() {CoUninitialize();} } _init_InitOle_; _ConnectionPtr pdb = 0; // pointeur database _RecordsetPtr prs; char szappname[] = "Extract"; char szTXTPATIENTS[] = "Patients.txt"; char szCONNECT[] = "Provider=Microsoft.JET.OLEDB.4.0;Data source=Medical.mdb"; char szENTETE[] = "\"ID\"\t\"NOM\"\t\"PRENOM\"\t\"NAISSANCE\"\r\n"; inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);}; int ConnectBaseMdb() { try { TESTHR(pdb.CreateInstance(__uuidof(Connection))); TESTHR(prs.CreateInstance(__uuidof(Recordset))); pdb->Mode = adModeShareExclusive; pdb->Open(szCONNECT, "", "", 0); } catch(_com_error &e) { MessageBox(0, (LPCSTR) e.Description(), szappname, MB_ICONEXCLAMATION); pdb = 0; return 0; } return 1; } //Table : Patients // Fld(0) Nom, TEXT 50 // Fld(1) Prenom, TEXT 50, NULLABLE // Fld(2) Naissance, DATE, NULLABLE // Fld(3) PatientID, INT32 AutoIncr void PatientsToTxt() { SYSTEMTIME sttm; 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 _variant_t var; _bstr_t bst; try {prs->Open("SELECT * FROM Patients", _variant_t((IDispatch *) pdb,true), adOpenStatic, adLockReadOnly, adCmdText);} catch(_com_error &e) { MessageBox(0, (LPCSTR) e.Description(), szappname, MB_ICONEXCLAMATION); return; } hfl = CreateFile(szTXTPATIENTS,GENERIC_WRITE,0,0,CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, 0); if(hfl == INVALID_HANDLE_VALUE) { MessageBox(0, "TXT CREATION IMPOSSIBLE", szappname, MB_ICONEXCLAMATION); goto closeRS; } WriteFile(hfl, szENTETE, 33, &dwWrite, 0); try { // on mettra PatientID en 1er sur les lignes du txt // alors faire gaffe aux index de champs while(!prs->EndOfFile) { lval = prs->Fields->GetItem((long)3)->Value; // PatientID psz = bnultoa(lval, szbuff); // de ma dll pour vitesse
12 sept. 2006 à 15:12
25 juin 2004 à 10:54
25 juin 2004 à 10:52
C:\Program Files\Fichiers communs\System\ado
tu devrais y trouver la DLL donc dossier devrait aller pour #import
C'est juste que comme je dois souvent faire pour differents Windows et differentes fonctionnalites, j'ai groupe les versions de dll dans des dossiers specifiques.
25 juin 2004 à 10:36
Désolé de te dérranger mais j'aimerais savoir comment je pourrais adapter mon dossier à mon projet comme tu le dis pour
// adapter le dossier de msado15.dll
Par exemple je suis sous OFFICE 2003 je ne voit pas comment faire.
Merci de ta réponse.
Ps : garslouche a entièrement raison en parlant de toi @++.
11 déc. 2003 à 10:04
http://www.cppfrance.com/topmembres.aspx
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.