# Native Code > برنامه نویسی با C > برنامه نویسی در محیط QT و هم خانواده هایش >  Using datebases with Qt

## raven1997

سلام دوستان
میشه در این تاپیک کمک کنید و از صفر دیتابیس برای کیوت رو کار کنیم .
من فقط میدونم باید بنویسم :
include <QSql> :اشتباه: 

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

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

----------


## sgb110

سلام
این فایل رو که آپلود کردم روبخون فکر کنم بدردت بخوره
اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟

----------


## حامد مصافی

> اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟


باید بسته mysql-devel را نصب کنید. در گنو/لینوکس های مبتنی در دبیان می توانید از دستور زیر استفاده کنید:
apt-get install mysql-devel

----------


## حامد مصافی

@ raven1997 :
مدیر پایگاه داده 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

ممنون ، ولی دو تا نکته : اول اینکه این کد به من کار نمیده ..
و دوم اینکه درایور دیتابیس چیه ؟ چه کاربردی داره ؟ و اصلا چه جوری میشه ازش استفاده کرد ؟
میشه بیشتر توضیح بدید ....
ممنون

----------


## raven1997

بازم سلام
من خیلی خوشحالم چون بالاخره تونستم در کیوت به 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();
 }

----------


## حامد مصافی

اگر به جای QMYSQL بنویسید QODBC می توانید به MS SQL server وصل شوید!

----------


## raven1997

ممنون از شما دوست عزیز ، من با مای سیکوئل آبم توی یه جوب ! نمیره و رفتم سراغ مایکروسافت سیکوئل سرور و به شکل زیر بهش وصل شدم . میشه بگید حالا چه جوری میتونم کوئری بنویسم و مثل انسان باهاش کار کنم ؟
void MainWindow::connecting() {
      QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
      db.setHostName("ALIS");
      db.setDatabaseName("DBC++‎‎StudentsMarks");
      db.setUserName("myUserName");
      db.setPassword("MYPS");
      db.open();
 }

----------


## raven1997

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

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

----------


## حامد مصافی

http://doc.trolltech.com/4.5/qtsql.html

----------


## python_85

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


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

----------


## raven1997

*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#sourceExtract the contents of the archive to a clean directoryBuild and InstallConfigure PATH environment variableUpdate 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.

----------


## حامد مصافی

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




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


خروجی دستور زیر را ذکر کنید:
ldd libqsqlmysql.so

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

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

----------


## armintirand

اگه بخواهیم با کیوت به sqlite متصل بشیم و باهاش کار کنیم از چه دستوراتی میشه استفاده کرد؟
ممنون

----------


## rubiks.kde

اگه منظورتون دستورات Qt مربوط به sql و پایگاه داده است که  sqlite هم هیچ فرقی با بقیه نداره (کلاسها و توابع کار با پایگاه داده برای تمام پایگاه داده ها یکسان است)ولی اگه منظورت دستورات مربوط به sql است که توسط sqlite پشتیبانی میشه میتونی به لینک زیر مراجعه کنی

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

----------


## behnia_k

> سلام
> این فایل رو که آپلود کردم روبخون فکر کنم بدردت بخوره
> اما من خودم هم فعلا نتونستم با MYSQL ارتباط برقرار کنم میگه درایورش لود نیست، کسی می دونه مشکل از کجاست؟


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

----------


## rubiks.kde

بله تمام فصل های این کتاب وجود داره اسم این کتاب The Art Of Building Qt Applications می باشه می تونید یه سرچ بزنید توی گوگل و کل کتاب رو دانلود کنید(حجمش حدود 7 مگ)

----------

