PDA

View Full Version : کمک برای ساخت پروسیجر



j.farazani
دوشنبه 28 خرداد 1386, 16:43 عصر
با سلام
از دوستان کسی هست که STORED PROCEDURE سراغ داشته باشه که بتونه دستورات خاصی رو بگیره و یک STORED PROCEDURE دیگه رو بسازه . خیلی گیر کردم لطفا کمک کنید

خیلی لطف میکنید

supporter
دوشنبه 28 خرداد 1386, 17:06 عصر
منظورت از دستورات خاص بدنه SP جدیده؟

j.farazani
دوشنبه 28 خرداد 1386, 18:33 عصر
بله
ببین دقیقا میخوام کاربر من بتونه دستورات ساخت یک stored procdure رو مثلا تو یک فایلtext بنویسه وبعد من اون دستورات رو اجرا کنم و یک stored procdure جدید ایجاد بشه
در واقع سیستم من پارامتریک:متفکر: :متفکر: :متفکر:

supporter
دوشنبه 28 خرداد 1386, 19:48 عصر
اگه بدنه SP بزرگ نیست می‌تونید به روش زیر عمل کنید:





Create Procedure SP1
@cmd nvarchar (4000)
AS
exec(@cmd)
GO


EXEC SP1 'CREATE PROCEDURE SP2 AS SELECT * FROM Table1'


EXEC SP2


در ضمن می تونید از ntext هم برای @cmd استفاده کنید

یه سوال :چرا حتما باید با یه SP این کار رو انجام بدین و مثلا با یه Application این کار رو نمی‌کنید؟ (مثلا بدنه SP رو از Text File توی یه ADO Command یا ... بریزیذ و اونو Exec کنید)

j.farazani
دوشنبه 28 خرداد 1386, 20:53 عصر
یه سوال :چرا حتما باید با یه SP این کار رو انجام بدین و مثلا با یه Application این کار رو نمی‌کنید؟ (مثلا بدنه SP رو از Text File توی یه ADO Command یا ... بریزیذ و اونو Exec کنید)
دوست عزیزم دست شما درد نکنه خیلی عالی بود

اما در مورد سوالتون. اول اینکه این کار رو نکردم و بلد نیستم که اگر کدش رو برام بزاری یک دنیا بزرگی کردی . دوم اینکه اگه قرار باشه سیستم شما تحت شبکه کار کنه استفاده از SP ها می تونه کمک بکنه که سرعت برنامه در کامپیوتر میهمان افزایش پیدا بکنه . یه سوال دیگه هم داشتم
شاید خیلی ابتدایی باشه :خجالت: :خجالت:
میشه تفاوت EXEC و EXECUTE رو برای من بگی. این تفاوت برای من جا نمی افته

بازم یک دنیا ممنون

supporter
دوشنبه 28 خرداد 1386, 22:15 عصر
من نمی‌دونم زبان برنامه نویسی شما چیه. کد زیر رو من توی Delphi نوشتم:




procedure TForm1.Button1Click(Sender: TObject);
var
st: string;
infile : textfile;
begin
ADOQuery1.close;
AssignFile(infile, 'D:\Text.txt');
Reset(infile);
while not eof(infile) do
begin
readln(infile,st);
ADOQuery1.SQL.Add(st);
end ;
ADOQuery1.ExecSQL;
end;




در ضمن EXEC فرقی با EXECUTE نداره در واقع Syntax این دستور به شکل زیره:(از Books Online)



Execute a stored procedure:
[ [ EXEC [ UTE ] ]
{
[ @return_status = ]
{ procedure_name [ ;number ] | @procedure_name_var
}
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] ]
[ ,...n ]
[ WITH RECOMPILE ]
Execute a character string:
EXEC [ UTE ] ( { @string_variable | [ N ] 'tsql_string' } [ + ...n ] )

j.farazani
سه شنبه 29 خرداد 1386, 19:01 عصر
دوست عزیزم از محبتت خیلی ممنونم . اما باید بگم که زبان برنامه نویسی من vb6 هست شما با این زبان آشنایی داری . میتونید لطف کنی و کد مربوطه رو در vb6 برای من بنویسی؟:تشویق: :تشویق:

خیلیییییییییییییییییییییی ممنون میشم

supporter
سه شنبه 29 خرداد 1386, 19:18 عصر
با عرض شرمندگی من متاسفانه Vb کار نکردم ولی فکر نمی کنم مشکلی بابت تبدیل کد بالا به Vb داشته باشید تنها کاری که باید انجام بدین تغییر قسمت های مربوط به خوندن از فایله.
بقیه خطهای کد شبیه به کد بالاست.
حتما دوستان دیگه میتونن کمکتون کنن.
بازم ببخشید.

j.farazani
چهارشنبه 30 خرداد 1386, 10:16 صبح
آقا دستت درد نکنه یک دنیا شرمنده کردی خیلی مفید بود

خدا 1 در دنیا 1000000000000000000000000000000در آخرت عوضت بده:لبخندساده: :لبخندساده: