PDA

View Full Version : سوال: کار با سرور در دلفی



me.enik
پنج شنبه 04 خرداد 1391, 11:59 صبح
سلام.
نمیدونم عنوان تاپیک که نوشتم, همون چیزی هستش که نیاز دارم, یا نه.
ولی میدونم چی نیاز دارم!!

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

حالا سوالم اینجاست که برای این کار, باید چه مباحثی رو بلد باشم؟
و اینکه یه خط به من بدید تا برم دنبالش.
فقط خطی که میدید, یه کم واضح باشه.

راستی, با استفاده از زبان دلفی.
ide : rad studio xe2



پیشاپیش از همتون ممنونم.

سعید صابری
پنج شنبه 04 خرداد 1391, 13:27 عصر
برای برنامه مثل سیستم انتخاب واحد دانشگاه باید مبحث "دیتابیس ها" را دنبال کنید

me.enik
پنج شنبه 04 خرداد 1391, 13:30 عصر
برای برنامه مثل سیستم انتخاب واحد دانشگاه باید مبحث "دیتابیس ها" را دنبال کنید

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

الآن این برنامه ای که من میخوام بنویسم, باید پشت چند کامپیوتر همزمان اجرا بشه.
پس یعنی باید تحت شبکه هم باشه؟

اگر میشه, یه کم بیشتر راهنمایی کنید.
ممنون.

سعید صابری
پنج شنبه 04 خرداد 1391, 14:05 عصر
دیتابیس اکسس زیاد به درد این کار نمیخوره .
دیتابیس ها (پایگاه داده)انواع مختلفی دارد مدل مورد نظر شما تحت شبکه ای می باشد دیتابیس های تحت شبکه زیاد هستند از جمله
Oracle,sql server,mysql,... اینها جزئ معروف هاست.
sql server خوبه.ولی به نظر من mysql گزینه مناسبی است از جمله مزایاش رایگان بودن و سرعت قابل توجهش است
sql server حجمی معادل 1 dvd دارد ولی Mysql تنها 120 m.b است و بقیه مشخصات می تونی از گوگل کمک بگیری.

با توجه به نیاز شما همون دیتابیس تحت شبکه کفایت می کنه و نیاز نیست برنامه تحت شبکه را یاد بگیری

me.enik
پنج شنبه 04 خرداد 1391, 14:43 عصر
دیتابیس اکسس زیاد به درد این کار نمیخوره .
دیتابیس ها (پایگاه داده)انواع مختلفی دارد مدل مورد نظر شما تحت شبکه ای می باشد دیتابیس های تحت شبکه زیاد هستند از جمله
Oracle,sql server,mysql,... اینها جزئ معروف هاست.
sql server خوبه.ولی به نظر من mysql گزینه مناسبی است از جمله مزایاش رایگان بودن و سرعت قابل توجهش است
sql server حجمی معادل 1 dvd دارد ولی Mysql تنها 120 m.b است و بقیه مشخصات می تونی از گوگل کمک بگیری.

با توجه به نیاز شما همون دیتابیس تحت شبکه کفایت می کنه و نیاز نیست برنامه تحت شبکه را یاد بگیری

خیلی ممنون.
کمک بزرگی کردید.
حالا یه سوال دیگه.

با دیتابیس تحت شبکه, چه قدر میشه پیش رفت؟
مثلا نهایتا به کجا میشه رسید.
فقط برای این برنامه رو نمیگم.
حالت کلی.

سعید صابری
پنج شنبه 04 خرداد 1391, 17:40 عصر
یعنی چی به کجا خواهی رسید؟
به کجا دوست داری بررسی؟

me.enik
پنج شنبه 04 خرداد 1391, 19:57 عصر
یعنی چی به کجا خواهی رسید؟
به کجا دوست داری بررسی؟

آخه شما گفتید که برای کار شما ( یعنی من ), mysql کافیه.
برای همین فکر کردم که باید mysql یه سری محدودیت هایی داشته باشه.

سعید صابری
پنج شنبه 04 خرداد 1391, 22:58 عصر
همه پایگاه های داده یک سری مزایا و معایب نسبت به دیگر پایگاهها دارند شما باید تحقیق کنید کدومشون واشه مناسب تره
من mysql پیشنهاد دادم فقط!

MostafaMohammadi
پنج شنبه 04 خرداد 1391, 23:30 عصر
برنامه ای که می خواهید بنویسید رو بیشتر توضیح بدید. اینکه می گید:

من میخواهم که مثلا یه برنامه ای بنویسم که وقتی چند تا کامپیوتر با هم به وسیله ی سیم متصل هستند, یک چیز را مشاهده کنند.
مثل سیستم های انتخاب واحد دانشگاه.
تعداد کاربراتون در هر لحظه چند تاست؟ بزرگی پایگاه داده تون چقدره؟ مثلا می خواهید این پایگاه داده اطلاعات انتخاب واحد 3-4 هزار دانشجو رو پوشش بده؟
اگه پایگاه دادتون اونقدر وسیع نیست و نیازی به سرور و ... ندارید، من بر خلاف آقای صابری که میگه:

دیتابیس اکسس زیاد به درد این کار نمیخوره .
پیشنهاد می کنم از Access استفاده کنید. به خاطر سادگی هایی که داره درک مفاهیم پایگاه داده در Access آسون تره و راه اندازی اش هم ساده است.


راستی, با استفاده از زبان دلفی.
ide : rad studio xe2
دلیل خاصی داره که می خواهید از دلفی استفاده کنید؟ مثلا تجربه استفاده از این زبان برنامه نویسی رو دارید و می خواهید دردسر زبان جدید رو نداشته باشید یا مثلا علاقه خاصی به زبان برنامه نویسی دلفی دارید یا ...؟ اگه دلیل خاصی دارید که هیچ وگرنه اگه برنامه نویسی تون قوی نیست، من پیشنهاد می کنم از یکی از زبان برنامه نویسی های دات نت مثل Visual Basic استفاده کنید. اینطوری کار خودتون رو راحت می کنید.
من این پیشنهادات رو با توجه به برداشت های خودم از سطح دانش برنامه نویسی تون گفتم، حمل بر بی احترامی نشه یه وقت. مگرنه خودم هم برنامه نویسی رو با زبان برنامه نویسی ویژوال بسیک و پایگاه داده اکسس شروع کردم.

