PDA

View Full Version : ارتباط شبکه ای برنامه



mohammad-gh
چهارشنبه 29 خرداد 1387, 10:39 صبح
با سلام ، ابتدا باید عرض کنم که من در هیچ جای فروم جوابی به وضوح پیدا نکردم برای همین خواهشا نفرمایید تکراری است. و اما سوال :
من برنامه ام با vs2005 تمام شده در جایی از تنظیمات آن مشخص کرده ام که connectionstring برنامه ام را یا به صورت local است یا به یک ip خاص تغییر دهم و حال و با توجه به اینکه بانکم در sqlserver2000 نوشته شده است :
1- آیا در تمام کامپیوترهایی که به صورت LAN شبکه اند نیاز به نصب نسخه ای از sqlserver است یا فقط در کامپیوتر server آن را نصب خواهم کرد و بقیه توسط همان ip در کانکشن استرینگشان با بانک ارتباط برقرار می کنند.
2- اگر sql server 2000 را فقط در کامپیوتر سرور نصب خواهم کرد چه نسخه ای وبا چه تنظیماتی نصب خواهد شد.-مثلا تنظیم remote از کجا انجام می شود و ...
3-آیا نیاز به تنظیمات دیگری- مثلا در کانکشن استرینگ است- یا نه
امیدوارم با توجه به اینکه این مشکل برای من بسیار حیاتی است پاسخی به آن داده شود.

marzban
چهارشنبه 29 خرداد 1387, 11:20 صبح
شما نیازی به نصب SQLSERVER در همه کامپیوتر ها ندارید فقط کافی است آدرس سرور خود را در کانکشن استرینگ وارد نمایید

NewFoxStudent
چهارشنبه 29 خرداد 1387, 11:25 صبح
شما باید SQLServer2000 رو روی سرور نصب کنید
بعد برای اتصال به اون دیتا بیس میتونید از نام سرور و یا آی پی اون استفاده کنید در Connection String بجای Data Source=Local از نام سرور یا آی پی اون استفاده کنید

NewFoxStudent
چهارشنبه 29 خرداد 1387, 11:26 صبح
هیچ تنظیم دیگه ای نیاز نداره البته در حالت عادی

mohammad-gh
چهارشنبه 29 خرداد 1387, 13:31 عصر
ممنون و متشکر از جواب سریعتون ولی آیا نسخه devoleper اس کیو ال برای این کار مناسب است.
تنظیم remote برای این کار لازم نیست.

saman_itc
چهارشنبه 29 خرداد 1387, 14:44 عصر
منم همین مشکل دارم با accsses ولی اولین pc که به بانک متصل میشه حق استفاده کردن داره
میشه پوشه بانک share کرد؟

NewFoxStudent
چهارشنبه 29 خرداد 1387, 15:34 عصر
منم همین مشکل دارم با accsses ولی اولین pc که به بانک متصل میشه حق استفاده کردن داره
میشه پوشه بانک share کرد؟

شما اگه پوشه دیتابیس رو Shair نکنید نمیتونید بهش کانکت بشید؟

علیرضا مداح
چهارشنبه 29 خرداد 1387, 15:45 عصر
سلام دوست عزیز ،
شما میتوانید بر روی سرور نسخه Enterprise مربوط به SQL Server 2005 را نصب کرده و بر روی کلاینت ها تنها نسخه SqlServer Express را نصب کنید ،
توحه کنید که نسخه Developer برای کار به عنوان سرور پیشنهاد نمیشود و بهتر است از نسخه Enterprise جهت سرور استفاده نمایید که آن نیز مستلزم داشتن سیستم عاملی همچون Windows Server 2003 میباشد ،/

saman_itc
چهارشنبه 29 خرداد 1387, 17:43 عصر
آقای مداح و دوستان نظرتون راجب مشکل من و دستوری که برای این مشکل باید بنویسم راهنمایی می کنید!!!

raravaice
چهارشنبه 29 خرداد 1387, 18:01 عصر
منم همین مشکل دارم با accsses ولی اولین pc که به بانک متصل میشه حق استفاده کردن داره

access برای حالت تک کاربری هست یعنی در هر لحظه 1 اتصال مولتی کاربر نمی تونی استفاده کنی.
Connection ها رو نزار باز بمونه تا بقیه هم بتونه استفاده کنن.

موفق باشید

NewFoxStudent
چهارشنبه 29 خرداد 1387, 18:27 عصر
تو دیتابیس اکسس در هر لحظه فقط یک کاربر میتونه اتصال داشته باشه
فکر نمیکنم راهی وجود داشته باشه

