# Native Code > برنامه نویسی در Delphi > بانک های اطلاعاتی در Delphi >  اتصال به بانک اطلاعاتی SQL Server تحت اینترنت با IP Valid

## Delphi 2010

سلام خدمت همه دوستان گرامی
چطوری میشه یه برنامه رو به بانک اطلاعاتی SQL Server وصل کرد؟

IP Valid سیستم سرور رو دارم و پورت SQL Server هم 80631 هستش.
از یه سیستم دیگه تحت اینترنت نمیشه وصل بشم به سرور مرکزی

زبان برنامه نویسی Delphi XE
AdoConnection
بانک اطلاعاتی SQL Server 2008
این هم مشخصات سیستم کار من هستش

در ضمن میخواستم بدونم سرعت اتصال و کار با بانک تحت اینترنت پائین هستش یا نه.
میشه تحت اینترنت با سرعت بالا تبادل اطلاعات با بانک اطلاعاتی بکنیم

ممنون میشم کمک کنید

----------


## hamid-nic

> از یه سیستم دیگه تحت اینترنت نمیشه وصل بشم به سرور مرکزی


یعنی چی ؟ چه خطایی دارین ؟ 
 با داشتن آی پی ولید و نام کاربری و رمز عبور (مثلا برای کاربر sa) و همچنین فعال کردن حالت windows mixed mode در sql نباید مشکلی داشته باشین .

----------


## Delphi 2010

این پیغام رو میده
---------------------------
Microsoft Data Link Error
---------------------------
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
---------------------------
OK   
---------------------------

Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Data Source=2.181.60.60,80631

هر چی تلاش کردم وصل نشد
COnnection string هم مثل بالا هستش و firewall رو هم خاموش کردم بازم متصل نشد و پیغام خطا میده

چیکار باید بکنم. Connectin String خاصی باید بزنم یا روش خاصی وجود داره برای متصل شدن
ممنون میشم راهنمائی کنید

----------


## nilidelphi

باید اس کیو ال سروری که روی سرورت در حال اجرا است تمام سرویس های شبکه ایش Run بشه تا از شبکه بشه از اس کیو ال استفاده کرد


برو به Start\All Programs\microsoft SQL server 20..\Configuration Tolls\SQL Server Configuraton Manager     و این برنامه رو اجرا کن

و در پنجره کوچک سمت چپ (treeView) بر روی گزینه ی  SQL Server Services    کلیک کنید تا در پنجره ی سمت راست همه ی سرویس ها مشخص شود
در همه ی این سرویس ها باید گزینه ی Log on as روی Network Service ست شده باشند مخصوصا سرویس های SQL Server Browser  و SQL Server Agent . 

برای تغییر این مورد با دوبار کلیک بر روی سرویس مورد نظر میتونی لاگان مورد نظر رو عوض کنید.

موفق باشید.

----------


## Delphi 2010

ممنون از راهنمائیتون
ولی تغییر دادم بازم نشد
میشه یه نمونه برنامه یا یه نمونه Connection String برام بگذارید ممنون میشم

----------


## hamid-nic

مطمئن هستید که  ip تون ping  میده یا نه ؟

----------


## Delphi 2010

بله عزیزم
Ping کردم و Reply میده عزیزم

----------


## hamid-nic

به احتمال زیاد مشکل از طرف سرور و یا بانک sql هست . اگر امکان داره پورت sql را به 1433 (پیش فرض sql )تغییر بدهید و دوباره امتحان کنید.

----------


## nilidelphi

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

----------


## Felony

اکثرا Firewall مودم ها خاموش هست ؛ شاید مشکل از NAT مودم باشه که داره IP ثابت رو برای استفاده از چند سیستم تبدیل میکنه .

----------


## Delphi 2010

آقای تاجیک فکر نکنم
چون یه برنامه با Indy نوشتم به صورت کلاینت و سرور مشکلی نداره اون برنامه
نمیدونم مشکلش این ارتباط با بانک اطلاعاتی کجا هست

میشه لطف کنید و یه نمونه برنامه آپلود کنید که بتونم سرمشق خودم بکنم (خواهشا تست شده باشه ممنون میشم)

با تشکر

----------


## Felony

چه نمونه برنامه ای ؟! شما اول برو مشکل رو حل کن و با Management Studio و IP به سرورت وصل شو ؛ اگر شد بعد بیا درخواست Connection String بکن .

----------


## Delphi 2010

با Management Studio وصل نشد. حالا باید چیکار کنم عزیزان

----------


## nilidelphi

