PDA

View Full Version : اتصال به SQl server در برنامه Client/server(البته در ADO)



pan65ir
شنبه 01 دی 1386, 23:31 عصر
من یک بر نامه دارم که با پایگاه داده MS SQL Server 2000
کار میکنه اگر بخوام روی چهارکامپیوتر که باهم به صورت workgroup شبکه هستندو از ویندوز xp استفاده میکنن کار کننه چطوری میتونم از خاصییت client/server
SQL
استفاده کنم و بر نامه ها رو روی هر 4 کامپیوتربه SQL Server سرویس دهنده(server) متصل کنم

vcldeveloper
یک شنبه 02 دی 1386, 00:14 صبح
قبلا توضیح داده شده؛ کار خاصی لازم نیست انجام بدی، SQL Server رو روی یکی از سیستم ها نصب کن و برنامه ات را روی سایر سیستم ها، با استفاده از IP Address کامپیتری که روش SQL Server نصب کردی و username\password کاربر می تونی به سرور متصل بشی. این اطلاعات مربوط به IP و Username\password را در خصوصیت ConnectionString وارد میکنی.

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

pan65ir
یک شنبه 02 دی 1386, 00:24 صبح
چطوری و از کجا این خصوصیت رو وارد کنم

dkhatibi
یک شنبه 02 دی 1386, 08:04 صبح
یک AdoConnection بر روی فرم قرار دهید. در قسمت پروپرتی اون می تونید ConnectionString را ببینید. در این قسمت Provider 1.1 Ms SqlServer را انتخاب نمایید و بع هم Next را کلیک کنید. در پنجره ی بعدی اطلاعات مربوط به User و Pass ملاحظه می کنید. نام دیتابس رو هم اضافه نمایید.....

البته اینا همش به صورت استاتیک هست. برای اینکه انعطاف روی تغییر Ip داشته باشد تو سایت مطالب زیادی هست. مطالعه بفرمایید.

pan65ir
یک شنبه 02 دی 1386, 10:54 صبح
من اینا رو بلدم فقط می خوام connection string رو به صورت دستی داخل فایل txt بنویسم.اگر ممکنه همه چیزایی رو که باید داخل این txt باشه رو برای من بنویسید(البته اجزای در شبکه این فایل برام خیلی مهم است)
ممنون

MShirzadi
یک شنبه 02 دی 1386, 13:21 عصر
کدش میشه :


SqlConnectin1.ConnectionString = "Data Source=.;Initial Catalog=Test;User ID=sa;Password=123"

pan65ir
یک شنبه 02 دی 1386, 13:49 عصر
این در مورد adoconnection هم جواب میده

MShirzadi
یک شنبه 02 دی 1386, 14:08 عصر
من نمی دونم این سئوال بود یا که تذکر بود
اگر سئوال بود باید بگم به احتمال زیاد آره
و لطف کنین جملات رو واضح بیان کنید

pan65ir
یک شنبه 02 دی 1386, 15:14 عصر
من فکر میکنم باید یکم بیشتر توضیح بدم
من یک برنامه نوشتم که روی اون فقط componnent های
ADOConnection و datasource و adotable و dbgrid گذاشتم وبا اینها روی کامپیوتر خودم که به هیچجا هم شبکه نیست به SqlServer2000 وصل شدم این برنامه وقتی که اجرا میشه مقدار ADOconnection.connectionstringرو از داخل فایل txt که حاوی این اطلاعات هست:
(Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=paperless;Data Source=smart;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=smart;Use Encryption for data=False;Tag with column collation when possible=False ) بر میداره.
حالا من میخوام همین بر نامه رو روی چهارکامپیوتر که باهم به صورت workgroup شبکه هستندو از ویندوز xp استفاده میکنن اجرا کنم و هر 4 کامپیوتربه SQL Server سرویس دهنده(server) متصل کنم به محتویات فایل txt وقتی که روی کلاینت اجرا میشه چی اضافه کنم؟
آیا اصلا این راه شدنی هست؟
اگر بایدcomponent های دیگری رو اضافه کنم روی برنامم لطفا راهنمایی کنید.

vcldeveloper
دوشنبه 03 دی 1386, 04:24 صبح
در داخل ConnectionString هر بخش از اطلاعات با یک ; از سایر بخش ها جدا شده. بخش Data Source مربوط به نام (یا آدرس IP) سرور هست. بخش Initial Catalog هم مربوط به نام Database در سرور هست. uid و pwd هم مربوط به username\password کاربر هستند.
برای هر کلاینت این بخش ها را متناسب با شرایط کاری خود در ConnectionString تنظیم کنید.