سعید صابری
پنج شنبه 04 خرداد 1391, 23:39 عصر
دوست عزیز برنامه شون تحت شبکه است اصلا اکسس بدرد نمیخوره یا مجبوری share کنی یا باید برنامت شبکه باشه که کلی دردسر داره

در ضمن Vb چه برتری نسبت به دلفی داره؟

firststep
جمعه 05 خرداد 1391, 00:40 صبح
سلام
جناب اقای صابری درست فرمودند اکسس برای اینکار مناسب نیست
access یک دیتابی اصولا client است و خودی خود قابلیت سرور شدن را نخواهد داشت ** در حقیقت برای سرور کردن ان 3 راه حل عمده موجود است
1 -share کردن اون -- بوسیله share کردن دیتابیس در حقیقت چند برنامه از یک فایل در حال استفاده اند که این مورد دو عیب را به همراه داره الف) در زمانی که برنامه ای در حال تغییرات است شما متوجه تغیرات نخواهید شد - برای این کار نیاز دارید که کل فایل را باز از شبکه دریافت نمایید سپس اون را باز کنید ---ب) در زمانی که حجم فایل زیاد میشه سرعت بسیار بسیار پایین و ترافیک شبکه بسیار بالا ...
2- انتقال بر روی sql server که باز در حقیقت sql server مییشه
3- نوشتن یک برنامه به عنوان سرور که میزبانه client ها باشه واطلاعات رو اون بفرسته -- که بحث کمی ثنگین و قت گیره
---- پس برنامه ای بدرتون می خوره که امکانت شبکه تو خونش باشه و در حقیقت به صورت حرفه ای ساپرت کنه
اقای صابری mysql رو پیشنهاد کردن که واقعاً گزینه خوبی ایست
اما من با توجه به کثرت منابع اموزشی *** چون اینجور که معلومه تازه شروع کردین*** و رایج بودن در سیستم اموزشی sql server رو پیشنهاد می کنم .

firststep
جمعه 05 خرداد 1391, 01:00 صبح
ببینید دوست عزیز سعی می کنم واضح اون کارهای که باید انحام بدید رو بگم

بهتر اوله یک سناریو از کاری که کاربر انجام می ده برای ثبت نام بنویسید --- یعنی دقیقاً کاربر چه کارهایی انجام می ده کجاها کلیک می کنه
سپس باتوجه به مراحل سناریو کارهایی که پست پرده انجام می شه رو ذکر کنی --- با این حرکت دیتابیس شما به صورت بهینه پیدا میشه

حال در مورد سناریو اول
ببینید اول باید مشخص کنید برنامه به جه صورت قصد اجرا شدن داره
1) desktop یعنی یک فایل exe باشه و بعد اون رو اجرا کنه win app
2) به صورت صفحه وب باشه و بوسله مروگرهای وب مثل internet explorer و... اجرا بشه
هرکردام مزیتهایی دارند نصبت به مزیتها می تونید انتخاب کنید
اگه گزینه اول رو انتخاب کنید که کلاً معلومه
بایستی داده ها رو dbms فر بخوانید که اون هم بوسیله ado به راحتی می تونید این کارو انجام بدید *** اموزشش زیاده تو سایت ado در دلفی
برای راه دوم
سرویسهای زیادی موجود است
از intarweb به طور مثتقل می تونید استفاده کنید soap ,html هم می تونید >>> اگه بخواید این راه حل رو در کل اتخاب کنید delphi xe2 رو پیشنهاد نمی کنم دلیلشم اینه که
سرویس های asp توی این زمین بیشتر رواج داره و منابع اموزشیش هم خوبه
می تونید نسخه پریسم دلفی رو انتخاب کنید یا خوده net. رو
ولی اگر راه اول رو انتخاب کردید xe2 گزینه بسیار مناسبی
در کل اول کار زبان ان چنان مهم نیست مهم ایه که کردام راه رو انتخاب کنید...

me.enik
جمعه 05 خرداد 1391, 09:12 صبح
تعداد کاربراتون در هر لحظه چند تاست؟ بزرگی پایگاه داده تون چقدره؟ مثلا می خواهید این پایگاه داده اطلاعات انتخاب واحد 3-4 هزار دانشجو رو پوشش بده؟

شاید نهایتا به 50 نفر برسه.
خیلی پایگاه بزرگی احتیاج نیستش.



دلیل خاصی داره که می خواهید از دلفی استفاده کنید؟ مثلا تجربه استفاده از این زبان برنامه نویسی رو دارید و می خواهید دردسر زبان جدید رو نداشته باشید یا مثلا علاقه خاصی به زبان برنامه نویسی دلفی دارید یا ...؟ اگه دلیل خاصی دارید که هیچ وگرنه اگه برنامه نویسی تون قوی نیست، من پیشنهاد می کنم از یکی از زبان برنامه نویسی های دات نت مثل Visual Basic استفاده کنید. اینطوری کار خودتون رو راحت می کنید.
من این پیشنهادات رو با توجه به برداشت های خودم از سطح دانش برنامه نویسی تون گفتم، حمل بر بی احترامی نشه یه وقت. مگرنه خودم هم برنامه نویسی رو با زبان برنامه نویسی ویژوال بسیک و پایگاه داده اکسس شروع کردم.


در مورد زبان ویژوال بیسیک هم باید بگم که فکر نکنم چندان برتری نسبت به دلفی داشته باشه یا بهتره بگم تقریبا هیچ برتری نداره یا به طور دقیق تر, دلفی خیلی از اون سر تره.
دلیل استفاده از دلفی هم به خاطر قدرتش هستش, هم به خاطر آشنایی قبلی هستش, هم به خاطر خیلی از ویژگی های خوبش نصبت به بقیه زبان ها هستش.

به هر حال ممنون از نظری که دادید.

