15
Databases in QT ی داده در ها گاه ای پQT ری کبل ا ا ی ن دا ر ب ی ا پ91

Databases in Qt

Embed Size (px)

Citation preview

Page 1: Databases in Qt

Databases inQT

QTپایگاه های داده در

دانیال اکبری

91پاییز

Page 2: Databases in Qt

اضافه کردن ماژولSQL. در فایل pro

آماده سازی پروژه ها

Page 3: Databases in Qt

انواع درایور های پشتیبانی شده درQT:

مشخص شدن ارتباط به وسیله شی ای از نوعQSqlDatabase

استفاده از درایور

QODBC برای ایجاد

SQL Serverارتباط با

و سایر پایگاه های داده

ساخته شده توسط

microsoft

ایجاد ارتباط با پایگاه داده

Page 4: Databases in Qt

اضافه کردن ماژول

هر ارتباط به وسیلهQSqlDatabase.مشخص می شود

تنظیمhostName, databaseName, userName, ،password

فعال کردن ارتباط پس از ایجاد ارتباط پیش از استفاده

از پایگاه داده

ایجاد ارتباط با پایگاه داده

Page 5: Databases in Qt

ایجاد ارتباط به پایگاه دادهUDB در برنامه SQL

Server

Connection String برای DatabaseName

% کاربرد

کاربرد

مثال

Page 6: Databases in Qt

استفاده از شیQSqlQuery برای نشان دادن محتوای پرس و جو و همچنین برگرداندن نتیجه

پرس و جو

اجرا پرس و جو با استفاده از تابعexec در شی QSqlQuery

نشان دادن خطا با استفاده ازlastError

به دست اوردن مشخصات فیلدها با استفاده از شیQSqlRecord

به دست آوردن تعداد فیلدها با استفاده از تابعcount

به دست آوردن نام فیلدها با استفاده ازfieldName(int)

پرس و جو

Page 7: Databases in Qt

استفاده از حلقه برای به دست آوردن نام فیلدها و رکورد ها

ایجاد رشته ای شامل نام فیلدها در حلقه اول

به دست آوردن رشته هایی شامل مقادیر رکورد ها در حلقه های بعدی با استفاده ازnext

به دست آوردن مقدار هر فیلد برای یک رکورد با استفاده ازvalue(int)

بر گرداندن مقدارNULLو خروج از حلقه

Qvariant

اجرای مثال

پرس و جو

Page 8: Databases in Qt

استفاده ازpreparation برای پرس و جو های پیچیده تر مانند اضافه

کردن یک رکورد

عوض شدن مشخصات متغییر های مختلف بینSQL و QT

Floating point

قبل از اجرای پرس و جو آن را به وسیلهpreparation آماده اجرا می

کنیم(دلخواه)

چک کردنsyntax پرس وجو قبل از اجرا ،در صورت خطا false

برمی گرداند

اشکال درconnection در مورد خطا در exec

Preparation

Page 9: Databases in Qt

استفاده از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

استفاده از کالسData Model برای استخراج ،به روز رسانی و

نمایش آن ها

برای استفاده از کالسData Model می توان از قابلیت کالس

استفاده کردQtSql در ماژول QSqlTableModelهای

استفاده نکردن از پرس وجوهای خامSQL مانند

)SELECT, INSERT, UPDATE, DELETE(

قابلیت استفاده از کالس برای محیط هایGUI با استفاده از

QListView و یا QTableView در کنار فراهم آوردن امکان دست

Consol Applicationکاری داده ها در پروژه های

Data Model

Page 11: Databases in Qt

Data Model

Model.setTable(“ ”) From

Model.setFilter(“ “) Where

Model.select(“ “) select

Select *From StudentWhere Major = ‘Computer Science’

Page 12: Databases in Qt

پیمایش نتیجه با استفاده از رکورد به دست آمده از

QSqlTableModel::record انجام می شود ()

دسترسی به یک فیلد مشخص از طریقvalue امکان()

پذیر است

Data Model

Page 13: Databases in Qt

1.Foundation Of

Qt Development

منابع

Page 14: Databases in Qt

2.C++ GUI Programming

with Qt 4, Second Edition

منابع

Page 15: Databases in Qt