PDA

View Full Version : connetion string تحت شبکه



solmaz_zm
دوشنبه 14 خرداد 1386, 10:52 صبح
چه طوری می تونم یک connection string تحت شبکه بسازم به طوری که دیتابیس روی یک سیستم به عنوان سرور باشه و برنامه از روی چند سیستم دیگر اجرا شودتوسط connection string به دیتابیس روی سیستم دیگه متصل شود..ip را به صورت استفاده کنم....
ممنون

omid_Ahmadi
دوشنبه 14 خرداد 1386, 10:56 صبح
در خود ConnectionString، به جای اینکه آدرس LocalHost رو به عنوان سرور وارد کنید، آدرس کامپیوتری که دیتابیس روی اون قرار داره رو وارد کنید.

مثلاً در ConnectionString زیر به جای myServerAddress می تونید آدرس کامپیوتری که سرور هست رو وارد کنید:



Driver={SQL Server};Server=myServerAddress;Database=myDataBase ;Uid=myUsername;Pwd=myPassword;


موفق باشید.

solmaz_zm
دوشنبه 14 خرداد 1386, 11:05 صبح
اگر امکان داره لطفا یه مثال به صورت آدرس بزنید...یعنی یه جورایی یه آدرس کامیپوتری....

sm
دوشنبه 14 خرداد 1386, 11:25 صبح
این روشی که دوستمون بهش اشاره کردند روش خوبیه بشرط اینکه نام یا IP سرور رو از قبل بدونید و توی Connection String تنظیم کنید.
اما معمولا این شکلی نیست. ممکنه که نام یا IP سرور عوض بشه.... درست هم نیست که کاربرمون رو محدود کنیم که شما حتما باید با این IP یا این نام باشین.
یه روش بسیار راحت و مطمئن استفاده از ODBC Connection هست.
در این خصوص اگر جستجو کنید توی این فوروم مطالب زیادی گیر میاد.

موفق باشید

reza1357
دوشنبه 14 خرداد 1386, 11:40 صبح
یک راه دیگه هم هست که Connection String رو خالی بزارین و هنگامی که فرم لود میشه اون رو دستی تعریف کنید و یا حتی یک متغییر Public تعریف کنید و در هنگام لود شدن فرم این متغییر را به خاصیت Connection String بریزید اینجوری دیگه اگه حتی نام بانک اطلاعاتتون هم عوض بشه برای برنامه تون مشکلی ایجاد نمیکنه.

aidinwashere
دوشنبه 14 خرداد 1386, 14:53 عصر
یه Stored Procedure هست که نام تمام کامپیوتر های شبکه رو برمیگردونه, جناب ثباتی احتمالا آشنا هستن.

solmaz_zm
سه شنبه 15 خرداد 1386, 09:52 صبح
یک راه دیگه هم هست که Connection String رو خالی بزارین و هنگامی که فرم لود میشه اون رو دستی تعریف کنید و یا حتی یک متغییر Public تعریف کنید و در هنگام لود شدن فرم این متغییر را به خاصیت Connection String بریزید اینجوری دیگه اگه حتی نام بانک اطلاعاتتون هم عوض بشه برای برنامه تون مشکلی ایجاد نمیکنه.

اگه می شه یکم بیشتر توضیح بدین آخه من یه خورده تازه کارم...:ناراحت:

farazjoonam
سه شنبه 15 خرداد 1386, 10:40 صبح
من یه برنامه مثل همین که تو میخوای ساختم . به یاهو ID من PM بده اونجا سورسشو برات بفرستم

solmaz_zm
سه شنبه 15 خرداد 1386, 10:50 صبح
آیا نوشتن ip سرور به جای local hostکافی هست....



Public conn As New SqlConnection("Data Source=localhost;trusted_connection=true;database= salary")

aidinwashere
سه شنبه 15 خرداد 1386, 15:12 عصر
کلاینت ها اسمه سرور رو بدونن مگه کفایت نمیکنه؟

reza1357
چهارشنبه 16 خرداد 1386, 06:56 صبح
آیا نوشتن ip سرور به جای local hostکافی هست....



Public conn As New SqlConnection("Data Source=localhost;trusted_connection=true;database= salary")


بله نوشتن Ip یا نام کامپیوتر سرور کفایت میکنه در تمام فرم های برنامه از این متغییر میتونید استفاده کنید ولی بهتره متغیر رو از نوع رشته تعریف کنی چون اگه به جای کد نویسی از کنترل SqlConnection برای ارتباط استفاده کنی خاصیت ُString Connection اون باید از نوع String باشه که بتونی از این متغییر در کل برنامه استفاده کنی ولی اگه برنامه ات همیشه از کد نویسی برای برقراری ارتباط استفاده میکنید همین روش که بکاربردید صحیح است.

sm
چهارشنبه 16 خرداد 1386, 08:11 صبح
بهترین راه حلی که وجود داره و من مدتهاست ازش استفاده می کنم و هیچ مشکلی هم ندارم استفاده از ODBC Connection هست...
توی بخش کریستال ریپورت در این باره یکی دوتا پست هست که توضیح نسبتا کاملی دادم
اگه لینکش و پیدا کردم میزارم

موفق باشید

