View Full Version : چطور دستورات دیتابیس را به صورت شرطی به کار ببرم؟
armintirand
یک شنبه 15 بهمن 1391, 01:23 صبح
سلام من توی یک پروژه میخام در صورت اجرای update دیگه insert اجرا نشه و برعکس.
از این کد استفاده کردم به نظرتون درسته؟
if(query.prepare("update mytable number=:number""where drugname=:drugname")){
}else{
query.prepare("insert into mytable (drugname,number,price)""values(:drugname,:number,:price)");
}
query.bindValue(":drugname",Table->item(i,0)->text());
query.bindValue(":number",Table->item(i,1)->text().toInt());
query.bindValue(":price",Table->item(i,2)->text().toInt());
query.exec();
البته درست که نیست و فقط insert اجرا میشه و update کار نمیکنه میشه مشکلشو بگین؟
armintirand
دوشنبه 16 بهمن 1391, 03:57 صبح
با جستجویی که کردم متجه شدم دستور update رو به صورت دیگه بکار میبرن و کدمو تغییر دادم ولی بازم هنوز فقط insert کار میکنه و update کار نمیکنه
for(int i=0;i<Table->rowCount();i++){
if(query.exec(QString("update mytable number= %1 where drugname='%2'").arg(Table->item(i,1)->text().toInt()).arg(Table->item(i,0)->text()))){
}else{
query.prepare("insert into mytable (drugname,number,price)""values(:drugname,:number,:price)");
query.bindValue(":drugname",Table->item(i,0)->text());
query.bindValue(":number",Table->item(i,1)->text().toInt());
query.bindValue(":price",Table->item(i,2)->text().toInt());
query.exec();
qDebug() <<Table->item(i,0)->text();
}
}
مشکل از کجای کدمه؟
alamate_aoal
دوشنبه 16 بهمن 1391, 18:48 عصر
خروجی دستور زیر رو ببین:
qDebug() << query.lastError().text();
مثال های خود کیوت رو نگاه کردی؟
armintirand
دوشنبه 16 بهمن 1391, 22:32 عصر
متاسفانه این دستور شما خروجی به من نشون نداد
alamate_aoal
سه شنبه 17 بهمن 1391, 10:29 صبح
qDebug کار نمیکنه یا ()query.lastError().text ؟
az.heidarzadeh
سه شنبه 17 بهمن 1391, 10:36 صبح
چه كاريه؟ شما حتما ميتوني تشخيص بدي كي ميخواي update بشه و كي insert خودت يه mode بفرست توي sp و اونجا مديريتش كن...
aidinMC
چهارشنبه 18 بهمن 1391, 13:23 عصر
این چه کدیه شما نوشتی؟!؟!
یه نوع بولین تعریف کن مثلا با اسم update و کدو به شکل زیر تغییر بده:
if(update == true){
query.exec("update mytable number=:number""where drugname=:drugname");
query.next();
update = false;
}else{
query.exec("insert into mytable (drugname,number,price)""values(:drugname,:number, :price)");
query.next();
update = true;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.