PDA

View Full Version : Using datebases with Qt



raven1997
پنج شنبه 16 مهر 1388, 14:51 عصر
سلام دوستان
میشه در این تاپیک کمک کنید و از صفر دیتابیس برای کیوت رو کار کنیم .
من فقط میدونم باید بنویسم :
include <QSql>:اشتباه:

ولی نمیدونم مثلا وقتی با MICROSOFT SQL SERVER MANAGEMENT STUDIO یه db درست میکنم چه جوری با کیوت بهش وصل بشم و کلا کار کنم .

لطفا زیاد حرفه ای نگید ، چون من از کار با db در کیوت هیچی بلد نیستم!:متعجب::افسرده:

sgb110
پنج شنبه 16 مهر 1388, 20:46 عصر
سلام
این فایل رو که آپلود کردم روبخون فکر کنم بدردت بخوره
اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟

حامد مصافی
دوشنبه 20 مهر 1388, 10:58 صبح
اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟
باید بسته mysql-devel را نصب کنید. در گنو/لینوکس های مبتنی در دبیان می توانید از دستور زیر استفاده کنید:

apt-get install mysql-devel

حامد مصافی
دوشنبه 20 مهر 1388, 11:13 صبح
@ raven1997 (http://barnamenevis.org/forum/member.php?u=64172) :
مدیر پایگاه داده MSSQL Server یه نرم افزار DBMS مبتنی بر پروتکل TDS است. پس می توانید به دو طریق به آن متصل شوید:

- درایور TDS
در Qt نسخه 7 پروتکل TDS گنجانده شده است که با آن می توانید با نسخه 7 SS ارتباط بر قرار کنید.
برای نسخه های 2000 و 2005 به ترتیب به نسخه های 8 و 9 TDS نیاز خواهید داشت. پس بهتر است گزینه های دیگری مانند FreeTDS یا سایر گزینه هایی که در ویندوز موجودند را تست کنید.

- درایور ODBC
در Qt چنین درایوری با نام QODBC وجود دارد.

با این کد می توانید لیست درایور های موجود Qt را ببینید:


#include <QSqlDatabase>
#include <QStringList>
#include <QDebug>

int main(int argc, char* argv[]) {
QApplication app(argc, argv);

qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t" << driver;

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() << "ODBC driver valid?" << db.isValid();}

raven1997
پنج شنبه 30 مهر 1388, 14:02 عصر
ممنون ، ولی دو تا نکته : اول اینکه این کد به من کار نمیده ..
و دوم اینکه درایور دیتابیس چیه ؟ چه کاربردی داره ؟ و اصلا چه جوری میشه ازش استفاده کرد ؟
میشه بیشتر توضیح بدید ....
ممنون

raven1997
جمعه 01 آبان 1388, 22:49 عصر
بازم سلام
من خیلی خوشحالم چون بالاخره تونستم در کیوت به MYSQL وصل بشم ، زود اومدم اینجا بگم چی شد !
البته من از روی HELP خود کیوت یاد گرفتم ، واقعا کامله...

void connecting() {
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("MyFirstMySQLDB");
db.setUserName("root");
db.setPassword("11111");
bool ok = db.open();
}

حامد مصافی
شنبه 02 آبان 1388, 09:57 صبح
اگر به جای QMYSQL بنویسید QODBC می توانید به MS SQL server وصل شوید!

raven1997
شنبه 02 آبان 1388, 22:34 عصر
ممنون از شما دوست عزیز ، من با مای سیکوئل آبم توی یه جوب ! نمیره و رفتم سراغ مایکروسافت سیکوئل سرور و به شکل زیر بهش وصل شدم . میشه بگید حالا چه جوری میتونم کوئری بنویسم و مثل انسان باهاش کار کنم ؟

void MainWindow::connecting() {
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("ALIS");
db.setDatabaseName("DBC++‎StudentsMarks");
db.setUserName("myUserName");
db.setPassword("MYPS");
db.open();
}

raven1997
شنبه 02 آبان 1388, 22:46 عصر
خب خودم رفتم و یاد گرفتم

QSqlQuery query;
query.exec("SELECT Name, Mark FROM tblStudents WHERE StdID = 8655900");
بعدش نتیجه ی این اجرا رو میشه راحت مدیریت کرد .... به وسیله ی متغیر کوئری...

حالا یه بحث دیگه که پیش میاد اینه که چه جوری ویدجت های مختلف رو به این دیتابیس وصل کنیم...
دوستان لطفا مشارکت کنید

حامد مصافی
یک شنبه 03 آبان 1388, 10:40 صبح
http://doc.trolltech.com/4.5/qtsql.html

python_85
یک شنبه 03 آبان 1388, 13:46 عصر
سلام
من تو لینوکس می خوام به mysql وصل بشم
خود mysql رو نصب کردم م از طریق ترمینال لینوکس می تونم وصل بشم بهش
qt-mysql رو هم نصب کردم
ولی موقع کار تو کیوتی می گه QMYSQL رو نمی تونه لود کنه
و فقط QODBC ,QSQLITE ,QODBC3 لود می شن!
لینوکسم هم suse10.3 هست



QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

raven1997
یک شنبه 03 آبان 1388, 20:58 عصر
Installing MySQL from Source in Linux





This section only covers the minimum installation to be able to build AIS with Embedded MySQL support. The recommended version of MySQL is 5.1.




Download the MySQL Source from http://dev.mysql.com/downloads/mysql/5.1.html#source
Extract the contents of the archive to a clean directory
Build and Install
Configure PATH environment variable
Update linker configuration

Use the following commands to build and install MySQL:


user@linux:~ > tar xvfz /path/to/mysql-5.1.30.tar.gz


user@linux:~ > cd mysql-5.1.30


user@linux:~ > ./configure --with-embedded-server


user@linux:~ > make


user@linux:~ > sudo make install


By default, MySQL programs will be installed in /usr/local/bin. MySQL libraries on the other hand is installed in /usr/local/lib/mysql. Use the --prefix option to change the install directory.


user@linux:~ > ./configure --prefix=/opt/mysql-5.1.30


If /usr/local/bin is not included in the PATH variable, append the following line to the system's default profile or the user's profile:


PATH=/usr/local/bin:$PATH


If MySQL was installed in a different directory, use it in place of /usr/local/bin:


PATH=/opt/mysql-5.1.30/bin:$PATH


Use the following commands (as root) to update the linker configuration:


root@linux:~ # echo "/usr/local/lib/mysql" >> /etc/ld.so.conf.d/mysql.conf


root@linux:~ # ldconfig


If /etc/ld.so.conf.d does not exist, use:


root@linux:~ # echo "/usr/local/lib/mysql" >> /etc/ld.so.conf


root@linux:~ # ldconfig


At this point, AIS can be built from both the Command Line and the Eclipse IDE.

حامد مصافی
دوشنبه 04 آبان 1388, 09:44 صبح
سلام
من تو لینوکس می خوام به mysql وصل بشم
خود mysql رو نصب کردم م از طریق ترمینال لینوکس می تونم وصل بشم بهش
qt-mysql رو هم نصب کردم
ولی موقع کار تو کیوتی می گه QMYSQL رو نمی تونه لود کنه
و فقط QODBC ,QSQLITE ,QODBC3 لود می شن!
لینوکسم هم suse10.3 هست



QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC






به مسیر زیر رفته و اطمینان حاصل کنید افزونه مورد نظر وجود دارد:


$QTDIR/plugins/sqldrivers



خروجی دستور زیر را ذکر کنید:


ldd libqsqlmysql.so


اطمینان حاصل کنید qt-mysql نصب شده مطابق به نسخه Qt شماست.
خروجی دستورهای زیر را ذکر کنید(البته در سیستم های مبتنی بر دبیان):



dpkg --list|grep mysql
dpkg --list|grep qt

armintirand
یک شنبه 16 مهر 1391, 16:24 عصر
اگه بخواهیم با کیوت به sqlite متصل بشیم و باهاش کار کنیم از چه دستوراتی میشه استفاده کرد؟
ممنون

rubiks.kde
یک شنبه 16 مهر 1391, 17:32 عصر
اگه منظورتون دستورات Qt مربوط به sql و پایگاه داده است که sqlite هم هیچ فرقی با بقیه نداره (کلاسها و توابع کار با پایگاه داده برای تمام پایگاه داده ها یکسان است)ولی اگه منظورت دستورات مربوط به sql است که توسط sqlite پشتیبانی میشه میتونی به لینک زیر مراجعه کنی

http://www.sqlite.org/docs.html

behnia_k
پنج شنبه 27 مهر 1391, 11:22 صبح
سلام
این فایل رو که آپلود کردم روبخون فکر کنم بدردت بخوره
اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟

امكان دسترسي به فصلهاي ديگر اين كتاب وجود دارد يا نه.

rubiks.kde
پنج شنبه 27 مهر 1391, 11:55 صبح
بله تمام فصل های این کتاب وجود داره اسم این کتاب The Art Of Building Qt Applications می باشه می تونید یه سرچ بزنید توی گوگل و کل کتاب رو دانلود کنید(حجمش حدود 7 مگ)