مشکل در استفاده از Stored Procedure
سلام
برنامه ای نوشتم که برای insert و update دیتابیسم از stored procedure در sql server استفاده می کنم.
کد زیر رو ببینید:
with sp do
begin
Close;
ProcedureName:='insert_in_table';
Prepared:=True;
Parameters.ParamValues['@percode']:=trim(edPercode.Text);
.
//some code
.
.
ExecProc;
end;
مشکل اینجاست که کد بالا فقط زمانی کار میکنه که در زمان طراحی ProcedureName مربوط به AdoStoredProcرو مقدار دهی کرده باشم, در غیر این صورت پیام خطای زیر رو میگیرم:
sp: Parameter '@percode' not found.
یه مشکل دیگه زمانی هست که در زمان طراحی ProcedureName رو مقدار دهی کنم و بعد میخوام در زمان اجرا نام پروسیجر مورد استفاده رو عوض کنم. که باز هم پیام خطای بالا رو میگیرم.
لطفا راهنمایی کنید
نقل قول: مشکل در استفاده از Stored Procedure
یک سوال دیگه!
چرا این زیر انجمنهای دلفی اینقدر کم بازدید هست؟؟؟!!!
از وقتی که این پست رو زدم در عرض 8 ساعت فقط 6 بازدید داشته, اما در بخش مباحث مربوط به برنامه نویسی در Delphi که یک رده بالاتر از این بخش هست از اون زمانی که من پست زدم بیش از 10 تاپیک با پست های مختلف به روز شده!
اگر واقعا این انجمنها بازدید نداره چرا من قوانین رو رعایت کنم و سوالم رو در جای مخصوص بپرسم؟
لطفا مدیران گرامی فکری برای این بخش ها هم بکنند
تشکر
نقل قول: مشکل در استفاده از Stored Procedure
نقل قول:
مشکل اینجاست که کد بالا فقط زمانی کار میکنه که در زمان طراحی ProcedureName مربوط به AdoStoredProcرو مقدار دهی کرده باشم, در غیر این صورت پیام خطای زیر رو میگیرم
نباید انتظار داشته باشید که شی ایی که هنوز آن را نساختید، کار هم بکنه. شما تا وقتی که پارامتر Percode@ را نساختید، نمی تونید ازش استفاده کنید؛ بجای ParamValue از CreateParam استفاده کنید تا پارامتر شما ساخته شود.
نقل قول:
اگر واقعا این انجمنها بازدید نداره ...
اینکه به سوال شما جواب داده نشده، دلیلی بر بدون بازدید بودن این انجمن ها نیست.
نقل قول:
چرا من قوانین رو رعایت کنم و سوالم رو در جای مخصوص بپرسم؟
چون قوانین هست و اگر رعایت نکنید، سوالتان پاک میشه.
نقل قول: مشکل در استفاده از Stored Procedure
با سلام.
این لینکها میتونه کمکتون کنه:
نقل قول: مشکل در استفاده از Stored Procedure
نقل قول:
نباید انتظار داشته باشید که شی ایی که هنوز آن را نساختید، کار هم بکنه. شما تا وقتی که پارامتر Percode@ را نساختید، نمی تونید ازش استفاده کنید؛ بجای ParamValue از CreateParam استفاده کنید تا پارامتر شما ساخته شود.
اما من در sp كه در sql server ساختم، پارامتر رو مي سازم:
CREATE PROCEDURE [dbo].[insert_into_pers]
(@percode[float](7),
.
//some code
.
يعني در دلفي هم همين كارها رو انجام بدم؟
يك سوال ديگه:
چرا وقتي در زمان طراحي ميخوام procedurename رو مقدار دهي كنم، بعد از نام sp يه ;1 هم اضافه ميشه؟ مثل زير:
nsert_into_pers;1
نقل قول: مشکل در استفاده از Stored Procedure
نقل قول:
اما من در sp كه در sql server ساختم، پارامتر رو مي سازم
وقتی در زمان طراحی SP را انتخاب می کنید، دلفی پارامترها را برای شما میسازه، ولی وفتی در زمان اجرا SP را انتخاب می کنید، خودتون باید به دلفی بگید که چه پارامترهایی داره. البته بعضی کامپوننت ها مثل SDAC خودشون در زمان اجرا هم پارامترها را بطور خودکار میسازند.
نقل قول:
چرا وقتي در زمان طراحي ميخوام procedurename رو مقدار دهي كنم، بعد از نام sp يه ;1 هم اضافه ميشه؟
چک نکردم، ولی فکر کنم این مقدار پیش فرض پارامتری باشه که برای SP تعریف کردید.
نقل قول: مشکل در استفاده از Stored Procedure
نقل قول:
وقتی در زمان طراحی SP را انتخاب می کنید، دلفی پارامترها را برای شما میسازه، ولی وفتی در زمان اجرا SP را انتخاب می کنید، خودتون باید به دلفی بگید که چه پارامترهایی داره.
تشكر حل شد.
نقل قول:
چک نکردم، ولی فکر کنم این مقدار پیش فرض پارامتری باشه که برای SP تعریف کردید.
اين رو براي sp هاي پيش فرض ديتابيس هم مياره، ممكنه هم به خاطر نوع sp ها باشه.
به هر حال ممنون. موفق باشيد