به نظر من SQL Server رو که در سرور هست Uninistall کن و همه ی چیزشو پاک کن و بعد دوباره نصب کن.
فقط در هنگام نصب دوباره به این 2نکه توجه داشته بش :
1- از گزینه ی میکس اتنتیکیشن استفاده کن
2-در یکی از مراحل نصب ازت میپرسه که سرویس ها رو چطور نصب کنه که اونوقت همون گزینه ی network  که قبلا گفتم رو انتخاب کن

پس از نصب کامل برنامه در کامپیوتر سرورت مطمئن شو که حداقل یه WorkGroup  باشه اگه نباشه مراحل انجام یک شبکه رو انجام بده و بعد کامپیوتر رو ریستارت کن
و بعد امتحان کن

----------


## Seveen7

سلام
منم همین مشکلو دارم
اگه راهی پیدا کردی میشه منم راهنماسس کنی؟
ممنون میشم واقعا ازتون . . .
این ایمیلمه!!!
Ehsannozari7@yahoo.com

----------


## shobair

سلام

من این کار رو چند سالی هست که انجام میدم. توسط ویندوز سرور که در واقع مودم ADSL هم به همون وصل هستش یک *** سرور راه اندازی کردم و کامپیوترهایی که از اینترنت قصد اتصال به دیتابیس رو دارند ابتدا باید یک IP لوکال دریافت کنند. برای اینکار باید تنظیمات Port Forwarding روی مودم انجام بدید و پورت های مربوط به L2TP و PPTP رو از IP استاتیک روی IP لوکال فوروارد کنید. این کار باعث افزایش امنیت هم میشه یعنی فقط کامپیوترهایی می تونند به SQL Server متصل بشوند که اول مجاز به دریافت IP لوکال هستند. بعد از اتصال و دریافت IP لوکال دیگه همه چیز مثل شبکه LAN هست. حتی لازم نیست SQL Server رو بر روی سیستم اصلی که به اینترنت متصله نصب کرده باشید.

برای اتصال خودکار به *** Server هم یک برنامه 2 خطی باید بنویسید که با دستور Rasdial یک کانکشن رو برقرار کنه. 
این روش رو من الان 5 ساله استفاده میکنم و بدون نقص جواب داده.

شبیر

----------


## ho.yasreby

سلام 
من بوسیله remot desktop ویندوز میتونم به سرور وصل بشم و مشکلی از این طریق ندارم ولی با sql managment نمیتونم به سرور وصل بشم مبشه دقیق تر توضیح بدید
یعنی کانکشن استرینگ باید چی باشه

----------


## mrm0101

سلام اگر ارتباط مستقیم به اس کیو ال سرور روی هاست امنیت داشت خود اس کیو ال سرور و برنامه های امنیتی پورتش رو باز می کردند . تنها راه شما برنامه نویسی برنامه تون بصورت تحت وب است یا استفاده از برنامه های چند لایه data snap 
 اگر هم به سرور دسترسی دارید می تونید پورت اس کیو ال رو باز بکنید ولی بسیار خطر ناک است

----------


## karimitabar

> این پیغام رو میده
> ---------------------------
> Microsoft Data Link Error
> ---------------------------
> [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
> ---------------------------
> OK   
> ---------------------------
> 
> ...


---

سلام دوست عزیز. یکی از دوستان قبلا زحمت کشیده کامل توضیح داده :
http://www.wavesoft.ir/اتصال-به-sql-...حت-شبکه/
ولی مختصر عرض کنم :



۱٫     به مسیر Start > All Programs > Microsoft SQL Server 2008/2005 > Configuration Tools > SQL Server Configuration Manager مراجعه کنید و موارد زیر را بررسی نمایید:۱٫۱٫بر روی SQL Server Services کلیک کنید و در سمت راست پنجره بررسی کنید که ستون State مربوط به SQL Server Browser و SQL Server در وضعیتRunning باشد.۱٫۲٫بر روی آیتم های زیر مجموعه SQL Server Network Configuration کلیک کنید و در سمت راست پنجره بررسی کنید که آیتم های Shared Memory،Named Pipes و TCP/IP در وضعیت Enabled باشند.۱٫۳٫بر روی آیتم SQL Native Client Configuration > Client Protocols کلیک کنید و در سمت راست پنجره بررسی کنید که آیتم های Shared Memory،Named Pipes و TCP/IP در وضعیت Enabled باشند.۲٫     بررسی کنید که فایروال سیستم سرور غیر فعال باشد و یا SQL Server به برنامه های Trust فایروال اضافه شده باشد.

----------

