الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مجموعة أسئلة أرحو الإجابة بأسرع وقت

مغلق
بدأه abo_omar_1 في 24 مايو 2004 · 3 رد · 2,804 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الكرام هناك مجموعة أسئلة كالتالي:

1- ماهي أوامر الشبكات في لغة C ؟

2- قواد البيانات في لغة C ؟

3- ماذا أضافت تقنية دوت نيت (NET.) للبرمجة ؟

4- مالفرق بين لغة سي ولغات البرمجة الأخرى ؟

5- مالفرق بين لغة سي وسي ++ ؟

أرجوا التعاون في حلها قدر المستطاع. وشكرا.

#2

السلام عليكم ,,

اقتباس
- ماهي أوامر الشبكات في لغة C ؟

راجع ارابط :

/index.php?showtopic=37152

اقتباس
- قواد البيانات في لغة C ؟

توجد الكثير جدا من الطرق ,, منها ال oleDB أو ال ODBC Api أو ال dao ,, هذا بالنسبة لسي فقط ,, واذا أردت أن تستخدم مصرفا كالفيجوال سي ++ فتعطيك المزيد من الطرق ,, كلها تغليف للأنواع الرئيسية الي ذكرتها ,,

اقتباس
3- ماذا أضافت تقنية دوت نيت (NET.) للبرمجة ؟

الكثير جدا ,, اسئل السؤال في قسم الدوت نت أفضل ,,

اقتباس
- مالفرق بين لغة سي ولغات البرمجة الأخرى ؟

الفروقات كثيرة ,, ولايتسع المجال لذكرها ,, فقط أذكر من ميزات السي المؤشرات والتعامل الحر مع الذاكرة ,,

اقتباس
5- مالفرق بين لغة سي وسي ++ ؟

أهم فرق ,, الكائنات ,, ما فيها وهي البرمجة كائنية المنحى أو الموجهة الأغراض ,, وتختصر OOP ,,

بالتوفيق ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

أخي أشكرك على الرد ولكن أريد ولو بشيء من التفصيل؟

خاصة في الفرق بين لغة السي ولغات البرمجة الأخرى ؟

أما بالنسبة لقواعد البيانات في لغة السي تطبيقا لها ؟

وشكرا.

#4

خذ هذا الكود مثلا للتعامل مع ال ODBC API ,, وهي ليست الطريقة المناسبة لبرمجة قواعد البيانات الى للمحترفين ,, حيث يمكنك كتابة برامج قواعد بيانات وبدون أن يكون هناك دعم لل MFC أو أي منج آخر من أي شركة اخرى :

BOOL bSuccess = FALSE;

 CString strFunction;

 SQLHENV henv = NULL;
 SQLHDBC hdbc = NULL;
 BOOL bIsConnected = FALSE;
 SQLHSTMT hstmt = NULL;

 SQLRETURN rc;

 SWORD    sMsgNum = 0;
 char     szState[7]="";
 SDWORD   pfNative=0;

 if (SQL_SUCCESS == (rc =
 ::SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,
 &henv)))
 {
  if (SQL_SUCCESS == (rc = ::SQLSetEnvAttr(henv,
  SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3,
  SQL_IS_INTEGER)))
  {
   if (SQL_SUCCESS == (rc =
   ::SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)))
   {
    rc = ::SQLConnect(hdbc, 
     (SQLCHAR*)"Visual C++ 6 Bible",
     SQL_NTS,
     (SQLCHAR*)"", SQL_NTS, (SQLCHAR*)"", SQL_NTS);
    if ((SQL_SUCCESS == rc)
    || (SQL_SUCCESS_WITH_INFO == rc))
    {
     bIsConnected = TRUE;

     if (SQL_SUCCESS == (rc =
     ::SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt)))
     {
      LPCSTR szSQL = "SELECT * FROM TermCodeMaster";
      if (SQL_SUCCESS == (rc = ::SQLPrepare(hstmt,
      (unsigned char*)szSQL, SQL_NTS)))
      {
       if (SQL_SUCCESS == (rc = ::SQLExecute(hstmt)))
       {
        SDWORD cb;
        char szTermCode[LEN_TERM_CODE];
        long lDueInDays;
        long lDiscountInDays;
        double dDiscountPctg;

        SQLBindCol(hstmt, 1, SQL_C_CHAR, szTermCode,
         LEN_TERM_CODE, &cb);

        SQLBindCol(hstmt, 2, SQL_C_LONG, &lDueInDays,
         0, &cb);

        SQLBindCol(hstmt, 3, SQL_C_LONG,
         &lDiscountInDays, 0, &cb);

        SQLBindCol(hstmt, 4, SQL_C_DOUBLE,
         &dDiscountPctg, 0, &cb);

        int iIndex;

        rc = SQLFetch(hstmt);
        while (SQL_SUCCESS == rc)
        {
         CTermCode* pTermCode = new CTermCode();
         pTermCode->m_strTermCode = szTermCode;
         pTermCode->m_lDueInDays = lDueInDays;
         pTermCode->m_lDiscountInDays=lDiscountInDays;
         pTermCode->m_dDiscountPctg = dDiscountPctg;

         iIndex=m_lbxTermCodes.AddString(szTermCode);
         m_lbxTermCodes.SetItemData(iIndex,
         (DWORD)pTermCode);

         rc = SQLFetch(hstmt);
        }
       }
      }
     }
    }
   }
  }
 }

 if (henv)
 {
  if (hdbc)
  {
   if (bIsConnected)
   {
    if (hstmt)
    {
     ::SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
    }
    ::SQLDisconnect(hdbc);
    bIsConnected = FALSE;
   }
   ::SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
   hdbc = NULL;
  }
  ::SQLFreeHandle(SQL_HANDLE_ENV, henv);
  henv = NULL;
 }

توجد طريقة ال ole DB أيضا لكنها تحتاج لبعض الفهم في أسسيات com ,,

هذه هي الطرق الصعبة ,,

الطرق الأسهل عليك باستخدام أدوات تغليف ال MFc ,, كالتالي مثلا ,,

	CDatabase db;
	db.OpenEx("DSN=Maks");
	CRecordset rs(&db);

CString SQLStr;SQLStr.Format("%s'%s'","SELECT * FROM Accountants WHERE Acc_ID =",m_sAcc_ID);

	rs.Open(CRecordset::dynaset,SQLStr);
SQLStr.Format("%s '%d','%d','%s','%s')","INSERT INTO IncomeCheq VALUES(",m_iCheq_No,m_iCheq_Amount,m_sFrom,time);

db.ExecuteSQL(SQLStr);

الكود أعلاه مناسب للكثير من الاستخدامات ,, وفي النهاية يتم استدعاء دوال الكود الأول ,, لكن لحسن الحظ تم تغليف تلك الدوال بهذه التي في الكود الأخير ,,

عموما تحتاج لخلفية أكثر للفهم الصحيح للتعامل مع قواعد البيانات ,,

الفرق بين السي واللغات الأخرى ابحث في النت قليلا وستجد الكثير ,, ولو أعطيت لغة للمقارنة المباشرة لكان أفضل ,, لأنو مثلا الفروق بين السي والبيسك كثيرة والسي والدلفي أقل ,, السي والأسمبلي ,, لاعلاقة بينهما ,, والكثير من هذه الأمور ,,

عموما من لديه ملخص لهذه الأمور رجو ن يتحفنا بها :)

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

مواضيع مشابهة