-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
دوست عزیز حتما یک بار برنامه Server رو اجرا کن ! باید یک بار اجرا بشه !
شما برنامه scktsrvr.exe رو اجرا کردی !؟ اگه نه که در خط فرمان Run این رو بنویس scktsrvr.exe و اجرا کن ...
و بعد باید آدرس سرور رو درس وارد کنی ! ( من Soft1 گذاشتم) شما باید اسم Computer خودتو بزاری !؟
یا اگه در شبکه هستی و سرور در یک سیستم دیگه هست می تونی به جای Host از Address استفاده کنی و IP رو بزاری !
اگه همه اینها رو تست کردی نشد .. یک بار خودت مراحل رو از اول برو ببین برنامه خودت اجرا میشه !
از دوستان کسی اجرا کرده !
اونهایی که DownLoad کرده اند ، کسی اجرا کرده ؟ اگه مشکلی داشت بقیه دوستان هم بگن ....
تا به بخش ارتباط با DataBase وارد نشدیم کسی تا این بخش مشکل نداشته باشه ...
ممنون
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوستان عزیز با جواب هاشون اساتید رو دل گرم فرمایند .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
بابا مسئله هنوز شروع نشده کلی وسعت گرفته فکر نمی کنم با این روند برای مبتدی ها سودی داشته باشه
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوستان خوبم سلام
حدود دو سال است كه سري به سايت برنامه نويس نزده بودم :اشتباه:
اما حدود دو سال پيش مقاله اي تحت عنوان آموزش لایه میانی ( +COM ) در سبک MultiTier در اين سايت قرار دادم كه مي توانيد از لينك زير اطلاعات خوبي در اين خصوص مشاهده نماييد
https://barnamenevis.org/showthread.php?t=59232
شايد تا دو سال ديگر خداحافظ :قلب::قلب:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
نوشته شده توسط
manvaputra
بابا مسئله هنوز شروع نشده کلی وسعت گرفته فکر نمی کنم با این روند برای مبتدی ها سودی داشته باشه
برنامه نویسی در این سطح کاربران مبتدی نداره یعنی افرادی که این تاپیک رو مطالعه می فرمایند با برنامه نویسی آشنا هستند ومی خواهند اطلاعات خود را فزایش دهند .
تاپیک روند خوبی داره . از دوستان تشکر می کنم
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
نقل قول:
بابا مسئله هنوز شروع نشده کلی وسعت گرفته فکر نمی کنم با این روند برای مبتدی ها سودی داشته باشه
اگه شما قدو به قدم با ما پیش برین فکر میکنم خیلی سخت نباشه !
تو این مبحث اصطلاحات جدید زیاده ! شما یا سایره دوستان اگه هر جا مطلبی رو متوجه نشدید بگین تا توضیح بدم !:چشمک:
من هم به همین علت دارم قدم به قدم جلو می رم ... و یههووو کلی مطلب نمی گم ... چون هدف آموزشه نمی خوام مقاله ای وار جلو برم و خیلی دوست دارم با دوستان به حالت مباحثه جلو بریم تا جایه مبهمی نمونه و هر کی علاقه داره بتونه استفاده کنه و اگه فکر میکنید روند سرعت بالایی داره فاصله بین Post های آموزشی جدید رو 2 روز یا 3 روز در میان میزنم یا بیشتر تا هم خودتون کار کنید هم بتونیم بحث کنیم و رفع اشکال انجام بشه !:لبخندساده:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام دوباره
ببخشید من همه کار هایی که گفتی انجام میدم ولی این Error ها رو بازم می ده نمی دونم چرا وقتی برنامه سرور رو اجرا می کنم در رجیستری ثبت نمی شه و کد رجیستری در قسمت serverGUIDِ نمیاد.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
برنامه نویسی در این سطح کاربران مبتدی نداره یعنی افرادی که این تاپیک رو مطالعه می فرمایند با برنامه نویسی آشنا هستند
دوست عزیز منظور من تر مبتدی توی برنامه نویسی نیست توی این مبحث خاصه
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
سلام دوباره
ببخشید من همه کار هایی که گفتی انجام میدم ولی این Error ها رو بازم می ده نمی دونم چرا وقتی برنامه سرور رو اجرا می کنم در رجیستری ثبت نمی شه و کد رجیستری در قسمت serverGUIDِ نمیاد.
از برنامه ای که من دادم استفاده می کنید یا برنامه رو خودتون از اول نوشتید !
اگه خودتون نوشتید بزارید اینجا تا ببینم !
در ضمن شما اول باید فیلد Host یا Address رو پر کنید ... بعد در ServerName نامی که Register شده رو انتخاب کنید و قسمت ServerGUID به صورت AUTO پر میشه !
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام دوستان
توی اونجایی که می خای نام سرور رو انتخاب کنی خالیه رجیستر شده ها ولی خالیه .وقتی هم که connected رو می خای True کنی این خطا رو میده.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
سلام دوستان
توی اونجایی که می خای نام سرور رو انتخاب کنی خالیه رجیستر شده ها ولی خالیه .وقتی هم که connected رو می خای True کنی این خطا رو میده.
سعی کن وقتی سوال می پرسیم یه جوابی بدی!!!؟
من پرسیدم !
نقل قول:
از برنامه ای که من دادم استفاده می کنید یا برنامه رو خودتون از اول نوشتید !
.....
ServerGuid رو پاک کن ... ServerName رو پاک کن .... برنامه scktsrvr.exe رو اجرا کن .... برنامه سرور رو اجرا کن ... بعد بیا دوباره ServerName رو ببین میتونی انتخاب کنی !!!
اگه نشد دیگه نمی دونم !
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
چرا بحثی که قرار بود به شکل ساده به ساختن یک برنامه Client\Server بپردازه را با مطرح کردن یک پروژه 3-tier، اون هم با استفاده از سوکت، پیچیده کردید؟!
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام خدمت آقای کشاورز عزیز
با توجه به این پیشنهاد من ... (در پست 28)
نقل قول:
سلام
مساله بانک !
مساله مکانیسمی که قراره با اون به بانک وصل شد ( از ADO استفتده می خوای بکنی یا از DbExpress یا BDE , ....)
برنامه به صورت Client و Server قراره اجرا بشه یعنی یک برنامه سرور و یک برنامه Client یا فقط یک برنامه وجود داره که تو هر سیستم قراره ConnectionString رو عوض کنیم !
پیشنهاد من
برنامه Client ,Server با معماری 3 لایه و با بانک SQL Server با استفاده از Sucket Connection که یک برنامه سرور موجود باشه که مدیریت Client ها رو بر عهده بگیره و برنامه های Client تنها در صورتی که برنامه Server اجرا باشه بتونن اطلاعات رو بگیرن
در سمت Client با ClientDataSet کار کنیم !
من این روش رو گفتم چون در این سایت خیلی کم دیدم در این موارد زیاد بحث شده باشه ... (معمولا اکثر برنامه های تحت شبکه فقط کافیه که ConnectionString رو عوض کنی تا تحت شبکه بشه کار کنه) بهتره یک کاری که کمتر بچه ها آشنا هستند رو شروع کنیم ...
من خودم تجربه عملی در این مورد رو داشتم و تا اونجا که بشه کمک می کنم ... اگه این طرح رو قبول کردین خودم اسارت رو واسه آموزش می زنم ...
__________________
که دوستان تایید کردند و پیشنهاد دیگه ای داده نشد ... من این بحث رو شروع کردم فکر کنم دوستان هم به اتفاق موافقند !! :لبخند:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
فکر کنم دوستان هم به اتفاق موافقند !
دوست عزیز فکر کنم بیشتر دوستان به اتفاق بی خیال این تاپیک شدند به قول شاعر سکوتم از رضایت نیست
نقل قول:
چرا بحثی که قرار بود به شکل ساده به ساختن یک برنامه Client\Server بپردازه را با مطرح کردن یک پروژه 3-tier، اون هم با استفاده از سوکت، پیچیده کردید؟!
دستت درد نکنه
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوست عزیز کاربر دائمی گرامی فکر نمیکنی تنها سود مورد مطرح شده از سمت شما برای دوستان نا امیدی بوده باشه . من فکر می کنم صحیح تر باشه دست پایین تر ها رو گرفت نه اینکه اونها رو لگد مال کرد . بی خیال شدن دوستان از این تاپیک فکر می کنم یک مقدار بی انصافی باشه میتونی به آمار این تاپیک یک سری بزنی !!!؟؟!!!
در ضمن لطفا به حاشیه ها نپردازید و فقط بحث های مربوط به موضوع مطرح گردد .
از مدیر خوبمون تقاضا می کنم پست های نا مرتبط به موضوع رو حذف کنند . و همچنین پیشنهاد خودشون رو در باره موضوعات این تاپیک بفرمایند .
لطفا در صورت داشتن پیشنهاد اون رو از ما دریغ نکنید و همچنین باید بگم خدا قوت خودتون توی بحث شرکت کنید ما که فقط امین جان رو فعلا می شناسیم . خدایی دستش هم درد نکنه داره واسه همه وقت می ذاره .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
امین جان من توی برنامه server یک بانک گذاشتم و از طریق برنامه client به اون متصل شدم اما وقتی اطلاعات رو تغییر می دم مثلا یک رکورد رو حذف می کنم و برنامه رو می بندم و دوباره باز می کنم می بینم که رکورد حذف یا اضافه نشده . بهتره بگم اطلاعات در بانک ذخیره نمی شه .
eror هم نداره
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام ببخشید دوستان از سوال که مطرح می کنم از همه پوزش می طلبم
سوال من این است که اگر قرار باشد من برنامه ای بنویسم که این برنامه از بانک اطلاعاتی که در شبکه است استفاده کند
باید چه کار کنم که برنامه من در چند مکان (مثلا اتاق های یک دانشگاه) توسط چندین فرد استفاده شود و با ذخیره و اعمال تغییرات برای تمام کاربران استفاده کنند از این برنامه یک Update Data ایجاد کنم (به روز رسانی داده ها و اطلاعات)
من هنوز تو این قضیه گیر کردم و از دوستان خواهش می کنم که مرا راهنمایی کنند تا موضوع این تاپیک را بهتر و واضعتر فرا بگیرم
با تشکر از همه برنامه نویسان
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
امین جان من توی برنامه server یک بانک گذاشتم و از طریق برنامه client به اون متصل شدم اما وقتی اطلاعات رو تغییر می دم مثلا یک رکورد رو حذف می کنم و برنامه رو می بندم و دوباره باز می کنم می بینم که رکورد حذف یا اضافه نشده . بهتره بگم اطلاعات در بانک ذخیره نمی شه .
eror هم نداره
از چه طریقی به DataBase وصل میشی !
از چه Componentهای برای وصل شدن به DataBase استفاده می کنی !
تا چند دقیقه دیگه آموزش وصل شدن به DB رو از طریق DataProvider و ClientDataSet میفرستم !
نقل قول:
سلام ببخشید دوستان از سوال که مطرح می کنم از همه پوزش می طلبم
سوال من این است که اگر قرار باشد من برنامه ای بنویسم که این برنامه از بانک اطلاعاتی که در شبکه است استفاده کند
باید چه کار کنم که برنامه من در چند مکان (مثلا اتاق های یک دانشگاه) توسط چندین فرد استفاده شود و با ذخیره و اعمال تغییرات برای تمام کاربران استفاده کنند از این برنامه یک Update Data ایجاد کنم (به روز رسانی داده ها و اطلاعات)
من هنوز تو این قضیه گیر کردم و از دوستان خواهش می کنم که مرا راهنمایی کنند تا موضوع این تاپیک را بهتر و واضعتر فرا بگیرم
با تشکر از همه برنامه نویسان
بانک اطلاعاتی تحت شبکه مدلهای متفاوتی داvره ... در این تاپیک و تا اینجا من مدل 3tier با استفاده از Socket ها رو داریم بررسی می کنیم ...
در ادامه یا اتمام این بحث مدلهای دیگه ای رو بررسی خواهیم کرد !
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام به دوستان
آمار دانلود قبلی نشانگر استقبال دوستان بود !!! :چشمک:
ممنون از همه ...... :تشویق:
من این بحث رو تا جایی که یک نفر هم پیگیر باشه ادامه میدم تا شاید خیرمون به کسی برسه!:ناراحت:
هر کدام از دوستان که تمایل به ایجاد بحث تدریس جدیدی در مورد برنامه نویسی با پایگاه داده تحت شبکه بودند (حالا هر مدلی) یک تاپیک جدید درست کنن و یک عنوان مناسب بزارن و بقیه دوستان رو واسه آموزش فرا خوانی کنند ... :لبخندساده:
من قول میدم اگه در مورد بحث مربوطه تخصصی داشتم حتما جزء اولین نفرا بیام و کمک کنم ...
و اما .... ادامه بحث :لبخند:
خوب حالا می خوایم اطلاعات رو از سمت Server به Clientها ببریم ! :کف:
ابتدا این BackUp منو بر گردونید یا یه چند خطی اطلاعات وارد DataBase کنید ...
اول می خوایم چند تا Object سمت برنامه Client بزاریم ... واسه دریافت اطلاعات از سمت
Server
یک DbGrid و DBNavigator از تب DataConrol
یک DataSource و ClientDataSet از تب DataAccess
حالا ارتباطها !
DbDrid برای نمایش اطلاعات احتیاج به یک DataSoure داره و ما به خاصیت DataSource اون DataSource1 رو انتساب می دیم و DataSource هم احتیاج به یک DataSet داره که ما در ایم مثال به خاصیت DataSet اون ClientDataSet1 رو انتساب می دیم
و همچنین خاصیت DataSource مربوط به DBNavigator رو به DataSource1 انتساب میدهییم
حالا باید به اطلاعات سمت سرور دسترسی داشته باشیم !!! و اطلاعات رو به ClientDataSet1 بیاریم ! اگه به خواص ClientDataSet1 دقت کنید یک خاصیت به نام RemoteServer و ProviderName داره ... که بعد از انجام تنظیمات سمت سرور در موردش صحبت می کنیم
در حقیقت ما احتیاج به یک فراهم کننده اطلاعات (DataSetProvider) داریم !
ما باید این DataSetProvider رو در سمت سرور آماده کنیم و از اینجا با اون ارتباط برقرار کنیم !!!
میریم به سمت Server ...... --> :لبخند:
در سرور باید با DataBase ارتباط برقرار کنیم واسه این کار در RemoteDataModule که ساختیم (همون که صفحه سفید داره :لبخندساده:) یک AdoConnection می زاریم و ConnectionString و کلیک می کنیم و مقدار دهی می کنیم !!
روی ... کنار خاصیت ConnectionString کلیک کرده تا پنجره ای باز شود Bulid رو میزنیم (ولی آروم بزنید یه موقع دیدید عصبانی بشه Connect نمیشه :لبخند:)
روی Microsoft OLE DB Provider for SQL SERVER دبل کلیک می کنیم تا به تب Connection بره و در قسمت Select Or enter a Server name می تونید "." یا اسم Instanc مربوط به SQL Server رو بزارین (من Software6\sql200 میزارم ) UserName و Password رو هم بزاریم
من User رو sa و Pass رو خالی میزارم و در قسمت Select the database on the server اسم DataBase رو انتخاب می کنیم من نام DicDB رو انتخاب می کنم ...
شما دوستان باید این تنظیمات Connection String رو حتما رو سیستم خودتون جدا گانه انجام بدین
این هم ConnectionString من
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=DicBD;Data Source=Software6\sql2000
حال خاصیت loginPrompt از AdoConnection رو False میزارم
حالا روی RemoteDataModule یک AdoQuery یا AdoTable میزاریم ...
که من AdoQuery میزارم و خاصیت Connection اون رو ADOConnection1 میزارم
ور در خاصیت SQL دستور SQL زیر رو می نویسم
Select * From Words
حال از تب Data Access یک DataSetProvider روی فرم میزارم و خاصیت DataSet اون رو برابر ADOQuery1 می زارم !
حال یک بار برنامه Server رو کامپایل می کنیم ( بهتر این نکته رو به یاد داشته باشید که بعد از هر تغییری در هر برنامه Client یا Server اون برنامه رو جدا گانه کامپایل کنید !!! )
حالا بر گردیم یه سمت Client ......
حالا scktsrvr.exe رو در Run اجرا می کنیم !!
همونطور که گفتم اگه به خواص ClientDataSet1 دقت کنید یک خاصیت به نام RemoteServer و ProviderName داره که اون رو برابر SocketConnection1 قرار میدیم یعنی این ClientDataset باید برای گرفتن اطلاعات به ُSocketConnection1 وصل بشه که SocketConnection1 هم به برنامه Server وصل شده !
و بعد در خاصیت ProviderName در ClientDataSet روی Combo کلیک می کنیم تا باز بشه و احتمالا الان یک ایتم به نام DataSetProvider1 وجود داره که اون انتخاب می کنیم اگه تو لیست چیزی نبود اون رو دستی بنویسین ...
حالا برای گرفتن اطلاعات کافیه این خط دستور رو بنویسین !
ClientDataSet1.Active:=TRUE
که اگه کد رو ببینید من به این روش استفاده کردم
ClientDataSet1.Active:= Not ClientDataSet1.Active;
اگه هر دو برنامه رو کامپایل کنید و سپس برنامه Client رو اجرا کنید ... خواهید دید که اطلاعات در DBGrid نمایش داده میشه ! و اگر قطع ارتباط با سرور رو انجام بدین (همون باتنی که با اون به سرور وصل میشین نه باتی که اطلاعات رو دریافت می کنید) میبینید که اطلاعات در ClientDataSet هست و ما با توجه به اینکه به طور مستقیم با سرور در ارتباط نیستیم ولی اطلاعات در Client وجود داره (یکی از مزایای استفاده از ClientDataSet)
در ادامه تغییرات و ویرایش در ClientDataSet و فرستادن تغییرات اعمال شده در ClientDataSet به سرور ... :گیج:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
بنده يه خورده از مطالب جا موندم اما جهت اطلاع، بحث بسيار خوب و جالب پيش ميره و عده زيادي از دوستان پيگير مطالب هستند در حالي كه ممكنه يك بار هم پست نداده باشن .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
من فکر می کنم صحیح تر باشه دست پایین تر ها رو گرفت نه اینکه اونها رو لگد مال کرد
دوست عزیز من توی این مبحث خودم کسی هستم که پایین تر قرار دارم و یکی باید دستموم بگیره پس سو تفاهم نشه برا همین از همون اول گفتم مسئله رو پیچیده نکنید شما هي مي گید دوستان چرا راهنمایی نمی کنن خوب دوست عزیز شما ماشالله اصلا گوش نمی دی به حرف بقیه من هون اول گفتم بابا پله پله تا ملاقات خدا ! شما وقتی میایی مبحث دیتابیس رو توی شبکه مطرح می کنی بیشتر داری سیستم بانک اطلاعاتی رو جلو می بری تا مبحث شبکه رو همونطور هم که می دونید هر دوی موضوع ها موضوع های بزرگی هستند!
نقل قول:
از مدیر خوبمون تقاضا می کنم پست های نا مرتبط به موضوع رو حذف کنند . و همچنین پیشنهاد خودشون رو در باره موضوعات این تاپیک بفرمایند .
مدیر بنده خدا که نظرشون رو می دن
نقل قول:
چرا بحثی که قرار بود به شکل ساده به ساختن یک برنامه Client\Server بپردازه را با مطرح کردن یک پروژه 3-tier، اون هم با استفاده از سوکت، پیچیده کردید؟!
ولی شما چه نه تنها به سوال ایشون جواب ندادید بلکه به راه خودتون ادامه دادید! پس دوست عزیز چرا از همون اول نظر همه رو خواستید ! همه نظر ها که نمی تونه باب میل شما باشه .
و این هم درست نیست اگه یکی مثل من می گه آقا چرا اینقدر سخت شروع کردید بهش انگ دل سرد کردن بقیه رو بزنید.
با تشکر
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
من تا حالادر این بحث post ندادم(شاید خیلی دیگه هم باشند) ولی از اول آن را پیگیری کرده ام متاسفانه بعضی از دوستان ناخواسته زیادی به حاشیه می پردازند شما لطفا خیلی به حاشیه نپرداخته و کارتان را ادامه دهید
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام دوست عزیز manvaputra
نمیدونم چرا شما دارین شلوغش می کنین :متفکر:
نقل قول:
مدیر بنده خدا که نظرشون رو می دن
نقل قول:
چرا بحثی که قرار بود به شکل ساده به ساختن یک برنامه Client\Server بپردازه را با مطرح کردن یک پروژه 3-tier، اون هم با استفاده از سوکت، پیچیده کردید؟!
ولی شما چه نه تنها به سوال ایشون جواب ندادید بلکه به راه خودتون ادامه دادید!
اگه به پست 53 با دقت نگاه کنید من جواب سوال آقای کشاورز عزیز رو دادم و ایشون هم تشکر کردند یعنی جواب قانع کننده بود ولی شما چرا دارین این قدر ......... نمی دونم ...
در هر تاپیک کسی که تاپیک رو ایجاد می کنه با توجه به گفته استاد کشاورز :تشویق:
نقل قول:
تاپیک تا زمانی که در آن کاری خلاف قوانین سایت انجام نشده، در اختیار کاربر ایجاد کننده آن هست.
و ایشون en.kamali.ir (کاربر ایجاد کننده) هم رضایت خودشون رو اعلام کردند (به همراه تمام کسانی که تشکر کردند و برنامه ها رو Download کردند)
خواهش می کنم دیگه مطلب خارج از موضوع تاپیک نگید تا هم تاپیک قفل نشه و هم از موضوع خارج نشیم ! :عصبانی++:
منم که گفتم
نقل قول:
هر کدام از دوستان که تمایل به ایجاد بحث تدریس جدیدی در مورد برنامه نویسی با پایگاه داده تحت شبکه بودند (حالا هر مدلی) یک تاپیک جدید درست کنن و یک عنوان مناسب بزارن و بقیه دوستان رو واسه آموزش فرا خوانی کنند ... :لبخندساده:
من قول میدم اگه در مورد بحث مربوطه تخصصی داشتم حتما جزء اولین نفرا بیام و کمک کنم ...
ممنون از تمام دوستان :چشمک:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوست عزیز امین جان من اگه چیزی گفتم هدفم شلوغ کاری نبوده پس بهتره سو تفاهم ها کنار گذاشته بشه و کارو دوباره با انرژی بیشتر شروع کنی ما هم هستیم کنارتون یا علی
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام به همه دوستان:لبخندساده:
ممنون خاطر لطفتون ...:قلب:
شرمنده از تاخیر چند روزه ... :خجالت:
باور کنید تنها یک سری مشکلات نذاشت که زودتر بیام ...
از دست کسی هم هیچ دلخوری ندارم
یکی 2 بار که من وقت داشتم Site رو نتونستم باز کنم (فکر کنم دوستان داشتن سایت رو Update می کردند !)
بعد آدم متاهل در سر های خودش رو داره !!! :ناراحت:
خلاصه شرمنده .... :لبخند:
ادامه بحث ...
اما اگه برنامه رو تا اینجا با من پیش اومده باشین دیدید که ما به بانک وصل شدیم و اطلاعات رو خوندیم ....
ولی تغییر و اضافه کردن و ... تنها تا وقتی برنامه در حال اجرا بود قابل مشاهده بود ... و با بستن برنامه تغییرات در بانک ثبت نمی شد ...
مشکل چی بود ؟! :متفکر:
همانطورر که قبلا هم گفته شد اطلاعات به Client می اد و ارتباط با بانک قطع میشه ...
اعمال تغییرات در DataBase ... :لبخندساده:
برای ذخیره تغیرات باید از متد ApplyUpdate از ClientDataSet رو فراخوانی کنیم ... :گیج:
این متدبا توجه به اینکه ClientDataSet به به یکProvider متصل است از طریق اون عملیات Update رو انجام میده !
If ClientDataSet1.ApplyUpdate (0) > 1 then
ShowMessage('Update Faile ')
چند نکته پیرامون ApplyUpdate ...
مقدار ورودی این متد به چه معناست !؟
این مقدار، تعداد Errorهای قابل قبول برای عملیات Update دیتاست ماست !
در اینجا صفر به این معناست که هیچ Errorی قابل قبول نبوده و در صورت برخورد با Error این تغییرات Cancel شوند !
یکی از مهمترین Errorها اینه که ما رکوردی رو تغییر بدیم و کاربر دیگه هم همون رکورد رو تغییر بده و هنگام ثبت تغییرات توسط مااین Error رخ می دهد ! :اشتباه:
من یک Button روی فرم گذاشتم و دستورات زیر رو توی اون نوشتم !
If ClientDataSet1.ApplyUpdates(0)>0 Then
Begin
If MessageDlg('Data Is Changed ... Reload Data ?!',mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
Begin
ClientDataSet1.Active:=False;
ClientDataSet1.Active:=True;
Exit;
End;
End;
Showmessage('Data Saved To Server');
این دستورات سب میشه که اطلاعات با دستور ApplyUpdates به Server بره و ثبت بشه ... و اگر اطلاعات قبلا توسط یک نفر دیگه تغییر کرده باشه یک پیغام ظاهر می شه که می گه اطلاعات تغییر کرده آیا مایلید دوباره اطلاعات رو از سرور بخونید !:چشمک:
برای اینکه ما آخرین تغییرات رو ببینیم می تونیم با متد Refresh از ClientDataSet1 آخرین اطلاعات رو ببینیم !
شما برنامه Cleint رو چند بار اجرا کنید و اطلاعات رو در یک فیلد خاص ویرایش کنید و بعد ثبت کنید و در برنامه دیگه که در حال اجراست همون رکورد رو ویرایش کنید نتیجه رو ببینید !!!
ما تا اینجا به برنامه سرور وصل شدیم و اطلاعات رو گرفتیم و تونستیم به صورا همزمان ویرایش کنیم و ثبت کنیم و ... :تشویق:
این مبحث نکات ریز و درشت خیلی داره ... :گیج:
از اینجا به بعد به عهده شماست !!!! :لبخند:
حالا که با کلیت بحث به مقدار زیادی آشنا شدین با سوالهای جدید این مبحث رو پیشرفت بدین !! :تشویق:
منم تا اونجا که بلد باشم توضیح می دم و اگه موضوع دیگه ای یادم اومد باز مینویسم ....
شما خودتون سعی کنید یه برنامه از اول بنویسید تا با مشکلات آشنا بشین و اینجا مطرح کنید ...
من منتظر سوالهای شما هستم :چشمک:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام با تشکر .
سوالات :
1 . آیا این نوع برنامه نویسی فقط برای شبکه های محلی است ؟؟ یعنی اگه از طریق اینترنت به سرور متصل شدن امکان پذیر می باشد ؟؟ من از طریق اینترنت رو امتحان کردم نتیجه نگرفتم .
2. نوشتن query ها به چه شکلی است ؟
3 . چگونه میتوان وقتی بانک در سرور تغییراتی پیدا کرد آن را به client ها اطلاع داد ؟؟
4 . چگونه میتوان یک فرم برای گفتگو بین کلاینت با سرور و یا حتی کلاینت با کلاینت گذاشت ؟؟
چگونه میتوان تشخیص داد که چه افرادی در حال حاضر با برنامه در حال کار کردن هستند در واقع مثل یاهو مسنجر ورود و خروج کاربران را بتونیم ببینبم .
ممنون می شم اگه یکی از دوستان برای پاسخگویی اعلام آمادگی کنند .
در ضمن از تمامی بازدید کنندگانی هم که تا حالا در این بحث شرکت نکرده اند دعوت می کنم تا سوالات خودشون رو در این قسمت بپرسند .
با تشکر از همه دوستان به خصوص امین عزیز
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
ممنون بابت سوالهایی که پرسیدی ؟! :تشویق:
ولی یکی یکی ، یکی یکی :لبخند:!
تا بشه خوب سرش بحث کرد ....
امیدوارم سایر دوستان هم سوالهای خود را بپرسند و سایر دوستان هم برای جواب دادن آستین بالا بزنن ! :چشمک:
نقل قول:
. آیا این نوع برنامه نویسی فقط برای شبکه های محلی است ؟؟
نه فکر نمی کنم فقط برای شبکه های محلی باشه !
با دادن مجوز ها و حق دسترسی ها میشه تحت هر شبکه ای استفاده کرد ...
نقل قول:
یعنی اگه از طریق اینترنت به سرور متصل شدن امکان پذیر می باشد ؟؟
بله ... من از طریق سیستم خودم به سایتم یک DataBase روی اون قرار داره متصل میشم (SQL Server) باید حق دسترسی داشته باشی و یا احیانا اگه لازم باشه باید از Port ی غیر از port پیش فرض SQL Server استفاده کنی !؟
نقل قول:
من از طریق اینترنت رو امتحان کردم نتیجه نگرفتم
میشه دقیقا بگی به چه روشی این کار رو کردی !؟ کامل توضیح بده و اگه Error خاصی هم بوجود اومده اینجا بنویس ....
سواهای دیگه بمونه واسه وقتی که این رو جواب گرفتی ... ( یکی یکی ، یکی یکی !!!)
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
کسی میدونه چگونه میشه برنامه تحت شبکه ای نوشت که ConnectionString را بتوان هنگام اجرا و توسط کاربر قابل تغییر باشه؟
منظورم تنظیمات DataBaseName ،SQL_UserName ، SQL_Password و آدرس Server است
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
کسی میدونه چگونه میشه برنامه تحت شبکه ای نوشت که ConnectionString را بتوان هنگام اجرا و توسط کاربر قابل تغییر باشه؟
منظورم تنظیمات DataBaseName ،SQL_UserName ، SQL_Password و آدرس Server است
دوست عزیز این سوال ربطی به شبکه نداره ! (خواهشا سوالهای مرتبط با موضوع رو بپرسین در ضمن اگه یک Search میزدین در این مورد کلی مطلب گیر می آوردین !!)
ConnectionString یک رشته است که به راحتی میشه تنظیمات اون رو تغییر داد !!
ConnectionString:='Provider=SQLOLEDB.1;Password='+ Password+
';Persist Security Info=True;User ID='+UserName+
';Data Source='+ServerName;
این رو شما یک تابع کن که مقادیر ورودیش Passwordو UserNameو ServerName باشه !
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام یه همه دوستان .
شرمنده کخ یک مدته که سر نمی زنم .
متاسفانه مادر بزرگم به رحمت خدا رفته و درگیر این مسایل هستم .
خواهش می کنم فعلا دوستان بحث رو ادامه بدهند تا من هم خودمو برسونم .
با تشکر .
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
خدایش بیامرزد.از دوستان خواستارم تا برای مادربزرگ ایشون که زحمت تدریس این مطلب رو شروع کردن فاتحه ای خوانده شود تا ما هم در ادای دین به ایشون قدمی برداشته باشیم.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام و خسته نباشید:
یه سوال میپرسم اگه جاش باشه: چرا همچین مبحثی تو این بخش باز میشه درحالی که بخشهایی مثل توسعه نرم افزارهای تحت شبکه یا https://barnamenevis.org/clear.gif توسعه نرم افزار تحت وب همچنان دو سه تا تاپیک توشون هست و هیچکس طرفشون نمیره ما هم سوالاتمون پا در هما میمونه
البته اصلا قصد بی احترامی و دخالت ندارم فقط خواستم نظرمو بگم.
ممنون ...
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام،
علتش اینه که اون زیر گروه ها تازه چند روز هست که ایجاد شدند، و تاپیک هایی که قبل از آن وجود داشتند (مثل این تاپیک)، هنوز به زیر گروه های مربوطه منتقل نشدند. دو سه تاپیکی هم که در اون زیر گروه ها می بینید، جدیدا، و بعد از اجرا طرح تغییر ساختار تالار دلفی، در آنجا ایجاد شدند.
انشاء الله به زودی تاپیک های موجود در تالار اصلی به زیر گروه های مناسب منتقل می شوند.
برای اطلاعات بیشتر به تاپیک زیر رجوع کنید:
http://www.barnamenevis.org/sh...d.php?t=134447
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام به همه دوستان
اول از همه تسلیت می گم بابت فوت مادر بزرگ دوستمون ...
دیدم دوستان سوال نمی پرسن خودم یک نکته مهم به یادم اومد گفتم بنویسم ...
ادامه بحث
اضافه کردن متد به یک Remote Data Module
در این قسمت می خوام نحوه اضافه کردن متد به یک Remote Data Module را برای دوستان توضیح بدم
اگه یادتون مونده باشه گفتم که برنامه Server علاوه بر براهم کردن یک مجموعه داده می تواند یک سری سرویس هایی مثل انجام محاسبات پیشرفته انجام دهد یا مثلا بازگرداندن ساعت سیستم سرور ...
برای اضافه کردن متد باید در Unit مورد نظر در پنجره کد کلیک راست کرده و Add to Interface را انتخاب می کنیم که ما در Unit RtmDM این کار را انجام می دهیم
به عنوان مثال یک تابع که ساعت سیستم را برگرداند
در پنجره باز شده در قسمت Declaration باید خط تعریف عنوان تابع را کامل و صحیح و با پارامتر های استاندارد بنویسیم که من این رو می نویسیم
Function GetServerName:TDateTime;
در هنگام تایپ یک Hint برای راهنمایی نمایش داده می شود ... شما در هنگام تایپ به تغییراتی که در Hint می شود دقت کنید .... :گیج:
این تابعی که من نوشتم ..به سادگی هر چه تمام !!
function TRmtDMServer.GetServerName: TDateTime;
begin
Result:=Now;
end;
حالا سمت Client :چشمک:
بک button روی فرم می زارم و کد زیر رو توش مینویسم ...
procedure TFrm_Main.btnGerSrvrTimeClick(Sender: TObject);
begin
ShowMessage(DateToStr(SocketConnection1.AppServer. GetServerTime));
end;
فقط باید دقت کنید که نام تابع رو دقیق همونی که توی Server هست بنویسین
نکته :
اگر می خواهین پارامتر ورودی و خروجی تابع سمت Server از نوع رشته باشه حتما باید به جای String از WideString استفاده کنید ... :چشمک:
حالا شما می تونید بعضی از کارهایی که قراره سمت سرور Check بشه رو به این صورت پیاده سازی کنید
مثلا کاربرانی که می خوان از برنامه استفاده کنن رو ببینین تو DataBase هستند ! واسه این کار یک متد بنویسین که نام و رمز رو بگیره و خروجی Boolean بده ....
یا واسه همین برنامه یک متد بنویسیم که یک کلمه رو بگیره و معنی رو بده ! :تشویق: و .... .
-
1 ضمیمه
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
سلام دوست عزیز .خیلی خیلی خسته نباشی .
ضمن تشکر در مورد مطالبی که توضیح دادی . خیلی خوب گفتی . من دیشب تا صفحه 7 رو خوندم و کار کردم و درست هم جواب داد . ایشالا از اونجا به بعد رو در همین روزها کار میکنم .
اما خوب مسائل و سوالاتی که برای من پیش اومد :
1 . برنامه رو نوشتم وقتی یک رکورد به جدول اضافه میکرم و بعد ApplayUpdate میکردم و Active مربوط به Clintdataset رو False و True میکردم اطلاعاتی که ثبت شده بود رو نشون نمداد و باید برنامه رو دوباره باز میکردم تا اونها رو نشون بده .
البته در این ضمینه خودم دوتا راه به نظرم رسید که :
1-1 Sucktconnection رو Dicconnect و cunnect کنم و دوباره اطلاعات رو بخونم که این به نظرم زیاد منطقی نمیاد .
2-1 مقدار CursorLocation مربوط به AdoConnection و AdoQuery رو از CluClient به CluServer تغییر دادم که این رو هم امتحان کردم جواب داد .
ایا روش درست همینه ؟ روش های دیگر به چه صورته ؟
من برنامه ی کوچکی رو با روشهایی که گفتید نوشتم (SqlServer2005 , Delphi7 ) که میزارم اینجا . اگه زحمتی نیست میشه برنامه ی منو ببینید و در مورد درستی یا نادرستی شیوه ی من نظر بدید .هر چند خارج از دستورات شما چیز زیادی ننوشتم و تنها ثبت و اصلاح و حذف داره .
اگه طلف کنید ببینید ممنون میشم .
چنتا سوالا دیگه هم دارم که ترجیح میدم یه پست دیگه برای اونها بزنم .
-
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
خوب حالا سوال بعدی .
البته این سوال من میشه گفت یک سوال کلیه :
راستش من برنامه ای رو می خوام بنویسم که تحت شبکه باید باشه. که میشه گفت نیاز به دونستن در مورد این زمینه باعث شد که این تاپیک رو پیدا کنم .شاید پس از خواندن مطالب شما نظرم به طور کل در مورد برنامه های تحت شبکه عوض شد .
ایا برنامه ای رو که می خوایم بنویسیم و روشی رو که در اون استفاده میکنیم باید با دقت به شبکه ی که داریم باشه ؟
این روشی که شما میگید عمومیت داره و به سورت گسترده از اون استفاده میشه ؟
این برنامه هایی ایی که تو بازار هست و بیان شده که تحت شبکه هستن بر چه اصاصی نوشته شده اند ؟
برنامه ای که من دارم خوب کار با همین بانک اطلاعاتیه . در مورد شبکه ی اونها اطلاعاتی ندارم . البته برای یک سازمانه . ایا میتونم از همین روش برای اون برنامه استفاده کنم ؟ یا روش معقولی هست ؟
و یه در خواست دیگه دارم : چون یه کم سرعت پیشرفت این تاپیک کنده و من هم نیاز جدی دارم در این زمینه ! فایل آموزشی دارید که در اختیار من و سایر دوستانی که دوست دارند بزارین ؟
بازم خسته نباشید .
-
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
دوستان عزیز سلام . از همه دوستان تشکر میکنم . همه در مورد این تاپبک لطف دارند .
امین جان من اومدم که سوالام رو جدا جدا بپرسم .
من برنامه رو نوشتم توی lan هم جواب گرفتم اما خواستم یک امتحام کرده باشم اومدم 2 تا سیستم رو به طور جداگانه به اینترنت متصل کردم و در قسمت client آدرس سرور رو وارد کردم اما ارتباط با بانک برقرار نشد . منظورم از اون سوالی که پرسیده بودم این بود .
با تشکر .
-
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
سلام :چشمک:
خوشحالم میبینم که دوستان پیگیری می کنن ... :تشویق:
نقل قول:
1 . برنامه رو نوشتم وقتی یک رکورد به جدول اضافه میکرم و بعد ApplayUpdate میکردم و Active مربوط به Clintdataset رو False و True میکردم اطلاعاتی که ثبت شده بود رو نشون نمداد و باید برنامه رو دوباره باز میکردم تا اونها رو نشون بده .
البته در این ضمینه خودم دوتا راه به نظرم رسید که :
1-1 Sucktconnection رو Dicconnect و cunnect کنم و دوباره اطلاعات رو بخونم که این به نظرم زیاد منطقی نمیاد .
2-1 مقدار CursorLocation مربوط به AdoConnection و AdoQuery رو از CluClient به CluServer تغییر دادم که این رو هم امتحان کردم جواب داد .
ایا روش درست همینه ؟ روش های دیگر به چه صورته ؟
این رو هم تست کردین ! با این جواب میده یا نه ! :متفکر:
ClientDataSet1.Refresh;
شرمنده برنامه تون رو نتونستم نگاه کنم ان شاء الله در اولین فرصت نگاه کنم ....
نقل قول:
ایا برنامه ای رو که می خوایم بنویسیم و روشی رو که در اون استفاده میکنیم باید با دقت به شبکه ی که داریم باشه ؟
بهتر که این طور باشه
نقل قول:
این روشی که شما میگید عمومیت داره و به سورت گسترده از اون استفاده میشه ؟
خیر عمومیت نداره ... لااقل من خیلی ندیدم .. کمتر از این روش استفاده میشه ... ولی مزایای زیادی داره ... مخصوصا برای تعداد Client بالا ...
نقل قول:
این برنامه هایی ایی که تو بازار هست و بیان شده که تحت شبکه هستن بر چه اصاصی نوشته شده اند ؟
معمولا از ado استفاده می کنن و برای وصل شدن Clientها به DataBase بر روی سرور فقط لازمه که ConnectionString رو عوض کرد ... که در مواقعی که تعداد Clientهای همزمان متصل به سرور زیاد بشه سر سرور خیلی شلوغ میشه و سرور کند میشه !! :گیج:
نقل قول:
برنامه ای که من دارم خوب کار با همین بانک اطلاعاتیه . در مورد شبکه ی اونها اطلاعاتی ندارم . البته برای یک سازمانه . ایا میتونم از همین روش برای اون برنامه استفاده کنم ؟ یا روش معقولی هست ؟
بستگی داره به کارتون ... یه توضیح بدین ....
نقل قول:
و یه در خواست دیگه دارم : چون یه کم سرعت پیشرفت این تاپیک کنده و من هم نیاز جدی دارم در این زمینه ! فایل آموزشی دارید که در اختیار من و سایر دوستانی که دوست دارند بزارین ؟
در یکی از Post ها در همین تاپیک هم یکی از دوستان قبلا یه مقاله گذاشتن ...
در ضمن کتاب هم هست ... برنامه نویسی بانکهای اطلاعاتی Delphi7 & Kylix کتاب خوبیه
امید وارم سوالی از قلم نیفتاده باشه :چشمک:
-
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
نقل قول:
دوستان عزیز سلام . از همه دوستان تشکر میکنم . همه در مورد این تاپبک لطف دارند .
امین جان من اومدم که سوالام رو جدا جدا بپرسم .
من برنامه رو نوشتم توی lan هم جواب گرفتم اما خواستم یک امتحام کرده باشم اومدم 2 تا سیستم رو به طور جداگانه به اینترنت متصل کردم و در قسمت client آدرس سرور رو وارد کردم اما ارتباط با بانک برقرار نشد . منظورم از اون سوالی که پرسیده بودم این بود .
با تشکر .
در برنامه Client ادرس سرور رو چی دادین !؟
آدرس Server رو به چه صورت دادین !؟
IP دادین !? یا نام سرور !؟!؟
اگر IP دادین شاید لازم باشه حق دسترسی هم داده بشه ... خودم تا حالا تست نکردم ...
(من از فردا چند روز نیستم ... اگه اینترنت دمه دستم بود سر میزنم ... امیدوارم سایر دوستان هم بیان و به سوالها جواب بدن ممنون از همه )
-
نقل قول: برنامه نویسی بانک اطلاعاتی تحت شبکه
نقل قول:
نقل قول:
این روشی که شما میگید عمومیت داره و به سورت گسترده از اون استفاده میشه ؟
خیر عمومیت نداره ... لااقل من خیلی ندیدم .. کمتر از این روش استفاده میشه ... ولی مزایای زیادی داره ... مخصوصا برای تعداد Client بالا ...
نقل قول:
این برنامه هایی ایی که تو بازار هست و بیان شده که تحت شبکه هستن بر چه اصاصی نوشته شده اند ؟
معمولا از ado استفاده می کنن و برای وصل شدن Clientها به DataBase بر روی سرور فقط لازمه که ConnectionString رو عوض کرد ... که در مواقعی که تعداد Clientهای همزمان متصل به سرور زیاد بشه سر سرور خیلی شلوغ میشه و سرور کند میشه !!
شما هر تعدادی هم که لایه داشته باشید، با افزایش تعداد کلاینت ها، ترافیک سرور شما افزایش پیدا میکنه. یکی از مزیت های طراحی چند لایه این هست که بشه این ترافیک را بین چند سرور تقسیم کرد.
بطور کلی، چه معماری Client\Server که در آن یک سرور با تعدادی کلاینت وجود دارند، و چه معماری n-tier یا چند لایه، که در آن امور مختلف بین چند سرور تقسیم می شوند، و برآیند پردازش ها به کلاینت ها ارسال می شود، مزایا و معایب خاص خودشان را دارند، و طراح سیستم باید متناسب با نیازهای پروژه انتخاب کند که کدامیک را استفاده کند. در بعضی پروژه ها Client\Server مناسب تر از n-tier هست. از طرف دیگه، چگونگی برقراری ارتباط بین لایه های مختلف در سیستم های n-tier هم هر کدام مزایا و معایب خاص خودشان را دارند، مثلا همین روش اتصال با DCOM که شما در این تاپیک آن را از طریق مثال توضیح می دهید، اشکالات فراوانی دارد، مثل: عدم سازگاری با فایروال های نصب شده در مسیر شبکه، محدودیت سرویس دهی فقط به کلاینت های ویندوز، و پیچیدگی تنظیمات مرتبط با آن.
بطور خلاصه, نمی توان یکی را به عنوان راه حل جامع برای همه سیستم ها انتخاب کرد، و باید متناسب با نوع پروژه طرح مناسب انتخاب شود.