PDA

View Full Version : تحت شبکه کردن برنامه با بانک اطلاعات sql server



mahmood_s
جمعه 01 خرداد 1388, 02:40 صبح
با سلام به اساتيد محترم


اگه ممكنه طرز نوشتن يك برنامه تحت شبكه با وي بي و بانك اطلاعاتي sql رو راهنمايي بفرماييد

فقط اگه ممكنه روش كار رو توضيح بديد و در صورت امكان يك مثال بذاريد

چه طوري ميتونم برنامه رو بنويسم و چه طوري و تو كدوم كامپيوتر بانك رو قرار بديم و چه طوري در برنامه sql اجازه دسترسي بديم و چگونه براي كامپيوترهاي ديگه برنامه رو نصب كنيم و تو شبكه تعريف كنيم


خواهشي كه دارم اينكه دوستان لطف كنن و مثل تاپيكهاي قبلي در مورد يك ابزار خاص فقط توضيح ندن مثل winsok اگه بشه توي يك مثال همگي كمك كنيم و قدم به قدم طرز نوشتن يه همچنين برنامه اي رو آموزش بديدم تا همه بتونن اطلاعات و راهنمايي كافي بدست بيارن

باز هم از همه ي دوستان تشكر ميكنم


اگه سوالي بود بفرماييد تا جواب بدم

mahmood_s
جمعه 01 خرداد 1388, 20:01 عصر
فكر كنم در اين زمينه تمامي دوستان استاد هستند و كسي مشكلي نداره

و

تمام اساتيد هم به خاطر مشغله كاري نميتونن راهنمايي بكنن


مشكلي نيست ما هنوز اميد داريم به راهنمايي

reza_mn
شنبه 02 خرداد 1388, 17:52 عصر
دوست عزیز ، کافیه شما استفاده از ms sql رو بلد باشین ، و بتونین از وی بی بهش متصل بشین . در اینصورت به هیچ کار اضافی دیگه ای نیازی نیست ، حتی Winsok.
شما در این رابطه یک کامپیوتر رو به عنوان سرور انتخاب میکنید ، و نرم افزار ms SQL رو روش نصب میکنی ، بانک اطلاعاتی رو روش میسازی ( یا اتچ میکنی )، بعد کارتون با سرور تموم شده.
برنامه ای که نوشتین رو کلاینتها نصب میکنید . آماده برای استفاده است .
نکته ای که اینجا میمونه ریزه کاریهای مربوط به کانکشنهای مربوط به SQL و استفاده از ADO تو وی بی هست که چندین بار تو انجمن در موردشون بحث شده ، باز توضیحی نیاز بود در خدمتیم.

mahmood_s
یک شنبه 03 خرداد 1388, 08:24 صبح
دوست عزیز ، کافیه شما استفاده از ms sql رو بلد باشین ، و بتونین از وی بی بهش متصل بشین . در اینصورت به هیچ کار اضافی دیگه ای نیازی نیست ، حتی Winsok.
شما در این رابطه یک کامپیوتر رو به عنوان سرور انتخاب میکنید ، و نرم افزار ms SQL رو روش نصب میکنی ، بانک اطلاعاتی رو روش میسازی ( یا اتچ میکنی )، بعد کارتون با سرور تموم شده.
برنامه ای که نوشتین رو کلاینتها نصب میکنید . آماده برای استفاده است .
نکته ای که اینجا میمونه ریزه کاریهای مربوط به کانکشنهای مربوط به SQL و استفاده از ADO تو وی بی هست که چندین بار تو انجمن در موردشون بحث شده ، باز توضیحی نیاز بود در خدمتیم.

با تشكر از شما


در مورد sql نسبتا مشكلي ندارم
د رمورد stringconction در adodc و ارتباطش با sql هم فكر كنم مشكلي نباشه
من اين جوري متصل ميشم


constr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbusers ;Data Source=192.168.0.1"

به نظر شما همين كافيه

Naghibi
یک شنبه 01 شهریور 1388, 11:17 صبح
آره این دستور درسته. فقط من زمانی که برنامه رو رو کلاینت نصب کردم با همین دستور برنامه نمی تونست به سرور وصل بشه بعد از کلی دردسر فهمیدم که کاربر روی کلاینت علاوه بر تعریف روی سرور، باید خاصیت owner روی Database برنامه داشته باشه. این نکته رو حتما یادت نشه.

j.farazani
یک شنبه 01 شهریور 1388, 11:43 صبح
پس ديگه مشكل كجاست عزيز ؟

HjSoft
دوشنبه 02 شهریور 1388, 13:10 عصر
يه سوال اين عبارت كافيه براي اتصال يا بايد نام Instance هم بزنيم ؟

Data Source=192.168.0.1"

Naghibi
سه شنبه 03 شهریور 1388, 10:59 صبح
فرقی نداره هم می تونه با نام instance و هم می تونه با آدرس IP به شبکه وصل بشه

mahmood_s
سه شنبه 03 شهریور 1388, 12:10 عصر
آره این دستور درسته. فقط من زمانی که برنامه رو رو کلاینت نصب کردم با همین دستور برنامه نمی تونست به سرور وصل بشه بعد از کلی دردسر فهمیدم که کاربر روی کلاینت علاوه بر تعریف روی سرور، باید خاصیت owner روی Database برنامه داشته باشه. این نکته رو حتما یادت نشه.

اگه امكان داره در مورد owner توضيح بديد

Naghibi
سه شنبه 03 شهریور 1388, 13:52 عصر
وقتی کاربر خاصیت owner نداشته باشه خطای Login Failed میده و به بانک وصل نمیشه. برای جلوگیری از این خطا اول اون کاربر رو تو خود SQL تعریف کنی (تو SQL 2000 باید از قسمت Security>Login استفاده کنی) بعد توی پوشه دیتابیس خودت اون کاربر رو اضافه می کنی و خاصیت db_owner اون رو فعال می کنی.("Database Name">Users>New Database User)

mahmood_s
سه شنبه 03 شهریور 1388, 20:02 عصر
وقتی کاربر خاصیت owner نداشته باشه خطای Login Failed میده و به بانک وصل نمیشه. برای جلوگیری از این خطا اول اون کاربر رو تو خود SQL تعریف کنی (تو SQL 2000 باید از قسمت Security>Login استفاده کنی) بعد توی پوشه دیتابیس خودت اون کاربر رو اضافه می کنی و خاصیت db_owner اون رو فعال می کنی.("Database Name">Users>New Database User)


تعريف ip كاربر يا اسم كاربر

Naghibi
چهارشنبه 04 شهریور 1388, 09:54 صبح
خودش Search داره اسم کاربر یا گروهی رو که بخوای از روی شبکه پیدا می کنه نیازی به IP نیست

HjSoft
جمعه 06 شهریور 1388, 11:17 صبح
ميشه يكم بيشتر توضيح بدين. براي كانكت شدن كلاينت ما نياز داريم كه كاربر تعريف شده باشه يا نه ؟ . يعني ما ميتونيم قبل از ارائه برنامه به مشتري كاربر ها رو تعريف كنيم و مشتري فقط بياد و آيپي سرور رو بده و وصل بشه ؟
يه سوال ديگه User SA چيست . من بدون اون هم روي سيستم خودم به sql وصل مي شم ، پس چه نيازي به اون هست ؟

HjSoft
جمعه 06 شهریور 1388, 13:28 عصر
لطفا اگر ميشه ، اين سوالات رو كه دوستمون مطرح كردن رو جواب بدين .

كدوم كامپيوتر بانك رو قرار بدي


چه طوري در برنامه sql اجازه دسترسي بديم و چگونه براي كامپيوترهاي ديگه برنامه رو نصب كنيم و تو شبكه تعريف كنيم

Naghibi
شنبه 07 شهریور 1388, 09:20 صبح
اگه منظورتون از دادن سطح دسترسی ، دادن مجوز به کاربر روی بانک اطلاعاتی است باید وقتی کاربر رو تو بانک اطلاعاتی تعریف کردین بعدش روی اسم کاربر Properties بگیرین و هر مجوزی رو که خواستین بهش بدین.

HjSoft
شنبه 07 شهریور 1388, 10:35 صبح
ممنون از اينكه پاسخ دادين . اما نه ، ما دونوع اتصال به ديتابيس داريم ، يكي با استفاده از يوزر Sa و ديگري بدون استفاده از يوزر ، خوب فرق اين دوتا چيه ؟ كدام بهتره ؟ ، اما اگر ما نيازمنديم با يوزر sa به سرور وصل بشيم ، خوب همه ميتوننن با همين يوزر وصل بشن يا نه و بايد براي هر كدوم يك يوزر تعريف بشه ؟ و اگر آره ، ميتونيم اين يوزر ها رو قبل از تحويل برنامه به كاربر براش تعريف كنيم يا نه ؟

hamidrah
دوشنبه 23 شهریور 1388, 10:00 صبح
سلام
لطفا بیشتر در مورد owner توضیح بدید منم با خطای Login Failed مواجهم
من یه برنامه دفترچه تلفن نوشتم که بانکش sql و روی سرور است مشکلم اینجاست که از روی کامپیوترهایی که admin هستند یا سطح دسترسی بیشتری رو admin بهشون داده(مثل خودم) می تونند به بانک وصل شوند ولی بقیه که سطح دسترسی محدودتری دارند نمی تونند لطفا راهنماییم کنید.:متفکر:

mahmood_s
سه شنبه 24 شهریور 1388, 07:34 صبح
چند راه ديگه من پيدا كردم

يكي اينه كه در كامپيوتر Client بياين ip اون كامپيوتر رو كه sql روش نصب هست رو ريجستر كنيد

hamidrah
چهارشنبه 25 شهریور 1388, 10:52 صبح
سلام آقا محمود
عکس ها نشاندهنده تنظیمات در SQLSERVER است که SQLSERVER روی سرور نصب شده
و روی کلاینت SQLSERVR نداریم میشه واضح تر توضیح بدین!؟لطفا اگه ممکنه راه های دیگه رو هم بگین.
راستی من خیلی وقته تو پست های مختلف این مشکل رو سؤال کردم و کسی جوابم نداد ولی با اطلاعاتی که از جستجو در این سایت و پست کاربر نقیبی که گفته بودن خطای
Login Failed به علت تعریف نشدن کاربر در SQL است و همچنین جستجو در سایت های دیگر و تعریف کاربران در SQL تونستم مشکل رو حل کنم و الان همه کلاینت ها به SQL دسترسی دارند.
با تشکر

mahmood_s
پنج شنبه 26 شهریور 1388, 00:00 صبح
سلام آقا محمود
عکس ها نشاندهنده تنظیمات در SQLSERVER است که SQLSERVER روی سرور نصب شده
و روی کلاینت SQLSERVR نداریم میشه واضح تر توضیح بدین!؟لطفا اگه ممکنه راه های دیگه رو هم بگین.
راستی من خیلی وقته تو پست های مختلف این مشکل رو سؤال کردم و کسی جوابم نداد ولی با اطلاعاتی که از جستجو در این سایت و پست کاربر نقیبی که گفته بودن خطای
Login Failed به علت تعریف نشدن کاربر در SQL است و همچنین جستجو در سایت های دیگر و تعریف کاربران در SQL تونستم مشکل رو حل کنم و الان همه کلاینت ها به SQL دسترسی دارند.
با تشکر

روش اول همون طور كه خودتون گفتيد بايد روي سيستم كلاينت SQLSERVER نصب باشه


اما در روش دوم بايد شما ipسيستم كلاينت رو براي سيستم سرور معرفي و اجازه دسترسي بدين



مي تونيد در قسمت login name اين عبارت رو قرار بديد

NT AUTHORITY\NETWORK SERVICE

makh000f
پنج شنبه 26 شهریور 1388, 18:40 عصر
با این کار باید جواب گرفته باشین !!!!!!

mahmood_s
جمعه 27 شهریور 1388, 12:42 عصر
با این کار باید جواب گرفته باشین !!!!!!

بله

يك برنامه تحت شبكه نوشتم كه فعلا داره كارميكنه

HjSoft
جمعه 27 شهریور 1388, 14:36 عصر
اين رو در چه صورت بايد انجام داد ؟
چون من هر چه قدر در يك سيستم بدون شبكه تست ميكنم ، ارور ميده . در ضمن نميشه اين رو از طريق كد نويسي انجام دارد ؟
و سوال آخر اينكه همين رو بزنيم هر تعداد كاربر مي تونن ، Login بشن ؟

mahmood_s
یک شنبه 29 شهریور 1388, 05:24 صبح
مي تونيد در قسمت login name اين عبارت رو قرار بديد

NT AUTHORITY\NETWORK SERVICE

د رمورد قسمت بالا بايد حتما به شبكه وصل باشيد تا همه كاربران به sql دسترسي داشته باشند

hamidrah
سه شنبه 31 شهریور 1388, 08:05 صبح
سلام
راهی بیاین روی انجام این کار از طریق کد نویسی صحبت کنیم
کسی اطلاعاتی راجع به این کار داره؟:متفکر:

majjjj
سه شنبه 31 شهریور 1388, 13:25 عصر
ببینید دوستان ما دونوع سطح دسترسی به یک sql سرور داریم یکی از طریق اعتبار سنجی توسط sql و دیگر
توسط یک یوزر ویندوزی user sa در sql server2000 بصورت پیش فرض فاقد پسورد هست و یک یوزر sql محصوب میشه اما در ورژنهای بالاتر اینجوری نیست مثلا روی 2008 شما میتونید موقع نصب تنظیم کنید که فقط یوزرهای sql مجاز به استفاده از سرور باشن و یوزرهای ویندوزی مجاز نباشن
اینکه چرا دو نمونه سطح دسترسی یا پرمیژن تعریف میشه بخاطر ایجاد امنیت هست مثلا چون مجوز سطح دسترسی ویندوز در داخل sql تعریف شده پس امنیت بیشتری داره تا برنامه هایی که درون خودشون یوزر و پسورد رو قرار میدن
اما بخاطر راحتی کار و اینکه برنامه هایی که در شبکه کار میکنن احتیاجی نباشه برای هر کامپیوتر یک یوزر در sql server تعریف بشه کانکشن رو بصورت sql تعریف میکنن تا ستاپ برنامه روی هر کامپوتر شبکه به راحتی نصب و اجرا بشه
در ضمن روی یوزر sa پسورد بزارین تا افراد غیر مجاز نتونن تو sql نفوذ کنن

ashvazdangah
شنبه 21 آذر 1388, 17:36 عصر
سلام
یک گروه کامپیوتر به هم شبکه شده اند و روی همه آنها sql server 2000 نصب شده است
من میخواهم از طریق یکی از کامپیوتر ها data base به data base یک سیستم دیگر دسترسی پیدا کنم و از آن استفاده کنم
لطفا اگر امکان دارد مراحل اینکار را دقیقا بگویید
ممنونم

alirezah
چهارشنبه 09 دی 1388, 21:58 عصر
سلام دوستان
اين كار بسيار ساده است

اين كدها در برنامه بنويسيد
Public Const SCnn = "Provider=MicroSoft.Jet.Oledb.4.0;Data Source"
Public Cnn As ADODB.Connection

Dim CNST_CONNECTION_STRING As String

CNST_CONNECTION_STRING = "FILE NAME=" & App.Path & "\inv_center.udl"
If Cnn.State <> 1 Then
Cnn.ConnectionString = CNST_CONNECTION_STRING
Cnn.ConnectionTimeout = 30
Cnn.CommandTimeout = 120
Cnn.CursorLocation = adUseClient
Cnn.Open
End If
سپس فايل با پسوند udl را در مسير برنامه قرار دهيد.
اين كد به طور اتوماتيك سرور را پيدا نموده و اتصال به بانك مورد نظر را مهيا ميسازد.
جهت پيدا نمودن سرور كافي است روي فايل udl مورد نظر دبل كليك نماييد تا فرم مورد نظر را ويندوز باز نمايد. سپس پسورد و سرور شبكه و جدول مورد نظر را انتخاب نماييدو سپس سيو كنيد مابقي كار اتوماتيك انجام ميشود.اين نمونه حرفه اي ترين نحوه اتصال از طريق شبكه به اس كيو ال ميباشد.من جهت شركتهاي بزرگ از اين طريق استفاده مينمايم.چنانچه مايل بوديد برايتان يك كد به عنوان مثال بگذارم.
اميد وارم موفق باشيد.

juve2008
سه شنبه 15 دی 1388, 11:59 صبح
سلام آقای علیرضا
این فایلی که گذاشتین رو دانلود کردم.چطوری از اون تو برنامه استفاده کنم و به برنامه لینکش بدم.
منتظر پاسخ هستم
تشکر ......

ghasedak_zb
سه شنبه 09 شهریور 1389, 12:14 عصر
آره این دستور درسته. فقط من زمانی که برنامه رو رو کلاینت نصب کردم با همین دستور برنامه نمی تونست به سرور وصل بشه بعد از کلی دردسر فهمیدم که کاربر روی کلاینت علاوه بر تعریف روی سرور، باید خاصیت owner روی Database برنامه داشته باشه. این نکته رو حتما یادت نشه.

سلام من یه برنامه تحت شبکه نوشتم اما روی سرور جواب می ده و روی کلاینت ها نه پیغام Timeout expired میده به دنبال راه حل بودم که این تاپیک را دیدم من هیچ تنظیم خاصی روی دیتا بیس ندادم و فقط یه کاربر پیش فرض خودشه را داره اگه ممکنه راهنمایی کنید چه شکلی کابران رو روی سرور تعریف کنم و خاصیت owner را بهشوم بدم البته شبکه ما یه شبکه ساده هستش و سرور به اوش شکل خاصش نیست به صورت قراردادی یکی از کامپیوترها را سرور تعریف کردیم و دیتابس روی اون نصب شده و برنامه انجا جواب میده خواهشا کمک کنید.

