Upload
danitiger33
View
375
Download
2
Tags:
Embed Size (px)
Citation preview
Databases inQT
QTپایگاه های داده در
دانیال اکبری
91پاییز
اضافه کردن ماژولSQL. در فایل pro
آماده سازی پروژه ها
انواع درایور های پشتیبانی شده درQT:
مشخص شدن ارتباط به وسیله شی ای از نوعQSqlDatabase
استفاده از درایور
QODBC برای ایجاد
SQL Serverارتباط با
و سایر پایگاه های داده
ساخته شده توسط
microsoft
ایجاد ارتباط با پایگاه داده
اضافه کردن ماژول
هر ارتباط به وسیلهQSqlDatabase.مشخص می شود
تنظیمhostName, databaseName, userName, ،password
فعال کردن ارتباط پس از ایجاد ارتباط پیش از استفاده
از پایگاه داده
ایجاد ارتباط با پایگاه داده
ایجاد ارتباط به پایگاه دادهUDB در برنامه SQL
Server
Connection String برای DatabaseName
% کاربرد
کاربرد
مثال
استفاده از شیQSqlQuery برای نشان دادن محتوای پرس و جو و همچنین برگرداندن نتیجه
پرس و جو
اجرا پرس و جو با استفاده از تابعexec در شی QSqlQuery
نشان دادن خطا با استفاده ازlastError
به دست اوردن مشخصات فیلدها با استفاده از شیQSqlRecord
به دست آوردن تعداد فیلدها با استفاده از تابعcount
به دست آوردن نام فیلدها با استفاده ازfieldName(int)
پرس و جو
استفاده از حلقه برای به دست آوردن نام فیلدها و رکورد ها
ایجاد رشته ای شامل نام فیلدها در حلقه اول
به دست آوردن رشته هایی شامل مقادیر رکورد ها در حلقه های بعدی با استفاده ازnext
به دست آوردن مقدار هر فیلد برای یک رکورد با استفاده ازvalue(int)
بر گرداندن مقدارNULLو خروج از حلقه
Qvariant
اجرای مثال
پرس و جو
استفاده ازpreparation برای پرس و جو های پیچیده تر مانند اضافه
کردن یک رکورد
عوض شدن مشخصات متغییر های مختلف بینSQL و QT
Floating point
قبل از اجرای پرس و جو آن را به وسیلهpreparation آماده اجرا می
کنیم(دلخواه)
چک کردنsyntax پرس وجو قبل از اجرا ،در صورت خطا false
برمی گرداند
اشکال درconnection در مورد خطا در exec
Preparation
استفاده از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();
استفاده از کالسData Model برای استخراج ،به روز رسانی و
نمایش آن ها
برای استفاده از کالسData Model می توان از قابلیت کالس
استفاده کردQtSql در ماژول QSqlTableModelهای
استفاده نکردن از پرس وجوهای خامSQL مانند
)SELECT, INSERT, UPDATE, DELETE(
قابلیت استفاده از کالس برای محیط هایGUI با استفاده از
QListView و یا QTableView در کنار فراهم آوردن امکان دست
Consol Applicationکاری داده ها در پروژه های
Data Model
Data Model
Model.setTable(“ ”) From
Model.setFilter(“ “) Where
Model.select(“ “) select
Select *From StudentWhere Major = ‘Computer Science’
پیمایش نتیجه با استفاده از رکورد به دست آمده از
QSqlTableModel::record انجام می شود ()
دسترسی به یک فیلد مشخص از طریقvalue امکان()
پذیر است
Data Model
1.Foundation Of
Qt Development
منابع
2.C++ GUI Programming
with Qt 4, Second Edition
منابع