View Full Version : مبتدی: نوشتن برنامه تحت شبکه محلی
Fastdesign
دوشنبه 22 اسفند 1390, 16:58 عصر
سلام
زیاد در این سایت جستجو کردن ولی خیلی برام پیچیده بود .
من در برنامه تحت شبکه تازه کارم .
می خوام سوال بگیرم برای اینکه بتونم یک برنامه برای یک شبکه محلی بنویسم :
به این صورت که یک سرور و دو کلاینت داشته باشم . از چه کنترل هایی در دلفی استفاده کنم بهتره ؟
در ضمن SQL Server هم روی سیستم سرور نصب باشه و بقیه دو سیستم دیگه از طریق شبکه از سرور سرویس بگیرند(حذف و اضافه کردن رکورد و ...).
با تشکر
mohsen24000
دوشنبه 22 اسفند 1390, 19:01 عصر
اگر فقط صرف کار با بانک اطلاعات تحت شبکه و SQLسروره از کامپوننت خاصی نیاز نیست که استفاده کنی همون ADO کافیه ، چون قرار نیست بین کلاینتها اطلاعاتی رد و بدل بشه که نیاز به سوکت و غیره داشته باشی!
Fastdesign
دوشنبه 22 اسفند 1390, 19:16 عصر
اگه SQL Server رو سرور نصب باشه دیگه نیاز به نصب SQL Server یا اجزای دیگه روی کلاینت هم است یا نه ؟
mohsen24000
دوشنبه 22 اسفند 1390, 19:23 عصر
خیر، فقط دسترسی به سرور نیازه!
Fastdesign
دوشنبه 22 اسفند 1390, 19:55 عصر
من همه این کارها را انجام دادم(یعنی ارتباط بین سرور و کلاینت برقرار است و در برنامه ای که در کلاینت می خوام اجراش کنم IP کلاینک رو ست کردم) ولی چرا این خطا می ده ؟
84097
Fastdesign
دوشنبه 22 اسفند 1390, 19:58 عصر
ببخشید منظورم IP سیستم سرور بود!
mohsen24000
دوشنبه 22 اسفند 1390, 20:00 عصر
مشکل شما باید از کانکشن استرینگتون باشه!
یوزر آی دی و پسورد اسکیول سرور هم باید درست تنظیم بشه...
مثل :
Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=DbaseName;Data Source=ServerName;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ClientName;Use Encryption for Data=False;Tag with column collation when possible=False
Fastdesign
دوشنبه 22 اسفند 1390, 20:12 عصر
من هم همون را گذاشتم ولی با این تفاوت که من IP سیستم سرور را هم اینجا ست کردم :
'Provider=SQLOLEDB.1;Password=*****;Persist Security Info=True;User ID=sa;Initial Catalog=Example;Data Source=192.168.0.1'
Fastdesign
دوشنبه 22 اسفند 1390, 20:17 عصر
در ضمن این تنظمات کانکشن هم تو سیستم سرور درست کار می کنه ولی تو سیستم کلاینت خطا می ده؟
BORHAN TEC
دوشنبه 22 اسفند 1390, 22:40 عصر
کلاً ADO را کم کم باید به فراموشی سپرد. توجه داشته باشید که انجام این کارها در دلفی بسیار آسان است. یکی از روش های انجام این کار توسط DataSnap و dbExpress می باشد.
اما در مورد SQL Server باید بگویم که در سیستم کلاینت هم شما نیاز به Microsoft SQL Server 2008 Native Client خواهید داشت که باید آنرا از آدرس زیر دانلود کنید:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=16177
در مورد نحوه پیاده سازی سرور و کلاینت ها هم من قبلاً مقاله ای را در همین زمینه را در آدرس زیر قرار داده ام:
http://barnamenevis.org/showthread.php?290914-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%DA%86%D9%86%D8%AF-%D8%B1%D8%AF%DB%8C%D9%81%DB%8C-%D8%A8%D8%A7-DataSnap-XE
Fastdesign
چهارشنبه 24 اسفند 1390, 10:24 صبح
دوستان من این برنامه Microsoft SQL Server 2008 Native Client را نصب کردم ولی باز هم در سیستم کلاینت همون خطا را میده . به نظر شما دوستان دیگه می تونه مشکل از چی باشه؟
در ضمن روش اتصال هم ADO Connection است .
با تشکر
tiphooo
پنج شنبه 25 اسفند 1390, 00:50 صبح
=شاهین عشایری;1462739]کلاً ADO را کم کم باید به فراموشی سپرد. توجه داشته باشید که انجام این کارها در دلفی بسیار آسان است. یکی از روش های انجام این کار توسط DataSnap و dbExpress می باشد.
حداقل توی این سایت یک مثال ساده از نحوه کارکرد datasnap , dbExpress وجود ندارد
[QUOTE]=اما در مورد SQL Server باید بگویم که در سیستم کلاینت هم شما نیاز به Microsoft SQL Server 2008 Native Client خواهید داشت که باید آنرا از آدرس زیر دانلود کنید: [/URL]http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=16177[/URL] [QUOTE ]
آیا منظور شما در مورد حالتی است که از ADO استفاده شود؟
چون معمولا بر روی کلاینت چیزی نصب نمی شود
امکان داره یک کم بیشتر توضیح بدید؟
Fastdesign
پنج شنبه 25 اسفند 1390, 08:47 صبح
دوستان کسی نمی دونه که چرا در سیستم کلاینت این خطا میده؟
mohsen24000
پنج شنبه 25 اسفند 1390, 09:04 صبح
بهتره کانکشن استرینگی که استفاده می کنید به صورت کامل قرار بدید، احتمالا شما Workstation ID به طور صحیح تعریف نکرده باشید!
Fastdesign
پنج شنبه 25 اسفند 1390, 09:30 صبح
این هم شکل کانکشن :
84209
رو سیستم سرور که دیتابیس SQL نصب است درست جواب میده ولی رو سیستم کلاینت ها خطایی ک در پست 5 این تاپیک قرار دادم میده !
با تشکر
mohsen24000
پنج شنبه 25 اسفند 1390, 09:33 صبح
خب WorkStationID در کانکشن استرینگ رو چی تعریف کردید؟
Fastdesign
پنج شنبه 25 اسفند 1390, 09:37 صبح
اگه منظورتان از WorkStationID ، آی پی سیستم سرور است که من در قسمت Server Name آی پی سیستم سرور را وارد کردم !
ولی اگه منظورتان آی پی سیستم کلاینت است که وارد نکردم یعنی نمی دونم از کجا وارد کنم !
mohsen24000
پنج شنبه 25 اسفند 1390, 09:40 صبح
شما همون کانکشن استرینگی رو که در پستهای قبلی قرار دادم را استفاده کنید و فقط اطلاعات مربوط به بانک خودتون مثل نام بانک، پسورد یوزر sa، نام سرور و نام کلاینت رو تغییر بدید، با این تفاسیر اگر دسترسی به سرورتون مشکلی نداشته باشه دیگه نباید پیام خطایی رو ببینید!
Fastdesign
پنج شنبه 25 اسفند 1390, 09:56 صبح
همه این تغییرات را انجام دادم ولی باز هم همون خطای اولی را می گیره !!
شبکه هم که درسته !
Mask
شنبه 27 اسفند 1390, 17:09 عصر
دوست عزیز. کانکشن استرینگ یه مقداره رشته ایی هست. که شما غیر از ویزارد دلفی میتونید به صورت دستی پرش کنید و ADOconnectioneton رو True کنید.
اولین کار واسه رفع مشکلتون :
مقدار کانکشن استرینگ خود سرور رو به صورت دستی بدید.
و مقدارش رو هم اینجا بزارید.
تا مقدار کانکشن استرینگ بر روی کلاینتهات رو بهت بگم.
واسه اینکه مقدار کانکشن استرینگ رو در بیاری.: به صورت ویزارد دلفی برنامه رو وصل کن به بانک. بعدش adoconnection رو سلکت کن و در پروپرتیس روی کانکشن استرینگ کلیک کن و دکمه کنترل+سی رو بزن.
و اینجا پیست کن.
تا ادامه ماجرا...
Fastdesign
یک شنبه 28 اسفند 1390, 08:19 صبح
این Connection String برای سرور :
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Password=98765;Persist Security Info=True;User ID=sa;Initial Catalog=Example;Data Source=HASAN-PC';
ADOConnection1.Connected := true;
حالا برای کلاینت ...
Mask
دوشنبه 14 فروردین 1391, 16:19 عصر
دوست عزیز
برای برنامه کلاینت و سرور یه کانکشن استرینگ باید تعریف کنی.
به عکس زیر دقت کن.
در فیلد اول ابتدا آی پی سرور و سپس \ و سپس نام کامپیوتر سرور رو وارد کن. بعدش تو اسکیو ال منیجرت در قسمت سکیوریتی یه یوزر با پسور بساز و در فرم در قسمت یوزر نیم و پسوورد وارد کن .
و بقیه تنظیمات.
این تنظیمات در برنامه کلاینت و سرور یه جوره.
موفق باشی.
Felony
دوشنبه 14 فروردین 1391, 19:40 عصر
در فیلد اول ابتدا آی پی سرور و سپس \ و سپس نام کامپیوتر سرور رو وارد کن.
نیازی به این کارهای نیست ؛ کافیه سرویس SQL Browser روی سیستم سرور در حال اجرا باشه تا اسم سرورها رو بتونید در لیست ببینید و سرور مورد نظر رو انتخاب کنید .
imani1983
پنج شنبه 04 خرداد 1391, 15:23 عصر
سلام - مرسی جالب بود
راستش منم یه برنامه با دلفی هفت نوشتم که بانک اطلاعاتیش sql2000 هست منم می خوام فایل اجرای این برنامه رو به اشتراک بذارم و تو شبکه محلی به صورت شبکه ای از آن استفاده کنن - اما منم مشکلات شما رو دارم .حالا من چی کار کنم - اگه امکانش هست کمی واضحتر بگین.
آیا باید تنظیمات خود sql رو تغییر بدیم ؟
یا نه از سریق خود دلفی باید کاری انجام بدیم؟
آیا حتما باید جهت اتصال به پایگاه داده نام کاربری و رمز ورود تعریف کنیم ؟؟؟؟؟؟؟؟
imani1983
پنج شنبه 04 خرداد 1391, 15:30 عصر
اگه امکانش هست با یه مثال ساده برای من توضیح بدین
tiphooo
یک شنبه 07 خرداد 1391, 23:47 عصر
شما باید روی سرور SQLServer را نصب کنید و فایل اجرایی را روی کلاینتها نصب کنید و اگر از ADO استفاده کرده باشید در ConnectionString مربوط به ADOConnection باید مسیر دیتابیس را همانطور که در پست 22 گفته شد تنظیم کنید
نیازی به کار خاصی در SQLServer و سرور نیست در برنامه دلفی اگر تا حالا نام سرور را در Select or enter server name : وارد نمی کردید حالا باید وارد کنید(مطابق شکل پست 22)
firststep
پنج شنبه 11 خرداد 1391, 10:45 صبح
دقت داشته باشید که نتها یک سرویس sql روی سیستمتان نصب باشد
در زمان نصب visual studio اصولاً یک sql express نیز نصب می شود و شاید خودتان هم یک sql enterprice هم نصب کرده باشید که اون موقع بایستی سرویستون رو معرفی کرده باشید....
arkia
پنج شنبه 25 خرداد 1391, 04:53 صبح
منم همین مشکلو دارم نتیجه بحث چی شد؟
PayamKazemi
جمعه 26 خرداد 1391, 02:09 صبح
سلام.
دوستان مشکل از کانکشن استرینگ نیست،
باید از داخل sql server وارد بخش Security بشین و از اونجا وارد بخش Logins و یک کاربر جدید اضافه کنید و نام کاربری آن را نام کامپیوتری که میخواهید به sql دسترسی پیدا کند را بگذارید همین.
arkia
جمعه 26 خرداد 1391, 04:14 صبح
سلام.
دوستان مشکل از کانکشن استرینگ نیست،
باید از داخل sql server وارد بخش Security بشین و از اونجا وارد بخش Logins و یک کاربر جدید اضافه کنید و نام کاربری آن را نام کامپیوتری که میخواهید به sql دسترسی پیدا کند را بگذارید همین.
من sa رو نام کاربری میزارم رمزم بهش میدم اما نمیشه ، فک نمیکنم اگه sa داشته باشیم نیازی به ساختن کاربر باشه درسته؟
Mask
یک شنبه 28 خرداد 1391, 18:13 عصر
یه یوزر واقعی بسازید با پسوورد ، تست کنید ، ببینید جواب میگیرید؟
arkia
دوشنبه 29 خرداد 1391, 23:54 عصر
حتی وقتی من میزنم (local) میتونم تو لوکال وصل شم اما وقتی میزنم 127.0.0.1 نمیشه! این مشکل از کجاش میتونه باشه؟
(من از Instance استفاده میکنم اینطوری می نویسمش:
local)\Instance
Felony
سه شنبه 30 خرداد 1391, 04:15 صبح
127.0.0.1\Instance
arkia
جمعه 06 مرداد 1391, 02:14 صبح
127.0.0.1\Instance
دوست عزیز امتحان کردم نشد
حسین خانی
دوشنبه 16 مرداد 1391, 17:39 عصر
با سلام
دوستانی که از سمت کلاینت نتیجه نمی گیرن ... باز بودن پورت SQL Server رو هم بررسی کنند.
واسه تستش هم میتونید فایروال سرور رو off کنید و نتیجه رو ببینید.
موفق باشید ... :لبخندساده:
arkia
یک شنبه 29 مرداد 1391, 23:22 عصر
با سلام
دوستانی که از سمت کلاینت نتیجه نمی گیرن ... باز بودن پورت SQL Server رو هم بررسی کنند.
واسه تستش هم میتونید فایروال سرور رو off کنید و نتیجه رو ببینید.
موفق باشید ... :لبخندساده:
اصلا تو لوکال هم نمیشه!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.