databases in qt
TRANSCRIPT
![Page 1: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/1.jpg)
Databases inQT
QTپایگاه های داده در
دانیال اکبری
91پاییز
![Page 2: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/2.jpg)
اضافه کردن ماژولSQL. در فایل pro
آماده سازی پروژه ها
![Page 3: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/3.jpg)
انواع درایور های پشتیبانی شده درQT:
مشخص شدن ارتباط به وسیله شی ای از نوعQSqlDatabase
استفاده از درایور
QODBC برای ایجاد
SQL Serverارتباط با
و سایر پایگاه های داده
ساخته شده توسط
microsoft
ایجاد ارتباط با پایگاه داده
![Page 4: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/4.jpg)
اضافه کردن ماژول
هر ارتباط به وسیلهQSqlDatabase.مشخص می شود
تنظیمhostName, databaseName, userName, ،password
فعال کردن ارتباط پس از ایجاد ارتباط پیش از استفاده
از پایگاه داده
ایجاد ارتباط با پایگاه داده
![Page 5: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/5.jpg)
ایجاد ارتباط به پایگاه دادهUDB در برنامه SQL
Server
Connection String برای DatabaseName
% کاربرد
کاربرد
مثال
![Page 6: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/6.jpg)
استفاده از شیQSqlQuery برای نشان دادن محتوای پرس و جو و همچنین برگرداندن نتیجه
پرس و جو
اجرا پرس و جو با استفاده از تابعexec در شی QSqlQuery
نشان دادن خطا با استفاده ازlastError
به دست اوردن مشخصات فیلدها با استفاده از شیQSqlRecord
به دست آوردن تعداد فیلدها با استفاده از تابعcount
به دست آوردن نام فیلدها با استفاده ازfieldName(int)
پرس و جو
![Page 7: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/7.jpg)
استفاده از حلقه برای به دست آوردن نام فیلدها و رکورد ها
ایجاد رشته ای شامل نام فیلدها در حلقه اول
به دست آوردن رشته هایی شامل مقادیر رکورد ها در حلقه های بعدی با استفاده ازnext
به دست آوردن مقدار هر فیلد برای یک رکورد با استفاده ازvalue(int)
بر گرداندن مقدارNULLو خروج از حلقه
Qvariant
اجرای مثال
پرس و جو
![Page 8: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/8.jpg)
استفاده ازpreparation برای پرس و جو های پیچیده تر مانند اضافه
کردن یک رکورد
عوض شدن مشخصات متغییر های مختلف بینSQL و QT
Floating point
قبل از اجرای پرس و جو آن را به وسیلهpreparation آماده اجرا می
کنیم(دلخواه)
چک کردنsyntax پرس وجو قبل از اجرا ،در صورت خطا false
برمی گرداند
اشکال درconnection در مورد خطا در exec
Preparation
![Page 9: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/9.jpg)
استفاده ازplaceholder ها به جای ورودی ها (نام
متغییر :)
استفاده ازbind Value(QString,QVariant) برای
هاplaceholderمقدار دهی به
3اجرای مثال
Preparation
QSqlQuery query;query.prepare("INSERT INTO Course (id, title, year) " "VALUES (:id, :title, :year)");query.bindValue(":id", 203);query.bindValue(":title", "Living in America");query.bindValue(":year", 2002);query.exec();
![Page 10: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/10.jpg)
استفاده از کالسData Model برای استخراج ،به روز رسانی و
نمایش آن ها
برای استفاده از کالسData Model می توان از قابلیت کالس
استفاده کردQtSql در ماژول QSqlTableModelهای
استفاده نکردن از پرس وجوهای خامSQL مانند
)SELECT, INSERT, UPDATE, DELETE(
قابلیت استفاده از کالس برای محیط هایGUI با استفاده از
QListView و یا QTableView در کنار فراهم آوردن امکان دست
Consol Applicationکاری داده ها در پروژه های
Data Model
![Page 11: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/11.jpg)
Data Model
Model.setTable(“ ”) From
Model.setFilter(“ “) Where
Model.select(“ “) select
Select *From StudentWhere Major = ‘Computer Science’
![Page 12: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/12.jpg)
پیمایش نتیجه با استفاده از رکورد به دست آمده از
QSqlTableModel::record انجام می شود ()
دسترسی به یک فیلد مشخص از طریقvalue امکان()
پذیر است
Data Model
![Page 13: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/13.jpg)
1.Foundation Of
Qt Development
منابع
![Page 14: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/14.jpg)
2.C++ GUI Programming
with Qt 4, Second Edition
منابع
![Page 15: Databases in Qt](https://reader036.vdocuments.site/reader036/viewer/2022081422/555ad995d8b42a62528b4c2b/html5/thumbnails/15.jpg)