me.enik
جمعه 05 خرداد 1391, 09:18 صبح
سلام
جناب اقای صابری درست فرمودند اکسس برای اینکار مناسب نیست
access یک دیتابی اصولا client است و خودی خود قابلیت سرور شدن را نخواهد داشت ** در حقیقت برای سرور کردن ان 3 راه حل عمده موجود است
1 -share کردن اون -- بوسیله share کردن دیتابیس در حقیقت چند برنامه از یک فایل در حال استفاده اند که این مورد دو عیب را به همراه داره الف) در زمانی که برنامه ای در حال تغییرات است شما متوجه تغیرات نخواهید شد - برای این کار نیاز دارید که کل فایل را باز از شبکه دریافت نمایید سپس اون را باز کنید ---ب) در زمانی که حجم فایل زیاد میشه سرعت بسیار بسیار پایین و ترافیک شبکه بسیار بالا ...
2- انتقال بر روی sql server که باز در حقیقت sql server مییشه
3- نوشتن یک برنامه به عنوان سرور که میزبانه client ها باشه واطلاعات رو اون بفرسته -- که بحث کمی ثنگین و قت گیره
---- پس برنامه ای بدرتون می خوره که امکانت شبکه تو خونش باشه و در حقیقت به صورت حرفه ای ساپرت کنه
اقای صابری mysql رو پیشنهاد کردن که واقعاً گزینه خوبی ایست
اما من با توجه به کثرت منابع اموزشی *** چون اینجور که معلومه تازه شروع کردین*** و رایج بودن در سیستم اموزشی sql server رو پیشنهاد می کنم .

سلام.
خیلی ممنون از توضیحاتی که دادید.
در مورد منابع آموزشی که گفتید, درسته, حق باشماست.
خیلی کم چیزی میشه پیدا کرد.

اما دو تا سوال.
sql server , حالت ویژوال هستش؟
یعنی مثل اکسس یه رابط کاربری ویژوال داره یا نه مثل mysql هستش؟

و سوال دوم.
یه کتاب یا بهتر بگم, مقاله برای mysql گرفتم.
اسمش هم هستش :: راهنمای سریع پایگاه داده mysql
گردآورندگانش هم آقایان :: حمزه خزایی , محسن علی مومنی , محمد امین صابریان و علی مجدزاده
با توجه به اینکه احتمال داره شما این مقاله رو خوانده باشید, نظرتون راجب این مقاله چیه؟

me.enik
جمعه 05 خرداد 1391, 09:20 صبح
ببینید اول باید مشخص کنید برنامه به جه صورت قصد اجرا شدن داره
1) desktop یعنی یک فایل exe باشه و بعد اون رو اجرا کنه win app
2) به صورت صفحه وب باشه و بوسله مروگرهای وب مثل internet explorer و... اجرا بشه


بازم ممنون از پاسختون.
من از همون اول میخواستم از windows application استفاده کنم.
تفاوتشون خیلی زیاده؟
منظورم از نظر مزایا و معایب ها هستش.

