پروژه برنامه نویسی Qt و اتصال به دیتابیس SqlLite – قسمت اول - وب سایت رضا احمدی

پروژه برنامه نویسی کار با دیتا بیس در محیط Qt

پروژه برنامه نویسی Qt و اتصال به دیتابیس SqlLite – قسمت اول

در این  پروژه می خواهیم برنامه ای بنویسم که مشخصات تعدادی از کاربران را در دیتابیس ذخیره کنیم و آن ها را نمایش دهیم.این برنامه قابلیت افزودن , حذف و ویرایش کاربران باید داشته باشد.

کلاس های مورد نیاز:

در این پروژه به کلاس های QSql,QSqDataBase,QsqlQuery نیاز داریم برای این منظور کافی است QtSql را به پروژه اضافه کنیم ( #include  <QtSql> ) .

برای استقاده از کلاس های دیتابیس نیاز است ابتدا در فایل .pro پروژه عبارت زیر را وارد کنیم:

 QT +=sql

سایر مشخصات فایل .pro  :

QT += core gui
QT += widgets
CONFIG += c++11
QT +=sql
greaterThan(QT_MAJOR_VERSION, 5): QT += widgets

طراحی رابط کاربری :

وارد قسمت طراحی فرم شوید و فرم زیر را در ui پروژه وارد کنید:

طراحی رابط کاربری برنامه کار با دیتا بیس sqlite در محیط Qt
طراحی رابط کاربری برنامه کار با دیتا بیس sqlite در محیط Qt

و استایل شیت زیر را به فرم اضافه کنید:

  1. QWidget{font-size:14px;}
  2.  
  3. QWidget#centralWidget{background:white;}
  4.  
  5. QPushButton{
  6. background:#03dac6;
  7. color:white;
  8. border:0px;
  9. border-radius:10px;
  10. min-height:20px;
  11. min-width:30px;
  12. padding:5px;
  13. }
  14.  
  15. QPushButton:hover{
  16. background:#41cd52;
  17. }
  18.  
  19. QLineEdit{
  20. border:1px solid gray;
  21. border-radius:8px;
  22. font-size:14px;
  23. min-height:25px;
  24. }
  25.  
  26. QLineEdit:focus{
  27. border:1px solid #03dac6;
  28. border-radius:4px;
  29. }
  30.  
  31. QGroupBox{
  32. background:lightgray;
  33. border:0px;
  34. font-weight:bold;
  35. color:white;
  36. border-radius:10px;
  37. }
  38.  
  39. QTableView{
  40. border:2px solid gray;
  41. }

کار با دیتابیس :

دیتابیس یا پایگاه داده مجموعه ای از اطلاعات یک پارچه می باشد که به آسانی قابل دستر و ویرایش و مدیریت می باشد. از معروفترین پایگاه های داده می توان به MySql,Oracle,SQLite,… اشاره کرد.

در پایگاه های داده اطلاعات را درون جدول ها ذخیره میکنیم هر جدول شامل ستون ها و سطر هایی است . برای مثال در برنامه ای که ما میخواهیم بنویسیم این دیتا ها را درجدول زیر ذخیره می کنیم:

table name: Users

Phone age Lname Fname id
09379206787 25 Ahmadi Reza 1
09123456789 28 Mohammadi Ali 2
09111111111 22 Irani Mohsen 3

هر دیتابیس می تواند شامل چندیل جدول باشد . برای مثال جدول کاربران؛ جدول مدیران، جدول نامه ها , … .

برای کار با دیتابیس نیاز است ابتدا کانشکنی بین نرم افزار و برنامه برقرار کنیم . بدین منظور می بایست از یک شی کلاس QSqlDatabase ایجاد کنیم و مشخصات یک دیتابیس را به و نوع آن را به این شی بدهیم سپس آن دیتا بیس را باز کنیم.

دیتابیس هایی که کیوت پشتیبانی میکند به شرح زیر است :

Driver name DBMS
QDB2 IBM DB2 (version 7.1 and above)
QIBASE Borland InterBase
QMYSQL MySQL
QOCI Oracle Call Interface Driver
QODBC Open Database Connectivity (ODBC) – Microsoft SQL Server and other ODBC-compliant databases
QPSQL PostgreSQL (versions 7.3 and above)
QSQLITE2 SQLite version 2
QSQLITE SQLite version 3
QSYMSQL SQLite version 3 for Symbian SQL Database
QTDS Sybase Adaptive Server Note: obsolete from Qt 4.7

اگر نام شی را m_db بگذاریم تابع کانشکن ما به شرح زیر است این تابع از نوع بولین می باشد .

  1. bool zxMain::createConnection()
  2. {
  3.     m_db= QSqlDatabase::addDatabase("QSQLITE");
  4.     m_db.setDatabaseName("mydb");
  5.     //m_db.setConnectOptions();
  6.     if(!m_db.open())
  7.     {
  8.         qDebug()<<"An error on opening database : " <<m_db.lastError();
  9.         return false;
  10.     }
  11.     return true;
  12. }

در متد addDataBase می بایست نوع دیتابیس (درواقع درایور دیتابیس) را مشخص کنیم توجه نمایید این نامها در جدول بالا آورده شده اند.

در متد setDatabaseName() میبایست ادرس فایل دیتا بیس را بدهیم. اگر در این آدرس درست باشد ولی فایلی وجود نداشته باشد یک فایل جدید ایجاد میکند. برای مثال در اینجا گفتیم در کنار جایی که برنامه اجرا می شود ( یعنی د پوشه دیباگ برنامه ) یک دیتابیس به نام mydb ایجاد کن.(میتوانستیم نام فایل را مثلا mydb.db یا mydb.sqlite بگذاریم که هنگامی که با این فایل در ویندوز مواجه می شویم بدانیم این یک دیتا بیس است).

حال گفتیم اگر باز کردن دیتا بیس ناموفق بود یک لاگ به ما بده و مقدار fasle را برگردان. واگه با موفقیت باز شد مقدار true را برگردان.

ادامه دارد . .

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیدگاه های ثبت شده

    سروش | ۰۹ دی ۱۴۰۲

    سلام دوست من
    من میخوام که پایگاه داده MySQL ام رو به qt creator متصل کنم اما خطای :
    qmysql driver not loaded
    روبرو میشم.
    تو اینترنت راه حل هایی برای سیستم عامل ویندوز پیدا کردم،منتها برا من که سیستم عاملم لینوکسه راه حلی(حداقل من نفهمیدم یا پیدا نکردم)پیدا نکردم میشه کمکم کنید!
    خیلی ممنونم