اتصال به بانک اطلاعاتی
-
من این کدها رو نوشتم لی با پیغام خطا مواجه شدضمنابرای اتصال به بانک باید فایل
بانک اطلاعاتی رو در پوشه برنامه قرار بدم@#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();
}
@
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}. نه. درایور لود شده. چون پیغام خطا از سمت درایور بوده. رشتهٔ اتصال نادرست هست.
-
[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
{}
@ -
//اینی که قبلا مینوشتم و کلا ارور میداد که نمیتونه وصل بشه
@
//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}. من عذرخواهی میکنم اینقدر دیرشد.سرم خیلی شلوغ بود
راستش من چنجا مشکل شمارو عینا دیدم و لینک خیلی خوبی پیدا کردم.
"مثل این":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(); }
@