MostafaMohammadi
جمعه 05 خرداد 1391, 11:12 صبح
دوست عزیز برنامه شون تحت شبکه است اصلا اکسس بدرد نمیخوره یا مجبوری share کنی یا باید برنامت شبکه باشه که کلی دردسر داره
آقای صابری،
Share کردن یه فایل بین چند تا کامپیوتر که خودشون اصولا شبکه هستند چقدر کار می بره که شما می گی مجبوری!
اتفاقا share کردن پایگاه داده اکسس به راحتی آب خوردن‌ه، تنها مشکلی که داره همونطور که firststep (http://barnamenevis.org/member.php?77023-firststep) عزیز اشاره کرد اینه که وقتی کاربرها زیاد هستند و یا پایگاه داده خیلی حجیم میشه. سرعت اش پایین میاد که من قبل اش گفتم:


تعداد کاربراتون در هر لحظه چند تاست؟ بزرگی پایگاه داده تون چقدره؟ مثلا می خواهید این پایگاه داده اطلاعات انتخاب واحد 3-4 هزار دانشجو رو پوشش بده؟
اگه پایگاه دادتون اونقدر وسیع نیست و نیازی به سرور ندارید ...
در ضمن Vb چه برتری نسبت به دلفی داره؟
بازی اینکه زبان وی بی از دلفی بهتره یا بالعکس برای من خیلی بچه گانه است. با یک نفر دیگه بازی اش کنید.
همونطور که گفتم:

دلیل خاصی داره که می خواهید از دلفی استفاده کنید؟ مثلا تجربه استفاده از این زبان برنامه نویسی رو دارید و می خواهید دردسر زبان جدید رو نداشته باشید یا مثلا علاقه خاصی به زبان برنامه نویسی دلفی دارید یا ...؟ اگه دلیل خاصی دارید که هیچ وگرنه اگه برنامه نویسی تون قوی نیست، من پیشنهاد می کنم از یکی از زبان برنامه نویسی های دات نت مثل Visual Basic استفاده کنید. اینطوری کار خودتون رو راحت می کنید.
من با توجه به راحتی کار با Visual Basic برای کسایی که تجربه برنامه نویسی چندانی ندارن اون رو پیشنهاد دادم.

me.enik
جمعه 05 خرداد 1391, 11:31 صبح
من با توجه به راحتی کار با Visual Basic برای کسایی که تجربه برنامه نویسی چندانی ندارن اون رو پیشنهاد دادم.
من به درمورد صحبت های بالاتون که گفتید, چندان حرفی نمیزنم, چون اطلاعاتی در اون زمینه ندارم و باعث میشه که بعدا مشکلاتی بوجود بیاد.
در مورد اینکه گفتید راحتی کار ویژوال بیسیک, شاید حق با شما باشه.
ولی منی که الآن 14 سالمه و به راحتی میتونم با دلفی کار کنم, چندان مشکلی با دلفی ندارم.
پس احتمالا دانش جو ها یا بقیه افراد هم نباید در اون رابطه مشکلات زیادی براشون بوجود بیاد.

اما اینی هم که گفتید قدرت زبان ها در مقایسه با هم مثل یه بازی هستش و یه توهین کوچکی هم کردید, میتونستید با لحن بهتری صحبت کنید.

firststep
جمعه 05 خرداد 1391, 11:41 صبح
سلام مجدد

درمورد sql server بله با برنامه SQL Server Management Studio که در زمان نصب sql server خودش به طوره اتوماتیک نصب مشه به راحتی می توانید سرور و دیتابیساتون رو مدیریت نمایید..به صورت ویژال -- بله چون برای mysql به خودی خود محیط مدیریت ویژالی تعریف نشده بود (محیط اصلی اون console)به همین دلیل زیاد جزاب نیست به همین خاطر از برنامه های مدیریتی دیگر شرکت ها که خودشون ویژال هستند استفاده میشه برای mysql
چون به احتمال زیاد با کوری گرفتن ها آشنایی ندارید پس با sqlserver کار کنین که محیط استانداردی هستش بهتره
در مورد winapp هم یاید بگم اره
تفاوت بسیار شدیدی که متمایز می کنه اینه که winapp نیاز به نصب در client داره اما کسی سایت و صفحات وب رو نصب نمی کنه ...(نیاز به نصب و راهندازی در client ندارد)
اما اگر برای یک محدوده جغرافیایی خاصی است winapp گزینه مناسبی می تونه باشه.
موفق باشید

me.enik
جمعه 05 خرداد 1391, 12:00 عصر
سلام مجدد

درمورد sql server بله با برنامه SQL Server Management Studio که در زمان نصب sql server خودش به طوره اتوماتیک نصب مشه به راحتی می توانید سرور و دیتابیساتون رو مدیریت نمایید..به صورت ویژال -- بله چون برای mysql به خودی خود محیط مدیریت ویژالی تعریف نشده بود (محیط اصلی اون console)به همین دلیل زیاد جزاب نیست به همین خاطر از برنامه های مدیریتی دیگر شرکت ها که خودشون ویژال هستند استفاده میشه برای mysql
چون به احتمال زیاد با کوری گرفتن ها آشنایی ندارید پس با sqlserver کار کنین که محیط استانداردی هستش بهتره
در مورد winapp هم یاید بگم اره
تفاوت بسیار شدیدی که متمایز می کنه اینه که winapp نیاز به نصب در client داره اما کسی سایت و صفحات وب رو نصب نمی کنه ...(نیاز به نصب و راهندازی در client ندارد)
اما اگر برای یک محدوده جغرافیایی خاصی است winapp گزینه مناسبی می تونه باشه.
موفق باشید

سلام.
خیلی ممنون.
کمک های خوبی کردید.
تشکر میکنم.

پس کاری که من باید بکنم اینه :
1. sql sever نصب کنم.
2. شروع کنم به یادگیریش.
3. توی نرم افزارم اجراش کنم.

حالا فکر کنید که من تمام اون مراحل بالا رو انجام دادم, بعدش باید چی کار کنم؟
منظورم اینه که یه کامپیوتر رو به عنوان سرور در نظر بگیرم و بعدش دقیقا باید چی کار کنم؟

سعید صابری
جمعه 05 خرداد 1391, 12:46 عصر
آقای صابری،
بازی اینکه زبان وی بی از دلفی بهتره یا بالعکس برای من خیلی بچه گانه است. با یک نفر دیگه بازی اش کنید.
همونطور که گفتم:


از راهنماییتون ممنونم .
همین کارو می کنم.

hp1361
جمعه 05 خرداد 1391, 13:11 عصر
سلام

به نظر من با توجه به سن و سال شما پیشنهاد میکنم مطالعه در زمینه برنامه نویسی در حوزه های مختلف رو بیشتر انجام بدید.شبکه، سینگل، پلتفرم ها، پایگاه داده ها، زبان ها و ....

اگه قصدتون ماندن در حوزه برنامه نویسی است باید با موارد مختلفی که گفتم آشنایی داشته باشید(توجه کنید:آشنایی. ته تبهر)

انتخاب بین برنامه تحت شبکه، برنامه Windows app و یا تحت وب رو خودتون باید بتونید تشخیص بدید.یا انتخاب پایگاه داده هم همینطور و ....

درته که با سوال میتونید این مسیر رو خیلی زودتر ازش عبور کنید اما همه ماها این مسیر رو رفتیم و حتما از این سوال ها و بحث ها توی انجمن هست.با مطالعه گذرا و سریع اون می تونی به نتیجه بهتر برسی.

خلاصه وسعت اطلاعاتت رو گسترش بده

موفق باشیم

Felony
جمعه 05 خرداد 1391, 13:18 عصر
آقای صابری،
Share کردن یه فایل بین چند تا کامپیوتر که خودشون اصولا شبکه هستند چقدر کار می بره که شما می گی مجبوری!
اتفاقا share کردن پایگاه داده اکسس به راحتی آب خوردن‌ه، تنها مشکلی که داره همونطور که firststep عزیز اشاره کرد اینه که وقتی کاربرها زیاد هستند و یا پایگاه داده خیلی حجیم میشه. سرعت اش پایین میاد که من قبل اش گفتم:
Access و اجرا تحت شبکه و 50 تا کاربر ؟! فکر کنم خنده دار ترین لطیفه دنیای برنامه نویسی بشه ... !

ساده ترین و کوچکترین اشکالی که میشه بهش گرفت عدم پشتیبانی از چند کاربر همزمان و Lock ها برای کار چند کاربر به صورت همزمان با بانک هست که در این صورت خیلی راحت مشکلات زیادی برای داده های بانک به وجود میاد ، ممکنه با Access بشه کار دانشجویی تحت شبکه تحویل داد ولی اگر تونستید یک کار تجاری باهاش تهیه کنید و تحویل کارفرما بدید ، 100% از نادانی کافرما بوده !

MostafaMohammadi
جمعه 05 خرداد 1391, 16:42 عصر
Access و اجرا تحت شبکه و 50 تا کاربر ؟! فکر کنم خنده دار ترین لطیفه دنیای برنامه نویسی بشه ... !
آقای تاجیک من اون موقع نمی دونستم، تعداد concurrent users ها 50 تاست. برای همین قبلا اش پرسیدم:

تعداد کاربراتون در هر لحظه چند تاست؟ بزرگی پایگاه داده تون چقدره؟ مثلا می خواهید این پایگاه داده اطلاعات انتخاب واحد 3-4 هزار دانشجو رو پوشش بده؟
اگه پایگاه دادتون اونقدر وسیع نیست و نیازی به سرور و ... ندارید.
من دیدم با توجه به اطلاعات کمی که در مورد پروژه ارائه شده، خیلی راحت گزینه Access داره کنار گذاشته میشه، می خواستم مطمئن بشم که با گزینه Access واقعا به درد این پروژه نمی خوره.

ساده ترین و کوچکترین اشکالی که میشه بهش گرفت عدم پشتیبانی از چند کاربر همزمان و Lock ها برای کار چند کاربر به صورت همزمان با بانک هست که در این صورت خیلی راحت مشکلات زیادی برای داده های بانک به وجود میاد
چرا فکر می کنید Access از قابلیت چند کاربر همزمان پشتیبانی نمی کنه؟ من تجربه کار کردن باهاش رو دارم، JET گرچه تو تعداد بالا بی ثبات میشه ولی به راحتی با شبکه های معمولی 10Mbps از پس 20 تا concurrent users بر میاد. تازه بدون استفاده از Frontend Backend!

ممکنه با Access بشه کار دانشجویی تحت شبکه تحویل داد ولی اگر تونستید یک کار تجاری باهاش تهیه کنید و تحویل کارفرما بدید ، 100% از نادانی کافرما بوده !
شما ابتدا به ساکن اصلا نباید متعصبانه فکر کنید و پیش فرض ذهنی تون این باشه که اصولا استفاده از Access مردود است، حالا اگر هم چنین طرز فکری دارید نباید دیگران رو با پیش فرض های ذهنی تون راهنمایی کنید.
اینجا که پایگاه داده مورد نیاز me.enik (http://barnamenevis.org/member.php?253596-me.enik) با قابلیت های Access مطابقت نداره و این گزینه حذف میشه ولی کسی که میاد اینجا و از شماِ نوعی سوال می پرسه، انتظار داره شما بدون تعصب نسبت به زبان های برنامه نویسی، پایگاه داده، محیط های برنامه نویسی و ... به سوال اش جواب بدین. اگه می پرسه "اکسس به درد من می خوره یا نه؟" شما اول باید نیازهاش رو بررسی کنید بعد جواب بدین. نه اینکه بدون دونستن نیازهاش بگید "برو سراغ فلان پایگاه داده، Access بدرد نمی خوره، Access برای دوران دانشجوییه!"

me.enik
جمعه 05 خرداد 1391, 17:00 عصر
آقای تاجیک من اون موقع نمی دونستم، تعداد concurrent users ها 50 تاست. برای همین قبلا اش پرسیدم:

من دیدم با توجه به اطلاعات کمی که در مورد پروژه ارائه شده، خیلی راحت گزینه Access داره کنار گذاشته میشه، می خواستم مطمئن بشم که با گزینه Access واقعا به درد این پروژه نمی خوره.

چرا فکر می کنید Access از قابلیت چند کاربر همزمان پشتیبانی نمی کنه؟ من تجربه کار کردن باهاش رو دارم، JET گرچه تو تعداد بالا بی ثبات میشه ولی به راحتی با شبکه های معمولی 10Mbps از پس 20 تا concurrent users بر میاد. تازه بدون استفاده از Frontend Backend!

شما ابتدا به ساکن اصلا نباید متعصبانه فکر کنید و پیش فرض ذهنی تون این باشه که اصولا استفاده از Access مردود است، حالا اگر هم چنین طرز فکری دارید نباید دیگران رو با پیش فرض های ذهنی تون راهنمایی کنید.
اینجا که پایگاه داده مورد نیاز me.enik (http://barnamenevis.org/member.php?253596-me.enik) با قابلیت های Access مطابقت نداره و این گزینه حذف میشه ولی کسی که میاد اینجا و از شماِ نوعی سوال می پرسه، انتظار داره شما بدون تعصب نسبت به زبان های برنامه نویسی، پایگاه داده، محیط های برنامه نویسی و ... به سوال اش جواب بدین. اگه می پرسه "اکسس به درد من می خوره یا نه؟" شما اول باید نیازهاش رو بررسی کنید بعد جواب بدین. نه اینکه بدون دونستن نیازهاش بگید "برو سراغ فلان پایگاه داده، Access بدرد نمی خوره، Access برای دوران دانشجوییه!"

خواهش میکنم همین جا این صحبت ها رو بزارید کنار.
بیخیال شوید دیگه!!

از اون اول تقصیر من بودش که اطلاعات کافی ندادم.
من از همه معذرت میخواهم.
ببخشید که باعث این مشکلات شدم.
معذرت.

me.enik
جمعه 05 خرداد 1391, 17:04 عصر
پس کاری که من باید بکنم اینه :
1. sql sever نصب کنم.
2. شروع کنم به یادگیریش.
3. توی نرم افزارم ازش استفاده کنم.

حالا فکر کنید که من تمام اون مراحل بالا رو انجام دادم, بعدش باید چی کار کنم؟
منظورم اینه که یه کامپیوتر رو به عنوان سرور در نظر بگیرم و بعدش دقیقا باید چه اتفاقاتی بی افته؟
برای مثال :
باید روی تک تک کامپیوتر ها برنامه نصب بشه؟
باید دیتابیس توی همه ی اونا باشه؟
و ...


... و من همچنان منتظر جوابم هستم.

Felony
جمعه 05 خرداد 1391, 17:22 عصر
باید روی تک تک کامپیوتر ها برنامه نصب بشه؟
باید دیتابیس توی همه ی اونا باشه؟
میتونید برنامه رو روی هر سیستم به صورت مجزا نصب کنید ، میتوندی پوشه برنامه تو شبکه به اشتراک بزارید ولی کار بهتر این هست که برنامه به صورت مجزا روی سیستم ها نصب بشه .

در موردذ بانک ، نیازی نیست روی همه سیستم ها نصب بشه ، کافیه روی سیستم سرور SQL Server رو نصب کنید و بعد با دادن IP سیستم سرور یا نام اون از روی کلاینت ها بهش متصل بشید ، اگر سرویس SQL Server Browser در حال اجرا باشه نیازی به دادن IP نیست و نام سرور در لیست سرورهای کامپوننتی که ازش برای ارتباط با بانک استفاده میکنید ( مثلا ADO Connection ) میاد و میتونید انتخابش کنید و ...

MostafaMohammadi
جمعه 05 خرداد 1391, 17:42 عصر
من به درمورد صحبت های بالاتون که گفتید, چندان حرفی نمیزنم, چون اطلاعاتی در اون زمینه ندارم و باعث میشه که بعدا مشکلاتی بوجود بیاد.
در مورد اینکه گفتید راحتی کار ویژوال بیسیک, شاید حق با شما باشه.
ولی منی که الآن 14 سالمه و به راحتی میتونم با دلفی کار کنم, چندان مشکلی با دلفی ندارم.
پس احتمالا دانش جو ها یا بقیه افراد هم نباید در اون رابطه مشکلات زیادی براشون بوجود بیاد.
هر کسی با توجه به استعدادهایی که داره برنامه نویسی رو یاد می گیره، برای یکی آشنایی اش با C اتفاق می افته و مشکلی هم براش نیست، برای یکی آشنایی اش با Pascal اتفاق می افته و همچنان در درک مفاهیم مشکل داره. ولی Visual Basic به Easy to Learn بودن معروفه، هدف اصلی هم از این زبان برنامه نویسی همین بوده. من با فرض بر اینکه آشنایی ندارین، سعی کردم ساده ترین راه ها رو بهتون پیشنهاد بدم.
حالا که شما خوشبختانه، تجربه قبلی با دلفی دارین و نیازی نیست از VB استفاده کنید ولی معمولا به کسایی که تازه می خوان با برنامه نویسی آشنا بشن VB پیشنهاد می کنن تا از مشکلات برنامه نویسی زده نشن.
در ابتدای کار، مهم یادگیری مفهوم عملیات ها در عین سادگی اونهاست، نه استفاده کردن از قدرتمند ترین ابزار. اینکه یه مشت کد اتصال به پایگاه داده، از توی اینترنت کپی پیست کنید لای کدهاتون کمکی به سطح دانش شما نمی کنه.

اما اینی هم که گفتید قدرت زبان ها در مقایسه با هم مثل یه بازی هستش و یه توهین کوچکی هم کردید, میتونستید با لحن بهتری صحبت کنید.
نه دوست عزیز،
من اصلا حال و حوصله اینجور بحث‌ها رو ندارم و به تجربه هم میگم که غیر از واکنش قهرآمیز راه دیگه ای برای فرار از اینجور بحث ها نیست.
اصلا بیاییم و هی تو سر و کله همدیگه بکوبیم، من بگم این بهتره اون بگه این بهتره، که چی؟
این جور بحث ها تحت تاثیر تعصب‌ و گمراه کننده است تا کمک کننده.
هیچ شرکت نرم افزاری تو دنیا نمیاد موقع اجرای پروژه بگه مثلا زبان برنامه نویسی JAVA بهترین زبانه و همینجوری کیلویی شروع کنه همه پروژه ها رو با اون پیاده سازی کنن. همه جا بدون تعصب می شینن نیازها و محدودیت هاشون رو با قابلیت های زبان های برنامه نویسی و پایگاه های داده مختلف مقایسه می کنن تا ببینن کدوم شون انتخاب بهتری برای اون پروژه بخصوص است.
این ابتدایی ترین مدل مهندسی کردن نرم‌افزاره! شما اگه می خوای درست و حسابی پروژه تون رو جلو ببرید و اجرا کنید باید از بند یک زبان برنامه نویسی خاص، یک پایگاه داده خاص، یک محیط برنامه نویسی خاص و ... رها کنید. اینکه روی یک زبان بخوابی، درست نیست. این فکر که زبان دلفی از وی بی بهتره یا بالعکس غلطه. برتری با توجه به نیازها و محدودیت های پروژه معنی پیدا می کنه.

MostafaMohammadi
جمعه 05 خرداد 1391, 17:57 عصر
سلام.
خیلی ممنون.
کمک های خوبی کردید.
تشکر میکنم.

پس کاری که من باید بکنم اینه :
1. sql sever نصب کنم.
2. شروع کنم به یادگیریش.
3. توی نرم افزارم اجراش کنم.

حالا فکر کنید که من تمام اون مراحل بالا رو انجام دادم, بعدش باید چی کار کنم؟
منظورم اینه که یه کامپیوتر رو به عنوان سرور در نظر بگیرم و بعدش دقیقا باید چی کار کنم؟
به نظر من کاری که باید بکنید اینه:


مطالعه کنید که پایگاه داده چیه، در حد یک مقاله 10-20 صفحه ای هم بخونید کافیه.
SQL Server یا My SQL رو فرا بگیرید،( من آموزش های تعاملی رو پیشنهاد می کنم، چون کارکردن با پایگاه داده ها به شیرینی برنامه نویسی نیست و کتاب واقعا حوصله آدم رو سر می بره.)
یک پروژه ساده که درش از پایگاه داده استفاده شده رو گیر بیارید و بررسی کنید رابطه بین پایگاه داده و برنامه سمت کاربر چیه. (اینکه چه اطلاعاتی از کاربر گرفته میشه و با توجه به رابطه بین جداول چطور تشخیص داده میشه هر داده ای به چه جدولی ریخته بشه و یا اینکه چطور از پایگاه داده اطلاعات رو می خونیم)
شروع کنید به انجام پروژه تون.

شما از الان می پرسید بعد از راه اندازی سرور باید چیکار کنم، سوال درستی نیست، شما برای استفاده از سرور باید نحوه درخواست کردن و فرستادن اطلاعات به سرور رو بدونید و حداقل فرم های پروژه تون رو طراحی کرده باشید که بخواهید برنامه رو متصل کنید به سرور، تا تست های اولیه رو بکنید.
به نظر من که این سوال خیلی زوده برای پرسیده شدن.

MostafaMohammadi
جمعه 05 خرداد 1391, 18:25 عصر
منظورم اینه که یه کامپیوتر رو به عنوان سرور در نظر بگیرم و بعدش دقیقا باید چی کار کنم؟نرم افزاری که شما برای کاربر طراحی می کنید، یک حالت واسطه دارد. شما از طریق اون اطلاعات رو مرتب و منظم از کاربر می گیرید و یا جداول پایگاه داده رو به صورت فرم های شکیل برای کاربر به نمایش در میارید. وقتی نرم افزار رو نوشتید و جداول رو طراحی کردید، باید ارتباط بین نرم افزارتون و پایگاه داده تون رو برقرار کنید. اینکار با ADOConnection به راحتی انجام میشه. ولی شما در حال حاضر باید روی این تمرکز کنید که چطور جداول رو طراحی کنید و فرم هاتون چه شکلی باشه، چطور در اطلاعات پایگاه داده تغییر بدید و این مستلزم فراگیری پایگاه داده است.

me.enik
جمعه 05 خرداد 1391, 18:46 عصر
نرم افزاری که شما برای کاربر طراحی می کنید، یک حالت واسطه دارد. شما از طریق اون اطلاعات رو مرتب و منظم از کاربر می گیرید و یا جداول پایگاه داده رو به صورت فرم های شکیل برای کاربر به نمایش در میارید. وقتی نرم افزار رو نوشتید و جداول رو طراحی کردید، باید ارتباط بین نرم افزارتون و پایگاه داده تون رو برقرار کنید. اینکار با ADOConnection به راحتی انجام میشه. ولی شما در حال حاضر باید روی این تمرکز کنید که چطور جداول رو طراحی کنید و فرم هاتون چه شکلی باشه، چطور در اطلاعات پایگاه داده تغییر بدید و این مستلزم فراگیری پایگاه داده است.

باشه, خیلی ممنون.

ولی من قبلا با اکسس کار کردم و تجربه ی کار با اون رو دارم.

me.enik
جمعه 05 خرداد 1391, 18:50 عصر
الآن تنها فرقی که برنامه ام با برنامه ی عادی داره, این هستش که به جای اکسس, از اس کیو ال سرور داره استفاده می کنه؟
یعنی هیچ تغییر دیگه ای توش ایجاد نمیشه یا نباید ایجاد بشه؟

Felony
جمعه 05 خرداد 1391, 20:16 عصر
برای 50 تا کاربر حتما مشکلاتی از قبیل همزمانی داده ها پیش میاد که با استفاده از Lock ها باید مدیریتشون کنی ؛ بهتره کار با Transaction ها و SP ها رو یاد بگیری ...

نگفتی پروژت پروژه تجاری هست یا دانشجویی یا ... ، اگر تجاری هست حتما باید موارد بالا درش رعایت بشه و گرنه بعدا بدجوری گریبان گیرت میشه ، SQL Server خیلی خیلی گسترده هست ، برای تسلط روش باید چند سال وقت گذاشت .

me.enik
جمعه 05 خرداد 1391, 20:20 عصر
برای 50 تا کاربر حتما مشکلاتی از قبیل همزمانی داده ها پیش میاد که با استفاده از Lock ها باید مدیریتشون کنی ؛ بهتره کار با Transaction ها و SP ها رو یاد بگیری ...

نگفتی پروژت پروژه تجاری هست یا دانشجویی یا ... ، اگر تجاری هست حتما باید موارد بالا درش رعایت بشه و گرنه بعدا بدجوری گریبان گیرت میشه ، SQL Server خیلی خیلی گسترده هست ، برای تسلط روش باید چند سال وقت گذاشت .

تجاری هستش.
میشه یه کم درباره اون دو تا چیزی که گفتید یاد بگیرم, بیشتر توضیح بدید.
ممنون میشوم.

MostafaMohammadi
جمعه 05 خرداد 1391, 20:50 عصر
من قبلا با اکسس کار کردم و تجربه ی کار با اون رو دارم.
الآن تنها فرقی که برنامه ام با برنامه ی عادی داره, این هستش که به جای اکسس, از اس کیو ال سرور داره استفاده می کنه؟
یعنی هیچ تغییر دیگه ای توش ایجاد نمیشه یا نباید ایجاد بشه؟
تغییر که لازمه، ولی اگه قبلا همه اینکارها رو با اکسس انجام دادید، کارتون الان راحته. جدول ها رو با کمی تغییر در نوع داده ای شون در SQL پیاده سازی می کنید و توی سورس برنامه تون دستورهای اکسس تون رو به معادل اون ها در SQL تغییر می دین که کمی زمانگیره ولی اگه کدهاتون رو خودتون نوشته باشین و خوانا باشه راحته.

me.enik
جمعه 05 خرداد 1391, 22:11 عصر
یه سوال در مورد sql server.
مثل اکسس هستش که یه سری جدول داره و ما باید بهش مقدار بدیم یا کلا فرق داره و باید با کد نویسی پیش بریم؟

الآن نصبش کردم, گیج گیج شدم. :گیج:
اصلا نمیدونم چی به چیه.
برای اینکه یه پایگاه داده یا همون یه دیتابیس توی اس کیو ال راه بندازیم, باید چی کار کنیم؟
منظورم اینه که آدرس بدید!!

مثال :


file / new / procejt / ...

لطفا دقیق بگید, چون فعلا هیچی از اس کیو ال نمیدونم.

Felony
جمعه 05 خرداد 1391, 22:23 عصر
دوست عزیز ، اینجا انجمن تخصصی برنامه نویسی هست ؛ این سوالات دیگه جواب دادن نداره ، 2 تا PDF از اینترنت در مورد SQL Server دانلود کن یا یک کتاب در مورد اون بگیر و بخون ، دیگه نحوه ساخت بانک تو SQL Server رو نباید اینجا بپرسی !

MostafaMohammadi
شنبه 06 خرداد 1391, 00:34 صبح
یه سوال در مورد sql server.
مثل اکسس هستش که یه سری جدول داره و ما باید بهش مقدار بدیم یا کلا فرق داره و باید با کد نویسی پیش بریم؟
می توانید مثل Design View اکسس جداول رو دستی ایجاد کنید و نوع داده ای فیلدها و ... رو مشخص کنید ولی معمولا با کد اینکارها رو می کنند، چون اولا کار وقت گیری است و دوما در هنگام توسعه هر موقع خواستند تغییری در ساختار جدول بدهند، می روند کد را دستکاری می کنند.


الآن نصبش کردم, گیج گیج شدم. :گیج:
اصلا نمیدونم چی به چیه.
برای اینکه یه پایگاه داده یا همون یه دیتابیس توی اس کیو ال راه بندازیم, باید چی کار کنیم؟
منظورم اینه که آدرس بدید!!

مثال :


file / new / procejt / ...

لطفا دقیق بگید, چون فعلا هیچی از اس کیو ال نمیدونم.



اینکه ما بیاییم و از الفبا اش شروع کنیم و به شما بگیم زمان خیلی زیادی از ما می گیره، بعلاوه آموزش دیدن اش به همین سادگی نیست. شما بهتره برید و اول آموزش ببینید، بعد سوالاتی که حین مطالعه براتون پیش میاد رو توی انجمن مطرح کنید. البته انجمن مسائل مرتبط با نصب و راه اندازی SQL Server (http://barnamenevis.org/forumdisplay.php?181-%D9%85%D8%B3%D8%A7%D8%A6%D9%84-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D8%A7-%D9%86%D8%B5%D8%A8-%D9%88-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C) نه این انجمن. وقتی به SQL Server یه تسلط نسبی پیدا کردی و احساس کردی زمان اون رسیده که پایگاه داده رو در کنار برنامه ات اجرا کنی و ... برگرد اینجا و مشکلات ات رو تو انجمن بانک های اطلاعاتی در Delphi (http://barnamenevis.org/forumdisplay.php?78-%D8%A8%D8%A7%D9%86%DA%A9-%D9%87%D8%A7%DB%8C-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C-%D8%AF%D8%B1-Delphi) مطرح کن.

tiphooo
شنبه 06 خرداد 1391, 00:39 صبح
در مورد مقایسه زبانهای برنامه نویسی که در این تاپیک مطرح شد اینکه دوستمون MostafaMohammadi گفتند که باید از این بحثها فرار کرد بنده قبول ندارم
و نمی خوام راجع به هیچ زبان برنامه نویسی هم در اینجا توضیحی بدم
ولی برای کسانی که تازه برنامه نویسی رو شروع کردن لازمه که این بحثها نه به صورت تعصبی بلکه با دلایل منطقی وجود داشته باشه بنده 10 سال پیش برای انتخاب دیتابیس بین SQLServer , Oracle از همین بحثها استفاده کرده و Oracle را با توجه به قدرت زیادش اصلا مناسب برای کار در ایران ندیدم
و یک مطلب دیگر برای دوستانی که قصد انتخاب زیان برنامه نویسی دارند به نظر من با رفتن به تالارهای مختلف برنامه نویسی و دیدن سطح سوالات کاربران به راحتی می شود فهمید که کدام زبان فهمش ساده است و کدام زبان قدرتش زیاد است
ما در همین سایت تالارهایی را می بینیم که روزانه 10 تاپیک ایجاد می شود که سوالاتشان در حد ایجاد پروژه جدید و نحوه ذخیره سازی آن است در حالی که در برخی تالارها سوالاتی مطرح شده و پاسخ داده شده که شاید در سایتهای منبع اصلی آن کامپایلر و یا سایتهای مشابه خارجی نظیر آن را نتوانید پیدا کنید
برای دوست خوبمون me.enik هم پیشنهاد می کنم همان SQLServer را انتخاب کنند چون کارکرد آن با Access تفاوت چندانی ندارد و بخش اعظم مدیریت کاربران در شبکه با خودش است و نیاز به کار دیگری توسط ما نیست و در مورد MySQL هم خودم یک سوال داشتم هرچند اینجا جایش نیست ولی نخواستم یک تاپیک دیگر ایجاد کنیم و اینکه سرعت MySQL که یکی از دوستان گفته بودند خوب است نسبت به SQLServer در چه مقیاس دیتایی خوب است بنده با 2 میلیون رکورد تفاوتی احساس نکردم آیا در پردازشهای بالاتر بهتر است مانند اوراکل یا در پردازشهای پایینتر مانند اکسس؟

سعید صابری
شنبه 06 خرداد 1391, 15:20 عصر
و در مورد MySQL هم خودم یک سوال داشتم هرچند اینجا جایش نیست ولی نخواستم یک تاپیک دیگر ایجاد کنیم و اینکه سرعت MySQL که یکی از دوستان گفته بودند خوب است نسبت به SQLServer در چه مقیاس دیتایی خوب است بنده با 2 میلیون رکورد تفاوتی احساس نکردم آیا در پردازشهای بالاتر بهتر است مانند اوراکل یا در پردازشهای پایینتر مانند اکسس؟

به نظر من اصلا اکسس قابل مقایسه با mysql نیست . و همچنین در ان حد نیست که با Oracle مقایسه باشه.
ولی بنده تست کرده با sql server 2005 (یک برنامه که فقط درج رکورد انجام میداد) حدود 40-50 میلیون که رسید واقعا تفاوت سرعت قابل ملاحظه بود.

me.enik
شنبه 06 خرداد 1391, 21:01 عصر
از اونجایی که این تاپیک کلا برای فهمیدن یک موضوعی بودش و چیزایی هم که از اون دستگیرم شد, از همتمون ممنونم و میخوام حالا یه لینک بزارم که این تاپیک به سر انجام برسه.

اینم اون لینک : لینک (http://barnamenevis.org/showthread.php?343191-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%B7%D8%AD-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-sql-server-2008&p=1513565#post1513565)

me.enik
چهارشنبه 17 خرداد 1391, 15:10 عصر
دوباره سلام به همه.
اون برنامه ای که قرار بود بنویسم, تقریبا تموم شده.
حالا یه مشکل دیگه هستش.
که اون رو توی این تاپیک مطرح کردم.
گفتم اینجا هم پست بزارم که شما ها رو هم با خبر کنم.
تاپیک (http://barnamenevis.org/showthread.php?344883-%D9%86%D8%AD%D9%88%D9%87-%D8%AA%D8%B3%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%86%D9%88%D8%B4%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-sql-server&p=1520837#post1520837)
ممنون.