sm
چهارشنبه 16 خرداد 1386, 08:18 صبح
http://barnamenevis.org/forum/showpost.php?p=325299&postcount=4
http://barnamenevis.org/forum/showpost.php?p=322895&postcount=23
http://barnamenevis.org/forum/showpost.php?p=327213&postcount=37
http://barnamenevis.org/forum/showpost.php?p=329016&postcount=47
http://barnamenevis.org/forum/showthread.php?t=47287

موفق باشید

reza1357
چهارشنبه 16 خرداد 1386, 08:26 صبح
سرعت انتقال اطلاعات بین سرور و کلاینت ،این کنترل نسبت به کنترل اصلی بخصوص SqlConnection در حد بسیار پایینی است کنترلی که شما ازش استفاده میکنید مال مجموعه Office و بخصوص Access هست اگه بانک اطلاعاتی شما اکسس باشه بله ولی اگه مثلا Sql یا Oracle و غیره باشه بدرد نمیخوره.
موفق و پیروز باشید.

sm
چهارشنبه 16 خرداد 1386, 08:47 صبح
شما با تکیه بر چه مستند و منطقی اینو میگین؟
ممنون میشم اگه مستندی در این زمینه دارین برام بزارینش
اگر هم تست کردین میشه نتایجتون رو بگین؟

موفق باشید

reza1357
چهارشنبه 16 خرداد 1386, 09:31 صبح
چند جا اینو خوندم و بررسی کردم الان منبعش یادم نیست اگه پیدا کردم حتمن اینجا میزارم.

ولی کلا از نظر Ado.net مدیریت بانک های اطلاعاتی به سه دسته تقسیم میشوند:
1- مجموعه Office و بخصوص access
2- Sql Server
3- سایر مدیریتهای دیگه مثلا Oracle ، Foxpro و غیره
هر کدام از این مدیریتها دارای ابزارهای جهت اتصال با انها در Ado.net که در ورژن 2005 است، معرفی شده
مجموعه اول ابزار OdbcConnection
دومی هم معلومه SqlConnection
سومی هم OledbConnection

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

sm
چهارشنبه 16 خرداد 1386, 09:50 صبح
اما من همیشه بانکم SQL هست و از ODBC هم استفاده می کنم... تا الان هم نشده که با مشکل سرعت روبرو باشم یا کاربران گله کنند.
اما خوب چونکه SQL Connection رو ایجاد کردند شاید برتری هایی داشته باشه.
اما فکر کنم برای کارها و کاربران معمولی ODBC مشکلی نداشته باشه.

از بحث اصلی که مشکل دوستمون بود منحرف نشیم!
اگر هم دوستمون خواسته باشند که از oledb یا SQL Connection استفاده کنند، میتونند برای این منظور از یه فایل متنی یا از رجیستری ویندوز برای تغییرات مربوط به بانک استفاده کنند.

موفق باشید

solmaz_zm
چهارشنبه 16 خرداد 1386, 12:37 عصر
ممنون از همه دوستان..
من با sql کار می کنم چون خیلی باهاش راحت هستم...به زودی برنامم رو روی شبکه تست میکنم ببینم با ip کار می کنه یه نه...اگه نشد از روش های دیگری که دوستانم معرفی کردن استفاده می کنم..

بازم ممنون

sm
چهارشنبه 16 خرداد 1386, 12:42 عصر
این روش استفاده از ip موقعی خوبه که شما بدونید ip یا نام سرور چیه!
شما باید امکانی رو درنظر بگیرین که بشه این متغیر رو عوض نمود. درغیر اینصورت باید مرتب کد را ویرایش کنید.

موفق باشید

reza1357
چهارشنبه 16 خرداد 1386, 13:01 عصر
دوستان همانطور قبلا گفتم این متغییر تمام اجزاء اون رو میتونی با ایجاد یک فایل متنی یا باینری اقدام به تغییر تمام اجزاء ان کنید جالب اینجاست که از همین فایل متنی میتونید قفل نرم افزاری هم بسازید.

hmm
سه شنبه 05 تیر 1386, 14:22 عصر
این روش استفاده از ip موقعی خوبه که شما بدونید ip یا نام سرور چیه!
شما باید امکانی رو درنظر بگیرین که بشه این متغیر رو عوض نمود. درغیر اینصورت باید مرتب کد را ویرایش کنید.در سازمانهای بزرگ معمولا ip سرورهاشون عوض نمیشه بنابراین تقریبا همیشه ثابته
میتونید در برنامه نصاب برنامه ip سرور رو تعریف کنید تا در رجیستری اضافه بشه و همیشه برنامه از رجیستری مقدار رو بخونه

nima_8m
جمعه 07 تیر 1392, 13:15 عصر
سلام

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

کد اتصال به دیتابیس:

con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
Dim da As New OleDbDataAdapter("select * from t1 order by id asc ", con)
Dim ds As New DataSet
Dim ds_seke As New DataSet

nima_8m
دوشنبه 17 تیر 1392, 23:45 عصر
کسی میدونه چطوری میشه یه بانک اطاعاتی اکسس رو روی شبکه به اشتراک گذاشت تا برنامه ها تو شبکه به این بانک متصل شوند؟

nima_8m
سه شنبه 18 تیر 1392, 18:20 عصر
یعنی کسی تا حالا با اکسل برنامه تحت شبکه ننوشته؟!