
پروژه برنامه نویسی 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 پروژه وارد کنید:

و استایل شیت زیر را به فرم اضافه کنید:
QWidget{font-size:14px;}
QWidget#centralWidget{background:white;}
QPushButton{
background:#03dac6;
color:white;
border:0px;
border-radius:10px;
min-height:20px;
min-width:30px;
padding:5px;
}
QPushButton:hover{
background:#41cd52;
}
QLineEdit{
border:1px solid gray;
border-radius:8px;
font-size:14px;
min-height:25px;
}
QLineEdit:focus{
border:1px solid #03dac6;
border-radius:4px;
}
QGroupBox{
background:lightgray;
border:0px;
font-weight:bold;
color:white;
border-radius:10px;
}
QTableView{
border:2px solid gray;
}
کار با دیتابیس :
دیتابیس یا پایگاه داده مجموعه ای از اطلاعات یک پارچه می باشد که به آسانی قابل دستر و ویرایش و مدیریت می باشد. از معروفترین پایگاه های داده می توان به 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 بگذاریم تابع کانشکن ما به شرح زیر است این تابع از نوع بولین می باشد .
bool zxMain::createConnection()
{
m_db= QSqlDatabase::addDatabase("QSQLITE");
m_db.setDatabaseName("mydb");
//m_db.setConnectOptions();
if(!m_db.open())
{
qDebug()<<"An error on opening database : " <<m_db.lastError();
return false;
}
return true;
}
در متد addDataBase می بایست نوع دیتابیس (درواقع درایور دیتابیس) را مشخص کنیم توجه نمایید این نامها در جدول بالا آورده شده اند.
در متد setDatabaseName() میبایست ادرس فایل دیتا بیس را بدهیم. اگر در این آدرس درست باشد ولی فایلی وجود نداشته باشد یک فایل جدید ایجاد میکند. برای مثال در اینجا گفتیم در کنار جایی که برنامه اجرا می شود ( یعنی د پوشه دیباگ برنامه ) یک دیتابیس به نام mydb ایجاد کن.(میتوانستیم نام فایل را مثلا mydb.db یا mydb.sqlite بگذاریم که هنگامی که با این فایل در ویندوز مواجه می شویم بدانیم این یک دیتا بیس است).
حال گفتیم اگر باز کردن دیتا بیس ناموفق بود یک لاگ به ما بده و مقدار fasle را برگردان. واگه با موفقیت باز شد مقدار true را برگردان.
ادامه دارد . .
دیدگاهتان را بنویسید