اتصال به بانک اطلاعاتی
-
[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(); }
@