nima_8m
جمعه 12 شهریور 1389, 15:47 عصر
سلام دوستان
اين كار بسيار ساده است

اين كدها در برنامه بنويسيد
"=Public Const SCnn = "Provider=MicroSoft.Jet.Oledb.4.0;Data Source
Public Cnn As ADODB.Connection
Dim CNST_CONNECTION_STRING As String
"CNST_CONNECTION_STRING = "FILE NAME=" & App.Path & "\inv_center.udl
If Cnn.State <> 1 Then
Cnn.ConnectionString = CNST_CONNECTION_STRING
Cnn.ConnectionTimeout = 30
Cnn.CommandTimeout = 120
Cnn.CursorLocation = adUseClient
Cnn.Open
End If

سپس فايل با پسوند udl را در مسير برنامه قرار دهيد.
اين كد به طور اتوماتيك سرور را پيدا نموده و اتصال به بانك مورد نظر را مهيا ميسازد.
جهت پيدا نمودن سرور كافي است روي فايل udl مورد نظر دبل كليك نماييد تا فرم مورد نظر را ويندوز باز نمايد. سپس پسورد و سرور شبكه و جدول مورد نظر را انتخاب نماييدو سپس سيو كنيد ما بقي كار اتوماتيك انجام ميشود.اين نمونه حرفه اي ترين نحوه اتصال از طريق شبكه به اس كيو ال ميباشد.من جهت شركتهاي بزرگ از اين طريق استفاده مينمايم.چنانچه مايل بوديد برايتان يك كد به عنوان مثال بگذارم.
اميد وارم موفق باشيد.
با سلام و ممنون از راهنمایی شما
اگه بانک ما اکسس باشه فقط پرو وایدر تغییر میکنه چطوری روی کلاینت از udl استفاده کنیم شما درست میگید به نظر منم استفاده از udl میتونه یکی از بهترینا باشه البته ODBC هم گزینه خوبی هستش
منتظر جوابتون هستم

somayeh66
پنج شنبه 18 شهریور 1389, 04:40 صبح
سلام.
خوب دوستان چرا کسی یه نمونه کد عملی آپلود نمیکنه تا همه استفاده کنن ؟

nima_8m
جمعه 19 شهریور 1389, 10:51 صبح
سلام
اینجا یه دونه پروژه تقریبا کامل گذاشتم
http://www.barnamenevis.org/showthread.php?t=244000
پست6
فقط کافی UDL رو تنظیم کنی بانک هرجا میخواد باشه

baamol
شنبه 14 اسفند 1389, 11:09 صبح
سلام.برنامه پایگاه داده sql server رو میخوام تحت شبکه اجرا کنم.اما خطای bd net lib conection open میده.لطفا راهنمایی بفرمایید

ali190
شنبه 14 اسفند 1389, 21:20 عصر
دوستان برای استفاده از sql srever در شبکه از چه نسخه ای باید استفاده کنیم؟

ali190
چهارشنبه 18 اسفند 1389, 18:06 عصر
سلام
دوستان ، جواب سئوال بالام رو بدست آوردم ، باید از نسخه Enterprise استفاده کرد
فقط یه سئوال مهم دیگه :
برای اینکه بتونیم از sql server تحت شبکه استفاده کنیم ویندوز xp جواب میده یا باید از ویندوز WinServer200X استفاده نمود؟
ممنون و متشکر
یاعلی

javadt
پنج شنبه 19 اسفند 1389, 18:41 عصر
من توي xp تست كردم جواب داده

ali190
پنج شنبه 19 اسفند 1389, 20:47 عصر
سلام
ممنون از شما
میشه بگید با چند کاربر تست کردید؟

javadt
پنج شنبه 19 اسفند 1389, 23:21 عصر
با 4 كاربر يكي هم كه سرور بود
روي هر 5 تاش xp2006 نصب بود

mamoor
جمعه 03 شهریور 1391, 13:04 عصر
سلام خدمت همه ... آقا لطفا از اول توضیح بدید که دقیقا باید از کجا شروع کنیم و به کجا ختم مثل فایل های اموزشی همراه با تصویر. لطف اگر می شود فایلی آموزشی برای آن قرار دهید.خیلی ممنون

2delboro
پنج شنبه 17 اسفند 1391, 19:16 عصر
سلام خدمت همه ... آقا لطفا از اول توضیح بدید که دقیقا باید از کجا شروع کنیم و به کجا ختم مثل فایل های اموزشی همراه با تصویر. لطف اگر می شود فایلی آموزشی برای آن قرار دهید.خیلی ممنون

نظر ایشون تایید میشه اگه این جوری با عکس بزارید خیلی عالی میشه