یه دستور sql میخوام
مدیریت گفتگو
سلام دوستان / دستور insert میخواستم ببینه تو جدول همین اطلاعاتی هست یا نه
اگه نبود اینسرت کنه اگه بود اضافه نکنه
پاسخها 6
جدول زیر رو در نظر بگیرید
دانشجو : شماره دانشجوریی ، نام ، نام خانوادگی ، رشته
با استاده از رویه های ذخیره شده
CREATE PROCEDURE CheckAndInsert(@id int , @name nvarchar(30) , @family nvarchar(30) , @major nvarchar(30))
AS
DECLARE @i int
set @i = SELECT * FROM Studemt WHERE Student.id=@id
if( @i =1 )
insert into Student values(@id , @name , @family , @major)
نظرات
یا هم میشه از کد زیر استفاده کرد اینو تست کن ببین جواب میده بهت
CREATE PROCEDURE CheckAndInsert(@id int , @name nvarchar(30) , @family nvarchar(30) , @major nvarchar(30))
AS
INSERT INTO Students (id , name , family , Major ) VALUES ( @id , @name , @family , @major)
WHERE NOT EXISTS ( SELECT * FROM Student WHERE Student.id = @id )
نظرات
خب برو تو برنامت چک کن اول یه دستور select بنویس و اونو ذخیره کن مثلا تو یه آرایه . بعد چک کن اگه آرایه طولش بزرگتر از صفره اونوقت insert کن.
نظرات
سلام
من با دستور insert نمیتونم مقادیر متغییر ها رو بریزم تو دیتابیس! اشکال کدها چیه؟
دستور دوم که مقادیر استرینگ رو مستقیم وارد میکنم مشکلی نیست ، مشکلم با دستور اول هست که مقادیر رو از متغییرها میخوام وارد دیتابیس کنم کار نمیکنه
//
String a = "a";
String b = "b";
String c = "c";
String d = "d";
String e = "e";
// دو دستور اول کار نمیکنن ، مشکلشون چیه؟
G.database.execSQL("INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes) VALUES (" + a + "," + b + "," + c + "," + d + "," + e + ")");
G.database.execSQL("INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes) VALUES (''" + a + ",''" + b + ",''" + c + ",''" + d + ",''" + e + ")");
// این مشکلی نداره
G.database.execSQL("INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes) VALUES ('test_name' ,'test_family' ,'test_number' ,'test_email' ,'test_note')");
نظرات
سلام
اینطور بنویس :
G.database.execSQL("INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes)
VALUES ('" + a + "','" + b + "','" + c + "','" + d + "','" + e + "')");
نظرات
ببینید شما وقتی به این شکل استفاده میکنین :
"INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes) VALUES (" + a + "," + b + "," + c + "," + d + "," + e + ")")
دارید متغیر های a و b و c و .... رو با رشته جمع میکنید و مقدار داخلشون توی رشته میشینه . خب داخل متغییر a چیه ؟ یه چیزی مثل "ali" ، خب نتیجه جمع شدنش با رشته بالا میشه این :
"INSERT INTO contact (first_name ,last_name ,phone_number ,email ,notes) VALUES (ali,reza,mohammad)"
خب این اشتباهه دیگه ، شما باید مقادیری که واریز میکنی از نوع String باشه ولی چون نمیشه در دابل کوتیشن دوباره از دابل کوتیشن استفاده کرد باید این استرینگ ها با تک کوتیشن مشخص بشن .
در مورد ران تایم پرمیشن ، من نتونستم نسخه ای از کتابخونه library support رو گیر بیارم که بتونم اون کدها رو قرار بدم . فکر کنم اصلا موجود نیست . ولی اگه بخوام برنامه رو برای api زیر 23 منتشر کنم یه راه اینه که ببینی مجوز داریم یا نه ، اگه داشت که هیچ ، اما اگه نداشت به کاربر یه دیالوگ نشون میدیم که باید در تنظیمات ، پرمیشن رو فعال کنه و دیگه کاری نکنه . ولی نمیتونیم داخل برنامه مجوز بگیریم . یعنی دیالوگمون فقط اطلاع رسانی میکنه نه کار دیگه .
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .

نظرات