السلام عليكم
أهلا بإخواني في منتديات الفريق العربي للبرمجة
لقد بدأيت يا شباب مطالعة الكتاب الإلكتروني "تعلم بنفسك قواعد البريانات باستخدام الفيجول سي بلس بلس 6 في 21 يوما"، وكانت الأمور تسير كما ينبغي، إلا أنني وفي اليوم الرابع، عند تجريب ربط قاعدة البيانات من نوع أكسس، باستخدام المحرك jet.3.51، فإن العملية تفشل، ولا أدري ما السبب.
تأكدت من مسار الملف، بدلت إسم ومسار قاعدة البيانات
راجعت الأخطاء الكتابية.
بعد إظافة break points، تبين أن الخلل في فتح قاعدة البيانات.
أنا أشك في إصدار المحرك الرابط بين القاعدة والبرنامج.
كيف أتحقق من هذا المحرك، هل يمكنني العمل ببديل عنه؟
إذا ما اعتمدت على الكتاب فإنه يشير إلى الإصدار 3.51 الموافق لحجم 1300 كيلو بايت، والمدرج ضمن حزمة فيجول ستيديو 6 Entreprise, وهي نفس الحزمة التي أمتلكها، إلا أنني لاحظت أن حجم هذا المحرك هو 1500 كيلو بايت، ولكن مازال تحت إصدار 3.51
أين الخلل يا إخوان؟
عملية الربط موجودة في المنهاج OnNewDocument
----------------------------------------------------------------------------------
BOOL CADOMFC1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance( __uuidof( Connection ) );
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open(_bstr_t(L"Provider=Microsoft.Jet.OLEDB.3.510;Data Source=C:tysdbvcVCDB.mdb;"),
_bstr_t(L""),
_bstr_t(L""),
adModeUnknown);
if (SUCCEEDED(hr))
{
m_IsConnectionOpen = TRUE;
}
}
}
catch( _com_error &e )
{
// Get info from _com_error
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
TRACE( "Exception thrown for classes generated by #import" );
TRACE( "tCode = %08lxn", e.Error());
TRACE( "tCode meaning = %sn", e.ErrorMessage());
TRACE( "tSource = %sn", (LPCTSTR) bstrSource);
TRACE( "tDescription = %sn", (LPCTSTR) bstrDescription);
}
catch(...)
{
TRACE( "*** Unhandled Exception ***" );
}
return TRUE;
}
-----------------------------------------------------------------------------------
ملاحظة:
قاعدة البيانات لا تملك إسم المستخذم ولا كلمة السر، تماما كما أشار الكتاب في دروسه الأولى، ورغم ذلك جربت إدراج إسم المستخدم، ولكن من دون نتيجة.
ثم، أظن أنه لو يفشل الربط بقاعدة البيانات، فإن لبرنامج يعرض إستثناءات (EXeptions)، لكن البرنامج لا يعرض أي شيء، ولا يعرض البيانات.
لن أستطيع مواصلة الدروس بدون تجريب، حيث أن هذه الدروس جد مهمة في دروسي المستقبلية.
هل من أحد يزيح الستار عن الحل؟
رافقتكم السلامة