C++ وPostgreSQL: دليل شامل للمطور

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

C++ وPostgreSQL: كيف تجمع بين البرمجة النظامية وقواعد البيانات العلائقية

\n\n

هل تساءلت يومًا لماذا تختار العديد من الأنظمة عالية التحميل - من خوادم الألعاب إلى المنصات المالية - مزيج C++ وPostgreSQL؟ الإجابة بسيطة: يوفر C++ سرعة فائقة وتحكمًا في الذاكرة، بينما يوفر PostgreSQL الموثوقية وإمكانيات SQL القوية. هذا ليس مجرد "برنامج تعليمي آخر". إنه دليل عملي سيرشدك من تثبيت المشغل إلى كتابة تطبيق CRUD كامل بـ C++ مع PostgreSQL.

\n\n

في هذه المقالة ستتعلم:

\n
    \n
  • كيفية تثبيت وتهيئة libpq - عميل PostgreSQL الرسمي لـ C++.
  • \n
  • كيفية تنفيذ استعلامات SELECT وINSERT وUPDATE وDELETE.
  • \n
  • كيفية معالجة الأخطاء والعمل مع المعاملات.
  • \n
  • أمثلة على كود حقيقي يمكنك استخدامه فورًا في مشاريعك.
  • \n
\n\n

مستعد؟ هيا بنا!

\n\n

الخطوة 1. تثبيت libpq وإعداد البيئة

\n\n

قبل كتابة الكود، تحتاج إلى تثبيت مكتبة libpq. وهي جزء من العميل الخاص بـ PostgreSQL. إذا كان PostgreSQL مثبتًا لديك بالفعل، فإن libpq موجودة بالفعل. إذا لم يكن كذلك، فقم بتثبيتها بشكل منفصل.

\n\n

لينكس (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install libpq-dev postgresql-server-dev-all
\n\n

macOS (Homebrew)

\n
brew install postgresql
\n\n

ويندوز

\n

قم بتنزيل المثبت من الموقع الرسمي لـ PostgreSQL وأثناء التثبيت اختر المكون "Development Libraries".

\n\n

بعد التثبيت، تحقق من أن المترجم g++ يمكنه العثور على المكتبة. للقيام بذلك، ستحتاج عند التجميع إلى تحديد الأعلام -lpq (الربط مع libpq) وربما -I/المسار/إلى/include.

\n\n

الخطوة 2. الاتصال بقاعدة البيانات باستخدام C++

\n\n

لنبدأ بالأهم - إنشاء الاتصال. لهذا، نستخدم الهيكل PGconn والدالة PQconnectdb().

\n\n

مثال: اتصال بسيط

\n
#include <iostream>\n#include <libpq-fe.h>\n\nint main() {\n    // معلمات الاتصال\n    const char* conninfo = "host=localhost port=5432 dbname=mydb user=myuser password=mypass";\n\n    // إنشاء الاتصال\n    PGconn* conn = PQconnectdb(conninfo);\n\n    // التحقق من الحالة\n    if (PQstatus(conn) != CONNECTION_OK) {\n        std::cerr << "خطأ في الاتصال: " << PQerrorMessage(conn) << std::endl;\n        PQfinish(conn);\n        return 1;\n    }\n\n    std::cout << "تم الاتصال بـ PostgreSQL بنجاح!" << std::endl;\n\n    // إغلاق الاتصال\n    PQfinish(conn);\n    return 0;\n}
\n\n

هام: لا تقم أبدًا بتضمين كلمات المرور في الكود. استخدم متغيرات البيئة أو ملفات التهيئة. المثال أعلاه للتوضيح فقط.

\n\n

لنقم بتجميعه:

\n
g++ -o connect connect.cpp -lpq
\n\n

الخطوة 3. تنفيذ استعلامات SQL: SELECT, INSERT, UPDATE, DELETE

\n\n

الآن بعد إنشاء الاتصال، لنتعلم تنفيذ الاستعلامات. لهذا نستخدم الدالة PQexec() التي تُرجع النتيجة في شكل هيكل PGresult.

\n\n

مثال: تنفيذ SELECT

\n
PGresult* res = PQexec(conn, "SELECT id, name, age FROM users");\n\nif (PQresultStatus(res) != PGRES_TUPLES_OK) {\n    std::cerr << "خطأ في الاستعلام: " << PQerrorMessage(conn) << std::endl;\n    PQclear(res);\n    PQfinish(conn);\n    return 1;\n}\n\n// الحصول على عدد الصفوف والأعمدة\nint rows = PQntuples(res);\nint cols = PQnfields(res);\n\n// عرض عناوين الأعمدة\nfor (int i = 0; i < cols; ++i) {\n    std::cout << PQfname(res, i) << "\\t";\n}\nstd::cout << std::endl;\n\n// عرض البيانات\nfor (int i = 0; i < rows; ++i) {\n    for (int j = 0; j < cols; ++j) {\n        std::cout << PQgetval                

المدونات

توصيات الكتب