saman_itc
چهارشنبه 29 خرداد 1387, 22:05 عصر
دوستان دیگه من دارن از همین روش استفاده میکنن
اقای raravaice (http://barnamenevis.org/forum/member.php?u=37086) میفرمایند فقط یه نفر میتونه استفاده منه پس برنامه دوستم میتونه خطا داشته باشه؟؟؟
در صورتی که اینطور نیست!!!!!!!!!!!

ali_md110
پنج شنبه 30 خرداد 1387, 00:48 صبح
برنامه هایی که از اکسس بعنوان دیتابییس استفاده میکنن در صورت باز بودن کانکش برنامه اجازه اجرای برنامه رو به کاربرهای دیگه نمیده
یک نمونه از کدهای برنامتو بزار

mohammad-gh
پنج شنبه 30 خرداد 1387, 01:29 صبح
من كه واقعا گيج شدم، اگر كفته آقاي مداح (مدير بخش) درست باشد، پس يعني با sql2000 نمی شود به صورت شبکه ای کارکرد.ویندوز سرور و کلاینت ها XP است نمی شود که به خاطر برنامه تمام ویندوزها را تغییر داد.
لطفا آقای مداح عزیز و سایر دوستان، یک راه حل عملی پیشنهاد دهید تا احساس نکنم این همه مدت در توهم بوده ام.

tc1000
پنج شنبه 30 خرداد 1387, 01:52 صبح
sql server رو روی سرور نصب کن نسخه Enterpirse رو بعد بصورت کاستومایز اون رو نصب کن و در موقع که میپرسه که یوز پس Sql چی باشه شما همرو غیر فعال کن و و یه پسوردsa ازت میپرسه اونو بده بعد ازت سئوال میشه که چند کاربر میخوای به sql دسترسی پیدا کنند شماگزینه پایینی رو انتخاب میکنی و عدد 500 رو بزن و نصب رو ادامه بده
نیازی به شیر کردن و ... این حرفها نیست
با یه ip که به کرت شبکه اون میدی میتونی هم ریموت مدیریتش کنی و هم تمام یوزرهات بهش وصل شن

raravaice
پنج شنبه 30 خرداد 1387, 09:54 صبح
دوستان دیگه من دارن از همین روش استفاده میکنن

احتمالا یا دارن جادو میکنن یا :


Connection ها رو نزار باز بمونه تا بقیه هم بتونه استفاده کنن.

-----------------------------------------------------------------------------------------

اقای raravaice (http://barnamenevis.org/forum/member.php?u=37086) میفرمایند

ما نفرمودیم ، شرکت معظم مایکروسافت فرموده اند.;)



پس يعني با sql2000 نمی شود به صورت شبکه ای کارکرد.ویندوز سرور و کلاینت ها XP است نمی شود که به خاطر برنامه تمام ویندوزها را تغییر داد.

آقای مداح چنین چیزی نگفته، بیشتر دقت کن و بیشتر تحقیق کن تو این زمینه

موفق باشید

mohammad-gh
پنج شنبه 30 خرداد 1387, 10:10 صبح
ببخشید ، ولی نسخه enterprise همان طور که خود شما هم بهتر از من می دانید فقط بر روی ویندوز سرور قابل نصب است.
خواهشا جواب قطعی بدهید که می شود با sql2000 در ویندوز Xp به صورت شبکه ای کار کرد.
باز هم ممنون از توجهتون

saman_itc
پنج شنبه 30 خرداد 1387, 10:13 صبح
تو sql2000 لازم نیست بانک ببندیم؟

raravaice
پنج شنبه 30 خرداد 1387, 12:36 عصر
خواهشا جواب قطعی بدهید که می شود با sql2000 در ویندوز Xp به صورت شبکه ای کار کرد.

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


تو sql2000 لازم نیست بانک ببندیم؟

ببین توی Access در هر لحظه فقط میشه 1 کانکتشن باز کرد ولی توی sqlserver به خاطر مسئله شبکه در 1 لحظه میتونی چندین کانکتشن باز داشته باشی و در هر دو حالت استفاده اگر کانکتشن ها رو سریع ببندی لطف بزرگی در حق برنامت و منابع حافظه کردی.


موفق باشید

mohammad-gh
پنج شنبه 30 خرداد 1387, 13:03 عصر
خوب آقای raravaice عزیز من 3 روز تمام روی این مشکل وقت گذاشته ام و بعد این سوال رو مطرح کردم ، اصلا اگر به صورت عملی روش کار نکرده باشم چطور می تونم اظهار نظر و سوال مطرح کنم.
پس خواهشا اگر واردید این صحبتتون رو تکمیل کنید.

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

raravaice
پنج شنبه 30 خرداد 1387, 13:19 عصر
محمد جان نیاز به انجام کار خارق العاده ای نیست.
شما موقع نصب Sql برای کاربر sa پسورد تعیین کن و بعد از نصب اگر نیاز داشتی براش User جدید بساز و از طریق IP و user , password که ساختی کانکتشن استرینگ رو تعریف کن که دیتا از روی اون PC خونده بشه!
چون در حالت شبکه و ریموت از اهراز هویت window نمیتونی برای اتصال به دیتا بیست استفاده کنی.

موفق باشید

mohammad-gh
پنج شنبه 30 خرداد 1387, 14:00 عصر
باور کن من همه این موارد رو انجام دادم :
1-نسخه Devolper رو بر روی Xp نصب می کنم
2-برای sa پسورد می گذارم
3- از طریق ip می خواهم به کامپیوتر سرور وصل شوم
4-تمام اطلاعات را در کامکشن استرینگ می آورم.
برنام من بدون setup است.

raravaice
پنج شنبه 30 خرداد 1387, 15:27 عصر
خیلی مشکلات میتونه سره راه باشه.
1.IP سیتمی که SQL Server روش نصب هست رو از Client بیا Ping بگیر ببین دیده میشه.
2.از سمت Client تست کن ببین میتونی با Enterprise Manager سرور رو ببینی.
3.اگر مورد 1 و 2 درست بود پس مشکل از Connection String هست. اینجا رو ببین http://www.connectionstrings.com/

4.اگر بازم درست نشد موضوع رو توی تالار SQL اعلام کن دوستان اونجا راهنماییت کنن.

موفق باشی

tc1000
پنج شنبه 30 خرداد 1387, 16:41 عصر
یه موضوع ساده رو چرا انقدر می پیچونی تعجب میکنم چرا شما نتونیستید این رو درست کنید
کانفیگ شبکه رو ببین
همونطور که raravaice گفته عمل کن

mohammad-gh
پنج شنبه 30 خرداد 1387, 22:26 عصر
آقای tc1000 من این مسئله رو نپیچوندم بلکه خودش در این موقعیت بد و ضروری پیچونده شده.
آقای raravaice ، شبکه من در حالت عادی خوب کار می کنه ما همه کار های خودمون رو در موسسه با آن انجام میدهیم، تمام آدرسها به هم ping می شوند و آدرس سرور هم از کلاینت، فقط:

از سمت Client تست کن ببین میتونی با Enterprise Manager سرور رو ببینی.

من این حالت رو نمی دونم چطور تست کنم، شاید هم منظورتون رو خوب نفهمیدم.
در ضمن این هم کانکشن استرینگ من:


Dim objConnection As New SqlConnection _
("workstation id='" & ips & "';database=fardabank;user id=sa;password=123 ;type system version=sql server 2000")

که من ips رو از یک فایل متنی می گیرم.

saman_itc
جمعه 31 خرداد 1387, 01:47 صبح
از سمت Client تست کن ببین میتونی با Enterprise Manager سرور رو ببینی.

تو sql 2000اگه Client موقع اتصال به سرور Accsses Deny مشکلش چی؟
من یه بار برنامه رو به صورت سرور و یه بار به صورت کلاینت رو دو تا سیستم تحت شبکه WorkGrop نصب کردم

NewFoxStudent
شنبه 01 تیر 1387, 09:44 صبح
شما کانکشن استرینگ رو اینطوری تغییر بده یه بار امتحان کن
ip رو هم تو رشته دستی وارد کن به جای گرفتن از فایل ببین کا میکنه یا نه


"Data Source=(ServerName OR IP);Initial Catalog=(DataBaseName);User ID=sa;Password=123;Connect TimeOut = 50"

mohammad-gh
شنبه 01 تیر 1387, 12:33 عصر
آقا امتحان کردم درست نشد

از سمت Client تست کن ببین میتونی با Enterprise Manager سرور رو ببینی.

این موضوع هم تست شد درسته.
این هم پیغام خطایی که رفع نمی شه:

NewFoxStudent
شنبه 01 تیر 1387, 13:27 عصر
یه سری به این لینک بزن
تنظیماتش رو خوب بخون
http://hightechprogramming.blogfa.com/post-12.aspx

NewFoxStudent
شنبه 01 تیر 1387, 13:30 عصر
احتمالا مشکلتون به خاطر عدم انتخاب Allow Remote Connection To this Server برای سرورتونه

mohammad-gh
شنبه 01 تیر 1387, 17:54 عصر
احتمالا مشکلتون به خاطر عدم انتخاب Allow Remote Connection To this Server برای سرورتونهببخشيد اين تنظيم در كجاي sql2000 انجام مي شود.
اگر منظور تيك اين ايتم در برگه connection قسمت config است انجام داده ام.
در ضمن آقاي fox لينكي كه ادرس داده بوديد در مورد sql2005 توضيح مي داد.
ممكن است مشكل از كانكشن استرينگ من باشد.