ايران ويج

نسخه‌ی کامل: SQLStoredProc
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
چطوری میشه پارامتر های SQLStoredProc را بروز رسانی کنیم.

فرض کنید من دو تا PROCEDURE در Sql Server نوشتم به نام های ContactsAdd و ContactsEdit

حالا می خواهم فقط یک شئی SQLStoredProc در نرم افزار داشته باشم که هر موقع خواستم نام پارامتر ContactsAdd یا ContactsEdit قرار بدم

ولی بعد از این کار پیغام خطا میده و میگه پارامتر ها را پیدا نمی کنه ولی اگه دو تا SQLStoredProc روی فرم قرار بدم و از قبل ContactsAdd  و ContactsEdit برای هر کدام بنویسم هیچ مشکلی ایجاد نمی شود.

ولی اینطور باید خیلی SQLStoredProc  توی نرم افزار داشته باشم متاسفانه گزینه Refresh برای پارامتر ها موجود نمی باشد ولی پارامتر های ADOStoredProc1 گزینه Refresh  داره.

لطفا راهنمایی کنید.
با سلام
یه راه سادش این هست که شما در زمان نیاز یک SQLStoredProc ایجاد کنید و بعد از استفاده اونو free کنید و یکی دیگه بسازید
در ضمن اگه از پارامترها خطا میگیره پس با اسامی مشکلی نداره شما پارامترهای ارسالی رو هم تغییر بدید یا از نو اضافه کنید
تشکر
پارامتر های ارسالی مشکلی نداره اگه من بخواهم تمام پارامتر ها دوباره تعریف کنم که خیلی زیاد میشه حدود 70 تا پارامتر هست
مشکل من اینه که گزینه بروز رسانی یا ریفرش نداره یعنی برای هر روال باید یک SQLStoredProc بزارم
اگه enable-disable یا active - deactive داره از اونها برای رفرش استفاده کنید یا sqlconnection که این sqlstoreproc بهش وصل هست اونو رفرش کنید
سلام
هر کاری می کنم پارامتر های جدید ریفرش نمیشه؟؟؟؟ 033 033 033 033
شما با sqlconnection هم همین مشکل رو داشتین؟
اگه شما اسم stor procedure رو تو کامپوننت عوض کنید باید پارامترها رو از اول وارد کنید
نمیتونید از پارامترهای قبلی استفاده کنید

کد:
 StoredProc1.DatabaseName := MyDatabase;
         StoredProc1.StoredProcName := MyStoredProc;
         StoredProc1.Params.CreateParam(ftString,InputParam,ptInput);
         StoredProc1.Params.CreateParam(ftString,OutputParam,ptOutput);
         try
            begin
               StoredProc1.ParamByName(InputParam).Value := InputVar;
               StoredProc1.ExecProc;
               Result := StoredProc1.ParamByName(OutputParam).AsString;
            end;
         except
            on E:EDBEngineError do
               begin
                  ShowMessage(E.message);
                  Result := '';
               end;
         end;