ورود

View Full Version : راهی برای اجرای دستورات SQL طولانی بدون تایپ در محیط IDE



kitcat_m18
چهارشنبه 16 شهریور 1390, 18:13 عصر
سلام،

من یه کد SQL متشکل از Insert و Select زدم که 500 خطی شده :لبخند:

حالا حوصله ندارم تو محیط VB هم به صورت String تایپش کنم

دنبال راهی می گردم که بتونم از طریق فایلی چیزی اجراش کنم

مثلا یاز طریق VB همون فایل SQL رو اجرا کنم

با تشکر:لبخندساده:

quiet_programmer
چهارشنبه 16 شهریور 1390, 18:58 عصر
با سلام.

با توجه به سوالتون: واین بود که خداوند کپی و پیست را آفرید...

یاحق.
موفق باشید

kitcat_m18
چهارشنبه 16 شهریور 1390, 22:33 عصر
سلام مجدد
یه مقدار از این فرم کد زنی استفاده کن تا ببینی خداوند چه چیزای دیگه ای رو تو VB آفریده که نتونی 400 خط کد اس کیو ال رو وارد کنی:قهقهه:


Select * From Table Where _
Product_ID=90 _
And ...

quiet_programmer
جمعه 18 شهریور 1390, 12:07 عصر
با سلام.


یه مقدار از این فرم کد زنی استفاده کن تا ببینی خداوند چه چیزای دیگه ای رو تو VB آفریده که نتونی 400 خط کد اس کیو ال رو وارد کنی:قهقهه:اگه به به کوری خوندن باشه باید بگم من عزیزم هرگز جدولهامو طوری طراحی نمیکنم که مجبور باشم برای گرفتن یه کوری از دستور اس کیوال 400 خطی استفاده کنم:لبخند:
همیشه کد زیاد نشانگر حرفه ای بودن کد نیست. اگه طراحی جداولت رو اصولی طراحی میکردی شاید این دستور اس کیو ال میشد یه تک خط. اوکی؟
حالا خوبه خداوند ویو رو تو اس کیوال آفرید تا نیاز نباشه کدهای اس کیوال رو خودمون به صورت دستی بنویسیم.حالا اگه این کد رو خودت دستی تولید میکردی دیگه...:چشمک:
هرچند همه دستورات رو نمیشه با ویو تولید کرد ولی برای تولید کوری ها خیلی کمکون میکنه.
بیخیال چرا دارم الکی بحث میکنم. شما کدر.

خوب ببین شما دستور 500 خطی اس کیو ال رو میاری کپی پیست میکنی بعد این کار ویبی خطا میگیره که تو بهش توجه نمیکنی بعد میای ابتدای رشته و یه کاراکتر "میزنی بعد میری به انتهای همون خط و کاراکتر _ & " رو به انتهای همون خط اضافه میکنی. بعد خط بعدی باز " و انتهای خط دوباره کاراکتر _ & " رو اضافه میکنی.تو خط آخر در انتهای رشته یه کاراکتر " به شکل زیر:

SqlCommand = "SELECT dbo.TblBusSandali.Sandali " & _
"FROM dbo.TblBusInfo INNER JOIN " & _
"dbo.TblBusSandali ON dbo.TblBusInfo.Code = dbo.TblBusSandali.BusCode " & _
"WHERE (dbo.TblBusInfo.Code = '" + BusCode + "') " & _
"EXCEPT " & _
"SELECT dbo.TblBusSandali.Sandali " & _
"FROM dbo.TblBusReserveInfo INNER JOIN " & _
"dbo.TblBusReserve ON dbo.TblBusReserveInfo.ReserveCode = dbo.TblBusReserve.ReserveCode INNER JOIN " & _
"dbo.TblBusSandali ON dbo.TblBusReserve.BasCode = dbo.TblBusSandali.BusCode AND dbo.TblBusReserve.Sandali = dbo.TblBusSandali.Sandali " & _
"WHERE (dbo.TblBusSandali.BusCode = '" + BusCode + "') AND (dbo.TblBusReserveInfo.DateHarakat = CONVERT(DATETIME, '" + DHarakat + "', 102))"

به قول یکی از دوستان به همین سادگی به همین خوشمزگی
در ضمن میتونی از store procedure استفاده کنی و ازطریق vb اون رو فراخوانی کنی و نتیجه رو بخونی.

یاحق
موفق باشید/

kitcat_m18
سه شنبه 22 شهریور 1390, 21:27 عصر
سلام دوست عزیز، بهتر بود برای اینکه منظور منو متوجه بشی خودت یه تستی می زدی بعد اینطوری جواب می دادی وقتی زیاد از متد Continuations بیشتر از 25 خط پشت سر هم استفاده کنی پیغامی با این مضمون بهت میده: Too Many Line Continuations در ضمن من برای دستوراتی که دارم تایپ می کنم نیاز به استفاده از متغیر های خود VB در دستوراتم دارم و در عین حال هم دارم از متد OpenRowset استفاده می کنم اینو گفتم که بدونی دلیلم برای اینکار چیه، وگرنه هم تریگر رو می شناسم هم پروسیجر به هر حال ممنون

a_mohammadi_m
پنج شنبه 14 مهر 1390, 08:47 صبح
سلام
نميشد اين دستورات رو بصورت يك كوئري پارامتري در Sql بنويسي ، بعد متغيرهاي VB رو بصورت پارامتر بهش رد ميكردي؟
فكر كنم اينجوري بهتره
تازه چه خبره 500 خط ، بهتره تو نوع دستوراتت يه تجديد نظري بكني مثلا اونا رو به چند قسمت منطقي بشكني و فراخواني كني

vbhamed
پنج شنبه 14 مهر 1390, 19:45 عصر
سلام
خب شما تا جايي كه ميشه تو يك متغير با _ & بنويس وقتي ديگه اجازه نداد دوباره در يك دستور جديد، ادامه Sql رو به اضافه مقدار قبلي متغير كن
sql = "Select * " & _
"..." & _
"..." & _
"..."

sql = sql & "Select * " & _
"..." & _
"..." & _
"..."

sql = sql & "Select * " & _
"..." & _
"..." & _
"..."

sql = sql & "Select * " & _
"..." & _
"..." & _
"..."

مي‌توني هم كل دستور رو در فايل متني بنويسي و يكجا از فايل بخوني و در يك متغير قرار بدي

kitcat_m18
شنبه 23 مهر 1390, 21:33 عصر
سلام،

ممنون از جوابت خودمم همين راهو انتخاب کردم :چشمک: