ورود

View Full Version : سوال: دستور insert



soft-c
یک شنبه 27 تیر 1389, 14:45 عصر
سلام.
می خواستم بدانم آیا دستور insert تو در تو هم داریم .
یعنی در دستور insert از select هم استفاده کنیم ؟
من دو تا جدول دارم که در جدول اول اطلاعات کالا شامل کد و نام و نوع کالاو تعداد آن کالا ثبت می شود و در جدول دوم اطلاعات یک کالای خریداری شده ثبت می شود .
حالا می خواهم در هنگام خرید هنگامی که به تعداد خرید ها اضافه می شود به تعداد کالاهای جدول اول اضافه شود .
از این کد استفاده کردم ولی مشکل می گیرد :

insert into amval (code) select code from amval where (code='''+edit1.text+''') values ('''+edit2.text+''')
البته کد بالا را برای امتحان نوشتم نه برای سوال بالایی (می خواستم ببینم آیا اصلا این کد جواب می دهد تا بعد برای اضافه کردن تعداد کالا هم کدی به آن اضافه کنم ).
تشکر.

karim_medusa
یک شنبه 27 تیر 1389, 15:02 عصر
اگر درست کوری رو بنویسی میشه.
چرا از روال ها استفاده نمی کنی! StoredProcdure

voodoo01
یک شنبه 27 تیر 1389, 15:06 عصر
دستور Select و insert
insert میکند اطلاعات را به صورت دسته ای یعنی نمیتوان نام فیلد را برای اضافه کردن داده ها انتخاب نمود اگر می خواهید فیلدی رل خالی بگزارید از مقدار null استفاده کنید

insert data1 select null,name,famil,null from data2 where id>200

soft-c
یک شنبه 27 تیر 1389, 16:36 عصر
error می دهد .
incorrect syntacs near values

voodoo01
یک شنبه 27 تیر 1389, 16:53 عصر
incorrect syntacs near values
زمانی با این خطا مواجه میشوید که یکی از فیلدیا فیلدهایی که در جدول مقصد وجود دارن از نظر نوع با فیلد بانک مبدا همخوانی ندارد مثلا یک مقدار char را داخل یک فیلد از نوع int

با احترام فراوان
VooDoo

MOJTABAATEFEH
یک شنبه 27 تیر 1389, 20:35 عصر
سلام.
می خواستم بدانم آیا دستور insert تو در تو هم داریم .
یعنی در دستور insert از select هم استفاده کنیم ؟
من دو تا جدول دارم که در جدول اول اطلاعات کالا شامل کد و نام و نوع کالاو تعداد آن کالا ثبت می شود و در جدول دوم اطلاعات یک کالای خریداری شده ثبت می شود .
حالا می خواهم در هنگام خرید هنگامی که به تعداد خرید ها اضافه می شود به تعداد کالاهای جدول اول اضافه شود .
از این کد استفاده کردم ولی مشکل می گیرد :

insert into amval (code) select code from amval where (code='''+edit1.text+''') values ('''+edit2.text+''')البته کد بالا را برای امتحان نوشتم نه برای سوال بالایی (می خواستم ببینم آیا اصلا این کد جواب می دهد تا بعد برای اضافه کردن تعداد کالا هم کدی به آن اضافه کنم ).
تشکر.

احتمال زیاد منظور شما در قسمت فاکتور خرید است پس حتما شما یک edit برای وارد کد کالا دارید مثلا اینجا به اسم code.text و یک Edit هم برای وارد کردن تعداد خریداری شده اینجا به اسم Many.text دوست عزیز کد زیر این کار رو برای شما انجام میده


update table1 set many=many+many.text where code = code.text


کد بالا تعداد خریداری شده هر کالا را به موجودی همان کالا در انبار اضافه می کنه البته اگر کالا در انبار موجود باشه که با کمی کد نویسی بیشتر شما می تونید این کنترل رو انجام بدین که اگر این کالا موجود بود به تعداد آن اضافه کنه در غیر اینصورت این مورد را به عنوان یک کالای جدید به انبار اضافه کنه

کد شما هم درست نیست تصحیح آن در زیر هست


'insert into amval (code) select code from amval where code='+quotedstr(edit1.text)


البته به احتمال زیاد در جدول amval فیلدهای دیگری هم هستن اگر آنها NotNull باشند ومقدارDefault هم برای آنها تعریف نشده باشه این کد ایراد می گیره این مورد را کنترل کنید




موفق باشید