خوب چرا شما این کار رو انجام نمیدی؟ سورس رو برای همین منتشر کردم.نقل قول:
بعد String برای تولید کد :-o این کار یکم بچه گانه بود و از ادم بزرگی مثل شما بعیده ;) بهتره از معادلهایی که در دات نت هست استفاده کنید
Printable View
خوب چرا شما این کار رو انجام نمیدی؟ سورس رو برای همین منتشر کردم.نقل قول:
بعد String برای تولید کد :-o این کار یکم بچه گانه بود و از ادم بزرگی مثل شما بعیده ;) بهتره از معادلهایی که در دات نت هست استفاده کنید
با سلام
در صورت امکان نمونه برنامه ای جهت استفاده از کلاسهای DAL تولید شده توسط این Generator را بگذارید .
با تشکر .
سلام مي خوام بدونم كه ما از اين Stored Procedure چه استفاده هايي مي كنيم و اينكه قبلا چگونه استفاده مي شد. با تشكر
این SP ها برای انجام 5 عمل اصلی (Insert, Update, Delete, SelectAll, SelectRow) روی رکوردهای جداول دیتابیس ساخته و استفاده میشن.
قبل از تولد SP_Gen مجبور بودیم این SP ها و کلاس لایه Data شون رو دستی بسازیم، اما الان این برنامه این چیزها رو خودکار میسازه و در وقت صرفه جویی میشه.
مرسی واقعا که عالی بود
با اجازه از جناب آقای کرامتی .
یک باگ (البته به نظر من باگه ):
زمانی که یکی از دیتابیس ها Offline باشه در متد RunQuery با خطا مواجه میشه .
فقط کافی که این خطا را هندل کنید ......... سورس را که همه دارید دیگه خودتون اصلاح کنید.
سلام اول در مورد ایراد های که بقیه گرفتن
generator به درد برنامه نویس های میخوره که به ساختن dal و sp و غیره کاملا مسلط هستند و این کار در پروژه بزرگ فقط برای این استفاده میشه که وقت کمتری تلف بشه به نظر من برنامه نویس های تازه کار به نوشتن دستی ادامه بدن ::P
برنامه نویس های حرفه ای هم که قاعدتا از این اشتباهات نمیکنن که باعث error بشه
راستی یه چیزیم من خودم درست کردم گفتم بگم شما هم استفاده کنین
در قسمت select all و select Row
من هر دو تارو تو یکی generate کردم اینجوری
CREATE PROCEDURE XXX
@ID int
AS
SELECT * FROM TABLEXXX WHERE ID=@ID OR @ID=null
اینجوری وقتی پارامتر null ارسال بشه مثل Select all عمل میکنه
در کل بابت برنامه ممنون :قلب:
دستتون درد نکنه DelphiAssistant
چقدر شما با حوصله هستید http://qsmile.com/qsimages/156.gif
من از ولین پست خوندم تا اینجا و تمامه ورژن هاشو dl کردم :لبخند:
من از sql server 2005 استفاده کردم و تو هیچ کدوم از ورژن هاش ، نام سرور رو وارد نکردم و خالی گزاشتم ، و مشکلی ایجاد نشد ، چه نیازی هست localhost بنویسم ؟!!!
salam kheili barname khob va karbordii gozashtid malome ke vasash zahmate ziadiamkeshidid.
man alan chand sali ke iran nistam va dar hale hazer mashghole edame tahsil hastam. yechize jaleb vasam pish omad inja ke omadam. dar donyaye pishrafte kasani manande shome ke injor barname haro be forosh nemiresonan ziad shodan makhsosan ke emroze kheilia migan in kar mitone be pishrafte elme barname nevisi komak kone.
hala man az shoma ke ozvi az in afrad hastid ye khahesh daram
dar iran kasi ba open sourcce kari nadare va hata hazer nistim codhamono be digaron bedim darsorati ke dar donyaye pishrafte injori nist.
mikhastam yek pishnahad bedam, chera shoma ham mesle yeki az in chand hezar nafari ke hamchin barnamehaio opensource mikonan ta betonan ham pishrafte barnamashono bebinam ham inke be donyaye barname nevisi komak konan inkaro nemikonid shoma ke zaheran ghaste dalali ba in barname khobo nadarid pas chera barname va codesho dar sithai mesle : http://sourceforge.net/index.php ke mahale tajamoe bozorgane barname nevisie donyast nemigozarid ta shoma ham be jame barname nevisane azade donya bepeivandid.
in vase man soale ke chera ma to iran inkaro nemikonim.
سلام samansad ، سورسشو که در اختیار عموم گزاشتن .
من تازه شروع کردم به برنامه نویسی وزیاد بلد نیستم
یه سوالی داشتم
public DataSet SelectRow(string id)
{
DbObject dbo = new DbObject();
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("id",id)
};
return dbo.RunProcedure("sp_userInfo_SelectRow", parameters, "userInfo");
}
تو این تابع DbObject رو از کجا بیارم ؟http://qsmile.com/qsimages/162.gif
سلام
مرسی، نرم افزار عالییه :تشویق:، اما نمیدونم چرا من نمی تونم رو PCایم نصبش کنم:متفکر:
جالبه اما خیلی جای کار داره ، موفق باشید
سلام
برنامه فوق العاده ايه
ولي يه سري مشكلات داره كه اگه رفع بشه بهتره.
اول اينكه امكان Attach كردن نداره.
فقط يك SelectAll داره و همونم زياد كاربرد نداره، در صورتي كه بايد به ازاي هر كليد خارجي، يك SelectAllByFK داشته باشه.
در كلاس ها، فيلد هاي Null چك نميشن كه اگه مقدار خالي بهش پاس داده شد، Exception لازم رو توليد كنه.
در Sp ها، هميشه فيلد اول جهت كليد اصلي در نظر گرفته ميشه، در صورتي كه بعضي ها عادت دارن، اول كليد خارجيشونو بزارن، بعد كليد اصلي.
يه سوال هم داشتم.
شما نمي دونيد خاصيت Description فيلد هارو از كدوم View سيستمي SQL Server ميشه پيدا كرد؟
با سلاو و خسته نباشيد خدمت آقاي كرامتي و همه دوستان كه كمك كردن تا اين برنامه تكميل بشه.
فقط خواستم تشكري كرده باشم و بگم كه از اينكه تو اين سايت با اين مديران دلسوز و زحمتكش عضو هستم به خودم ميبالم.
خیلی جالب بود ممنونم.
از شما برای کمک به آموزش از طریق اینترنت کمال تشکر را دارم و امیدوارم در تمام مراحل زندگی موفق باشید.
واقعا عالي بود
ممنون!!!
يه پيشنهاد دارم!
اگه بشه توي Option نام پيش فرض براي هر SP انتخاب كنيم خوبتر ميشه!!!
مثل من ميخوام به جاي DeleteRow از Delete استفاده كنم!
يا همينطور به جاي InsertRow از Insert
يعني 5 تا sp اي كه ميسازه رو با نام هاي دلخواه ما بزنه
با تشكر!:چشمک:
بابت این برنامه دست شما درد نکنه ولی خوب می شد اگه پروسیجر تولید شده دارای Transaction می بود. مثل این:
USE Accounting;
GO
--Defintion of procedure
CREATE PROCEDURE [AddPersonnel]
(
@FirstName [nvarchar](50),
@LastName [nvarchar](50),
@Phone [nvarchar](50),
@Mobile [nvarchar](50),
@Address [nvarchar](50)
)
AS
--Starting transaction
BEGIN TRANSACTION
--Insert command
INSERT INTO Customers VALUES (@FirstName,@LastName,@Phone,@Mobile,@Address)
--Checks for any error
IF @@ERROR <> 0
BEGIN
--Roll back any change made by command.
ROLLBACK
--Display message
RAISERROR ('Error Adding Customer Record', 16, 1)
--Exit form procedure
RETURN
END
--Save all changes on database and exit
COMMIT
RETURN
در صورتی احتیاج میشه که چند تراکنش داشته باشیم.
وقتی یک تراکنش موجود باشه، اگه به مشکلی بخوره، چیزی ثبت نمیشه، وگرنه ثبت میشه.
در ضمن من یه گله هم دارم و اون اینه که چرا نرم افزاری که داره یک سری کد شی گرا تولید میکنه، خودش شی گرا نوشته نشده ... البته اگه فرم ها رو کلاس در نظر نگیریم.
با درود
ببخشید من با استفاده از این نرم افزار مشکل دارم. یعنی این نرم افزار تنها بانک هایی رو میخونه که در روی sql server که بر روی سیستم نصب شده کار میکنه؟
منظورم اینه که اگه sql server رو نصب نداشته باشیم و از sql server 2005 ویژوال استدیو استفاده کنیم نمیتونیم از این نرم افزار استفاده کنیم؟
ببخشید اما:ناراحت:نقل قول:
اگر بخواین از SqlExpress استفاده کنین، باید DB رو در بخش Connect to sql server اتچ کنین، نه از بخش Connect to sql server (Database File)
من متوجه نشدم. در برنامه ی نوشته شده توسط آقای کرامتی که همچین چیزی نیست.
آم.
میشه بیشتر راهنمایی کنید.
ببخشید.
بنده از این نرم افزار استفاده نمیکنم، ولی تا اونجایی که دیدمش، قابلیت Attach دیتابیس رو نداشت.
پس اگر بخواین از SqlExpress که همراه با dotNet نصب میشه، استفاده کنین، باید از Server Explorer که از منوی View قابل مشاهده هست، یک کانکشن جدید بزنین و نوع کانکشن رو SqlServer بزارین (بالای اون گزینه که Database file داره) و نام سرور رو sqlexpress\. بزارین و فایل دیتابیس رو Attach کنین.
بعد از این کار، میتونین از نرم افزار استفاده کنین.
اخرین ورژن پروژه اونجایی که dal تولید میشه
روی DbObject خطا میگیره
چجوری باید رفع کنم؟
من هرچی دنبال dll تو فولدر پروژه گشتم چیزی رو پیدا نکردم
سلام
می خوام store procedure درست کنم که ورودیش متن فارسیه.برای مثلا اضافه کردن متن فارسی باید N رو قبل متن بگزارم
چه جوری در store Procedure این کارو بکنم
با سلام خدمت آقای کرامتی عزیز
من این تاپیک رو به طور کامل مطالعه کردم و دیدم کم لطفیه که بیش از هزاران بار از شما تشکر نکنم بخدا کمتر کسی پیدا می شه که مثل شما خودش آستین بالا بزنه و نیاز خود رو برطرف کنه ما ایرانیا متاسفانه نشستیم و چشمون فقط به دست غربیاست که یه مشت آدم خنگ بیشتر نیستند ( بی ادبی بنده را ببخشید). ما فقط دنبال کارهای اونا هستیم که نیازهامون رو برطرف کنه
به هر حال من از شما تشکر می کنم و امیدوارم که تو کارات موفق باشی
با سلام
من تازه وارد هستم
ببخشيد اگه سوالم تكراري هستش
*لطفا آخرين ويرايش برنامه ؛ لينكش را بگزاريد ()
* و يك راهنماي ساده براي كار كردنش بگذاريد كه چطوري ميشه از آن استفاده كرد
با تشكر
جناب DelphiAssistant ، جسارتا یه پیشنهاد داشتم که می تونه به زیبا تر شدن برنامتون کمک کنه ،
می تونید خودتون تو برنامتون query ایجاد کردن stored procedure ای که ایجادش کردینو
توی دیتابیسی که کاربر انتخابش کرده اجرا کنید ، تا اینکه کاربر بخواد اونو Copy/Paste کنه توی دیتابیسش و بعد بسازتش.:چشمک:
بالای قسمتی که Script ها رو نمایش میده یک دکمه هست بنام Run Scripts Against Server که همین کار رو میکنه.
سلام
خسته نباشيد بابت زحمتي که کشيدين
يه سول داشتم
ميشه برنامه خودتون رو با برنامه sql assistant مقايسه کرده و بگين چه مزايايي نصبت به اون داره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر
این دو برنامه قابل مقایسه نیستند.
SQL Assistant یک برنامه است که هنگام نوشتن دستورات SQL با افزودن قابلیت Intellisense برای ساختارهای موجود در دیتابیس انتخاب شده، نوشتن دستورات SQL رو تسهیل میکنه.
SPGen یک برنامه برای تولید SP های پایه برای مدیریت داده ها در دیتابیس، و تولید لایه دسترسی به داده های برای اونهاست.
یه مشکل که من خیلی وقته بهش بر خوردم ولی وقت نکرد مطرح کنم اینه که اگه تو SQL از Schema بشه اینجا اسم جدول بدون Schema میاد و نمیشه از SPها استفاده کرد.
سلام
ممنون از این تولید این پروژه که در اختیار عموم قرار دادین .
جسارتا نوع داده ای varbinary(max) رو توی پروسجر ها varbinary میزنه
این لینک متاسفانه باز نمیشه؟
اگه امکان داره یه جادیگه آپلود کنین ممنون میشم
http://www.codeplex.com/spgen
من برنامه شما را نديدم ولي اين طور كه به نظر مياد برنامه شما در سطج ديتابيس و كد برنامه يك سري اسكريپت توليد مي كند.
ابزار ssms tools كه اگر استفاده كرده باشيد توي sql server نصب ميشه و يكي از امكاناتش همين توليد sp هاي insert و update و delete هست.
البته eazy code هم برنامه كوچكي هست كه اخيرا كركش ايجاد شده و به نظرم مثل برنامه شما كار ميكنه و فرم و كد و sp ها را ايچاد مي كند.
پيروز باشيد
از آقای DelphiAssistant عزیز یه سوال داشتم.
من برای کارکردن با جدولهام خودم کلاس مینویسم.شبیه همون کدی که برنامه شما تولید میکنه.
در خیلی از کلاسهام وقتی عملیات درج رو انجام میدم کلید خط جدیدی که درج شده رو برمیگردونم.
برنامه شما هم این کار رو انجام میده اما تصورش بر این هست که همه کلیدها از نوع int هستند در حالی که نوع کلید در یکی از جدولهای من BIGINT است و متاسفانه تشخیص نداد
ممنون میشم اگه بررسی نمایید.
با تشکر فراوان.:تشویق::تشویق::تشویق:
با سلام /
ممنون از زحمتی که کشیدید. کد بسیار پر کاربرد و عالی ای هست. /
میخواستم ببینم امکان افزودن 2 مورد به برنامتون هست یا خیر ؟
اول اینکه کدهای تولید شده در سمت ویژوال استادیو، یعنی کلاسی که تولید میکنید از لایه ی Data Access مربوط به Enterprise Library استفاده کند. (DAAB) /
و دیگر اینکه در اسکریپت تولید شده در سمت سی کو ال، از Transaction جهت کنترل تراکنشها استفاده کنید. /
با تشکر
با سلام
جناب آقای کرامتی عزیز
امکان داره کد دلفی این دکمه رو بزارید چون نیاز به این کار دارم که بتونم توی دلفی متن یه پروسیجر رو که مثلا توی یه Memo نوشته شده اجرا کنم.البته کوئری های کوچک رو با استفاده از AdoCommand انجام میدم اما برای متن طولانی و بخشهایی که کوتیشن یا پرانتز داره ایراد میگیره
با تشکر