اتصال به بانک اطلاعاتی



  • من این کدها رو نوشتم لی با پیغام خطا مواجه شدضمنابرای اتصال به بانک باید فایل
    بانک اطلاعاتی رو در پوشه برنامه قرار بدم

    @#include <QtSql>
    #include <QDebug>

    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);

    QString servername="LOCALHOST\\\\SQLEXPRESS";
    
    QString dbname="m";
    
    QSqlDatabase db =QSqlDatabase::addDatabase("QODBC");
    
    db.setConnectOptions();
    
    QString dsn = QString("DRIVER={SQL Native Client};SERVER=%1;DATABASE=%2;Trusted_Connection=Yes;").arg(servername).arg(dbname);
    
    db.setDatabaseName(dsn);
    
    if(db.open()){
    
        qDebug()<<"opend";
        db.close();
    
    
    }
    else{
        qDebug()<<"eroor"<<db.lastError().text();
    
    }
    
    return a.exec&#40;&#41;;
    

    }

    @

    eroor "[microsoft][odbc driver manager] data source name not found and no defult driver specified
    QODBc3:unable to connect"



  • p{direction:rtl; text-align:right}. سلام ، فکر کنم مشکل از نبود کتابخونه درایور دیتا بیس باشه ,
    منم یه همچین مشکلی داشتم البته با mysql که بعد از نصب کتابخونه و درایور مشکلم حل شد
    من از اینجا واسه حل مشکلم کمک گرفتم
    http://www.qtcentre.org/wiki/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_MinGW



  • [quote author="bs994" date="1335170836"]p{direction:rtl; text-align:right}. سلام ، فکر کنم مشکل از نبود کتابخونه درایور دیتا بیس باشه ,
    منم یه همچین مشکلی داشتم البته با mysql که بعد از نصب کتابخونه و درایور مشکلم حل شد
    من از اینجا واسه حل مشکلم کمک گرفتم
    http://www.qtcentre.org/wiki/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_MinGW
    [/quote]

    p{direction:rtl; text-align:right}. نه. درایور لود شده. چون پیغام خطا از سمت درایور بوده. رشتهٔ اتصال نادرست هست.



  • خوب رشته ی اتصال درست برای ارتباط با sql server
    چی هست ...میشه لطفا راهنمایی کنید؟



  • [quote author="friendchp" date="1347119081"]خوب رشته ی اتصال درست برای ارتباط با sql server
    چی هست ...میشه لطفا راهنمایی کنید؟[/quote]
    @
    QString connectionTemplate = "DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;";

    QString connectionString = connectionTemplate.arg(server).arg(dbName);
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", connectionName);

    db.setDatabaseName(connectionString);
    db.setUserName(user);
    db.setPassword(password);

    if (db.open())
    {

    }
    else
    {

    }
    @



  • ممنون عباس جان...منظورت از connectionname
    چی هست..جاش چی باید بنویسم؟



  • p{direction:rtl; text-align:right}. خواهش میکنم
    هیچی اصلا پاکش کن . اینجوری بنویس

    @
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    @



  • //اینی که قبلا مینوشتم و کلا ارور میداد که نمیتونه وصل بشه
    @
    //QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    //db.setConnectOptions();
    //QString dsn=QString("DRIVER={SQL Native Client 11.0};SERVER=%1;DATABASE=%2;Trusted_Connection=Yes;").arg(server_name).arg(dbname);
    //db.setDatabaseName(dsn);@

    //اینی که شما گفتین
    @
    QString server_name="LOCALHOST\\SQLEXPRESS";
    QString dbname="test";
    QString connectionTemplate = "DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;";

    QString connectionString = connectionTemplate.arg(server_name).arg(dbname);
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

    db.setDatabaseName(connectionString);
    db.setUserName("sa");
    db.setPassword("sa");

    if (db.open())
    {
    qDebug()<<"opened";
    QSqlQuery query;
    if (query.exec("SELECT * FROM [test].[dbo].[people]"))
    {
    while (query.next())
    {
    qDebug()<<query.value(1);
    }
    }
    else
    {
    qDebug()<<db.lastError().text();
    }
    db.close();
    }

    else {
    qDebug()<<db.lastError().text();

    }@

    اینی که شما گفتین رو نوشتم و ارور میده که نمیتونه با این یوزر
    sa
    به دیتابیس کننکت بشه
    login failed for user 'sa'...
    من با این یوزر پس میتونم وقتی اسکیو سرور منیجمنت رو اجرا میکنم ..
    میتونم با این یوزر و پس وارد بشم ...
    اما اینجا این ارور میده..
    ممنون میشم دوباره کمک کنید



  • p{direction:rtl; text-align:right}. ببنید این یوزر مال دیتابیس هست یا مال کل سیکوئل سرور؟
    ممکنه این یوزر به دیتابیس test افزوده نشده باشه
    در ضمن چک کنید ببینید بدون یوزر پس میتونه وارد بشه
    اگر نشد یک یوزر جدید با تمامی دسترسی ها ایجاد کنید و مجددا تست کنید



  • واقعا ببخشید که هی دارم وقتتونو میگیرم...
    وقتی که یوزر نیم و پس رو پاک کردم کلا این پیام رو میده :
    cannot open database test requested by the login...the login faied..Qodbc3 unable to connect
    وقتی که یه یوزر پس الکی هم زدم همون ارور پست قبلی رو هم بهم داد..نمیدنم چطوری باید توی اسکیو ال سرور که نصبیدم اون کاری که گفتینو انجام بدم ...ممنون میشم راهنمایی کنید



  • p{direction:rtl; text-align:right}. خواهش میکنم
    شما نسخه کاملشو نصب کردین؟
    من الان رو سیستمم ندارم.اجازه بدید بگردم تا پیداش کنم



  • بله من نسخه کامل sql sever 2012 رو روی سیستمم نصب کردم



  • p{direction:rtl; text-align:right}. من عذرخواهی میکنم اینقدر دیرشد.سرم خیلی شلوغ بود
    راستش من چنجا مشکل شمارو عینا دیدم و لینک خیلی خوبی پیدا کردم.
    "مثل این":http://www.formboss.net/blog/2011/01/connecting-to-an-mssql-database-in-qt/
    ولی چون خودم کلا با ms sql کار نمی کنم ، همچنین نصصب هم ندارمش ، نتونستم تست کنم
    ببخیشید
    امیدوارم که لینک به کار بیاد و مشکلت حل شه



  • خیلی ممنونم از لطفتون..
    امیدوارم موفق باشید;)



  • p{direction:rtl;text-align:right}. مشکلمن این جوری حل شد فقط در server به جای hamed-pc ببین این نام در اسکبول سرور چی هست اون رو جایگذاری کن
    @
    db=QSqlDatabase::addDatabase("QODBC");
    QString dbPath = QCoreApplication::applicationDirPath() + "/نام بانک.mdf";
    db.setConnectOptions();
    db.setDatabaseName("Driver={SQL Server Native Client 10.0};Server=HAMED-PC;AttachDbFilename"+dbPath+";Database=db;Trusted_Connection=Yes");
    if(db.open()){

                qDebug()<<"opend";
    

    else{

                             qDebug()<<"eroor"<<qry.lastError().text();
                        }
    

    @



  • خیلی ممنونم از همتون مخصوصا آقا عباس وآقا حامد...
    مشکل منم حل شد..(فقط بخاطر آدرس دیتا بیس بود ..که نمی دونم چرا اونطوری پیدا نمیشد..اما وقتی طبق گفته ی آقا حامد به صورت مستقیم لینک ادرس دیتا بیس رو دادم اونوقت مشکلم حل شد)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.