atryass
دوشنبه 10 دی 1386, 11:28 صبح
سلام
در مورد اتصال دلفی به sqliteکمک میخواستم
ممنون

watermelon
دوشنبه 15 بهمن 1386, 12:36 عصر
سلام
من تا زمانی که یک شبکه محلی وجود داره مشکلی ندارم. ولی زمانی که کلاینت از طریق یک اتصال VPN به سرور متصل شده نمیتونم از طریق ADO به سرور متصل بشم. در قسمت DataSource باید فقط IP سرور نوشته بشه یا نام سرور SQL رو هم باید اضافه کرد؟ IP باید داخل کوتیشن باشه یا نه؟ اگر میشه یک مثال بزنید. بر فرض IP سرور در شبکه 192.168.1.5 و نام سرور هم MYSQLSERVER باشه قسمت DataSource رو چطوری باید نوشت؟

ممنون

dkhatibi
سه شنبه 16 بهمن 1386, 19:22 عصر
نام سرور را کافیه وارد کنید.
یا بنویسید 192.168.1.5 یا MYSQLSERVER. در صورتیکه برای اتصال مشکلی داریئ. sqlServer را پاک کرده و در مد Sqlserver Autenticitation نصب کرده و با User Pass به ان متصل شوید.

shobair
چهارشنبه 17 بهمن 1386, 12:48 عصر
نام سرور را کافیه وارد کنید.
یا بنویسید 192.168.1.5 یا MYSQLSERVER. در صورتیکه برای اتصال مشکلی داریئ. sqlServer را پاک کرده و در مد Sqlserver Autenticitation نصب کرده و با User Pass به ان متصل شوید.

سلام
من تست کردم هم باید اسم سرور باشه هم IP و با یک اسلش از هم جدا شده باشند. ولی در مورد VPN ظاهراً یک کمی فرق میکنه. وقتی کامپیوتر ریموت به سرور از طریق RRAS متص میشه یک NAT IP میگیره و در واقع تو شبکه محلی با سرور قرار میگیره در نتیجه موقع ایجاد connection string باید نام سرور SQL در لیست ظاهر بشه، ولی نمیشه! حتی اگر با IP و بصورت دستی هم بنویسید نمیتونه کانکت بشه. یعضی ها میگن ADO برای کار تحت VPN نیاز به درایور داره و بعضی هم میگن اصلاً نمیتونه و باید سراغ ODBC برید! من نمیدونم چقدر صحت داره ولی خودم که امتحان کردم اتصال از طریق ADO در VPN به این راحتی ها هم نیست که اینجا دوستان نوشتن!

شبیر

shobair
دوشنبه 29 بهمن 1386, 11:49 صبح
سلام

من تونستم وقتی یک vpn در کار هست به سرور متصل بشم. ولی اشکالش در این هستش که وقتی vpn دارید اتصال به سرور sql بطور طبیعی خیلی کند هستش! برای اینکه بطور مستقیم و بدون vpn بشه به یک سرور متصل شد یک مشکل در پیش رو هستش. مشکل اینه که Public IP و NAT IP بطور پیش فرض ترافیک رو به روی هم فوروارد نمیکنند. باید تنظیمات port forwarding روی مودم ADSL انجام بشه تا ترافیک TCP ورودی IP پابلیک پورت 1433 را روی همان پورت در NAT فوروارد کنه. من این تنظیمات رو در مودم انجام میدم ولی باز هم نمیتونم به سرور از طریق IP پابلیک متصل بشم. کسی تجربه ای در این زمینه داره؟

شبیر

aisuda
چهارشنبه 01 اسفند 1386, 18:11 عصر
سلام
متاسفانه پس از انتخاب سرور نیم، (نام کامپیوتری که اس کیو ال روی آن نصب شده ویزارد 1 است) در هنگام انتخاب نام دیتابیس، خطای login failed for user wizard1/guest را می دهد.
اگر می شود لطفاً راهنمایی فرمایید.

aisuda
پنج شنبه 23 اسفند 1386, 19:53 عصر
برای دیتابیس بایستی یوزری به غیر از یوزرهای پیش فرض ساخت و با اون یوزر کانکت شد، ضمناً قبلش هم در قسمت sql server configuration manager بایستی tcp/ip رو فعال کرد.