آخرين پست هاي ارسالي انجمن ايران دلفي

تماشای رایگان فیلم ایرانی ، خارجی و کودک آکادمی دلفی
نمایش نتایج: از 1 به 12 از 12

موضوع: اتصال به دیتابیس موجود در هاست با استفاده از دلفی

Hybrid View

  1. #1
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.

    اتصال به دیتابیس موجود در هاست با استفاده از دلفی

    سلام

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

    حالا می خوام متصل بشم به بانک ، خطای سرور تایم اوت میده

    با پشتیبانی هاست هم صحبت کردم نتونست راهنمایی کنه

    ضمنا از کامپوننت mydac استفاده کردم


  2. #2
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    با استفاده از کامپوننت mydac* نباید ایرادی باشه ، اگه ممکنه سورس کد و همچنین کامپوننت mydac* و اسکریپت دیتابیس اتون رو بزارید تا بچه ها بتونند بهتون کمک کنند.اوکی؟
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  3. #3
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.
    من نه برنامه ای نوشتم ، نه اسکریپت خاصی دارم. یه جدول ساده در درون هاست دارم. کامپوننت mydac رو روی فرم میذارم و مقادیرشو پر میکنم ، مثل آی پی و یوزر و پسورد و ... . و منتظر میمونم متصل بشه
    اما اون پیغام رو میده

    فقط یه چیزی هست که حدسم به اون میره

    از جایی که من هاست تهیه کردم ، بر روی یک سرور (یک آی پی) چند تا هاست وجود داره
    احتمال داره که برای کانکت شدن یک آی پی ولید که متصل به یک هاست باشه مورد نیاز باشه؟

  4. #4
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    سلام .
    بایستی nameserver* ای که mysql روش نصبه رو وارد کنید .
    مثلا** mysql.youhosting.ir*
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  5. #5
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.
    این روش رو تست کردم . جواب نداد

  6. #6
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    نام دیتابیس اتون رو چک کنید .
    مثلا اگه نام دیتابیس شما irandelphi باشه ، برای دسترسی به اون بایستی یک پیشوند مثل us123456878 که خود سرور برای هاست شما مشخص کرده رو اضافه کنید.
    یعنی بدین صورت :

    کد:

    کد:
    us123456878irandelphi

    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  7. #7
    کاربر سایت tashvighi آواتار ها
    تاریخ عضویت
    June 2013
    سن
    11
    نوشته ها
    3
    تشکر ها
    0
    تشکر شده 1 بار در 1 ارسال .
    با سلام و ادب

    من اینکارو با ADOConnection به شکل زیر انجام میدم و جواب می گیرم، امیدوارم به کار شما هم بخوره.

    محتوای ConnectionString این باشه
    کد:

    کد:
    DRIVER={MySQL ODBC 5.1 Driver}; SERVER=X; PORT=3306; DATABASE=Y; UID=Z; PASSWORD=P; OPTION=3;


    X : نام یا آی پی سایت
    Y : نام دیتا بیس
    Z : کاربر دیتا بیس
    P : رمز عبور

  8. کاربر مقابل از tashvighi عزیز به خاطر این پست مفید تشکر کرده است:

    serojjamali (01 / October / 2016)

  9. #8
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    ببینید دوستان .چندین روش برای این کار موجوده .
    1.ارتباط با دیتابیس mysql* از طریق کامپوننت هایی مثل ado , unidacو ...*که در locall یا host*هیچ تفاوتی نداره ...
    فقط یه مسئله ای هست که اونم تفاوت نام سرور و یا ip سروره ، اونم نباید چیز خاصی باشه ...
    فقط یه مشکل اساسی در ارتباط با هاست هست که بایستی هاست شما اجازه Remote* شدن رو بده و معمولا اکثرا این رو غیر فعال می کنند.
    2.بهترین روش برای ارتباط با دیتابیس روی هاست استفاده از وب سرویس هستش ، مثلا شما یک هاست لینوکس دارید و mysql , php* استفاده می کنید ، کافیه با php *یه وب سرویس بنویسید و تمامی کار ها رو از جمله ارتباط با دیتابیس یا درج و حذف و ... رو تو اون انجام بدید و درlocall فقط یک سرویس رو استفاده کنید ...
    این روش دومی هم ایمنه و هم کاربردی تر ...
    ...
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  10. کاربر مقابل از admin عزیز به خاطر این پست مفید تشکر کرده است:

    serojjamali (01 / October / 2016)

  11. #9
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.
    سلام به دوستان

    من بعد از مدتی ای تاپیک رو فعال کردم

    از مهندسین کسی میتونه یه وب سرویس رو به عنوان نمونه بذاره که :
    اول به دیتابیس کانکت بشه
    بعد عمل درج و ویرایش و حذف رو انجام بده؟
    البته اگه کار مشکلی هست همون مورد اول رو هم نمونش رو بذاره خیلی عالی میشه
    ممنونم

  12. #10
    مدیر انجمن javad_rajabloo آواتار ها
    تاریخ عضویت
    May 2013
    محل سکونت
    گنبد کاووس
    سن
    11
    نوشته ها
    71
    تشکر ها
    21
    تشکر شده 30 بار در 18 ارسال.
    یه نمونه اینجا میذارم که با دلفی xe4 تست شده
    در بخش اول کد دلفی هست که یکسری پارامتر رو به سرور ارسال می کنه . سرور ، عملیات رو انجام داده و نتیجه رو برمیگردونه
    کد دلفی





    کد:

    کد:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    url: string;
    SS: TStringStream;
    SL: TStringList;
    begin
    url := "http://localhost/Delphi.php";
    SL := TStringList.Create;
    try
    SL.Add("a=" + IntToStr(4));
    SL.Add("b=" + IntToStr(5));
    SS := TStringStream.Create("");
    try
    IdHTTP1.Post(URL, SL, SS);
    ShowMessage(ss.DataString);
    finally
    SS.Free;
    end;
    finally
    SL.Free;
    end;
    end;




    حالا یک فایل به نام delphi.php در هاست ایجاد کرده و کد زیر را قرار می دهیم







    با این روش ، میشه کارهای دیگه ای رو هم انجام داد.

  13. #11
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    نقل قول از javad_rajabloo
    یه نمونه اینجا میذارم که با دلفی xe4 تست شده
    در بخش اول کد دلفی هست که یکسری پارامتر رو به سرور ارسال می کنه . سرور ، عملیات رو انجام داده و نتیجه رو برمیگردونه
    کد دلفی








    کد:

    کد:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    url: string;
    SS: TStringStream;
    SL: TStringList;
    begin
    url := "http://localhost/Delphi.php";
    SL := TStringList.Create;
    try
    SL.Add("a=" + IntToStr(4));
    SL.Add("b=" + IntToStr(5));
    SS := TStringStream.Create("");
    try
    IdHTTP1.Post(URL, SL, SS);
    ShowMessage(ss.DataString);
    finally
    SS.Free;
    end;
    finally
    SL.Free;
    end;
    end;




    حالا یک فایل به نام delphi.php در هاست ایجاد کرده و کد زیر را قرار می دهیم









    با این روش ، میشه کارهای دیگه ای رو هم انجام داد.


    سلام و درود . روش بالا در مورد دیتابیس نیست ، و برای اتصال به دیتابیس دو حالت داریم.
    1. هاستینگ رو متقائد کنیم تا امکان ریموت رو فعال کنه ، این میتونه برای یک ip خاص باشه و یا برای All IP ...
    اگر برای تمام ip ها باشه که خوب کارمون راحته و فقط با استفاده از کامپوننت هایی همچون uni Dac ارتباط به دیتابیس رو تجربه میکنیم.
    اگر هم قرار باشه که فقط بشه برای یک ip خاص باشه که فقط در صورتی قابل اجرا خواهد بود که شما بخواهید از یک هاست به هاست دیگری یا از یک سرور با ip valid به هاست متصل بشید .
    2.در روش دوم شما میتونید با php یا هر زبان دیگری یک وب سرویس طراحی کرده و در دلفی اون رو import و اتصال رو انجام دهید که دردسرهای خاص خودش رو داره .
    در اینجا من میخوام بعنوان مثال با استفاده از soap به دیتابیس روی هاست کانکت شده و تایید اتصال رو با وارد کردن نام کاربری و پسورد و نام دیتابیس مورد نظر بگیرم.
    اگر اتصال انجام شد تایید میشه و در غیر اینصورت ارور میده .
    ابتدا فایل wsdl مورد نظر که بایستی با نام test.wsdl ذخیره شود رو ایجاد کردم.



    کد:

    کد:
    <?xml version =&quot;1.0&quot; encoding =&quot;UTF-8&quot; ?>
    <definitions
     name=&quot;AfterAction&quot;
     targetNamespace=&quot;urn:AfterAction&quot;
     xmlns:typens=&quot;urn:AfterAction&quot;
     xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
     xmlns:soap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;
     xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;
     xmlns:wsdl=&quot;http://schemas.xmlsoap.org/wsdl/&quot;
     xmlns=&quot;http://schemas.xmlsoap.org/wsdl/&quot;>
    
     <message name=&quot;connect&quot;>
      <part name=&quot;db_name&quot; type=&quot;xsd:string&quot; />
      <part name=&quot;db_user&quot; type=&quot;xsd:string&quot; />
      <part name=&quot;db_pass&quot; type=&quot;xsd:string&quot; />
     </message>
    
     <message name=&quot;connect_answer&quot;>
      <part name=&quot;return&quot; type=&quot;xsd:string&quot; />
     </message>
     <portType name=&quot;AfterActionPort&quot;>
      
      <operation name=&quot;connect&quot;>
       <input message=&quot;typens:connect&quot; />
       <output message=&quot;typens:connect_answer&quot; />
      </operation>
     </portType>
     <binding name=&quot;AfterActionBinding&quot; type=&quot;typens:AfterActionPort&quot;>
      <soap:binding style=&quot;rpc&quot; transport=&quot;http://schemas.xmlsoap.org/soap/http&quot; />
      
      <operation name=&quot;connect&quot;>
       <soap:operation soapAction=&quot;urn:AfterActionAction&quot; />
       <input>
        <soap:body use=&quot;encoded&quot; namespace=&quot;urn:AfterAction&quot;
         encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; />
       </input>
       <output>
        <soap:body use=&quot;encoded&quot; namespace=&quot;urn:AfterAction&quot;
         encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; />
       </output>
      </operation>
     </binding>
     <service name=&quot;AfterActionService&quot;>
      <port name=&quot;AfterActionPort&quot; binding=&quot;typens:AfterActionBinding&quot;>
       <soap:address location=&quot;http://localhost/soap/server.php&quot; />
      </port>
     </service>
    </definitions>





    در مرحله ی دوم فایل server.php که در واقع در اون متد مربوط به اتصال به دیتابیس قرار داره رو قرار میدم.


    کد:

    کد:
    <?php
    
    function connect($db_name,$db_user,$db_pass)
    {
    
      mysqli_connect(&quot;localhost&quot;,$db_user,$db_pass,$db_name);
     
     
     if (mysqli_connect_errno())
     {
      return mysqli_connect_error();
     }
     else
     {
      return &quot;connection is ok&quot;;
      
     }
    }
    $server = new SoapServer(&quot;test.wsdl&quot;);
    $server->addFunction(&quot;connect&quot;);
    $server->handle();
    ?>







    حالا کافیه برای ارتباط با این فایلها اونها رو در هاست یا لوکال هاست مورد نظر بریزم و از طریق دلفی اون رو import بکنم.
    فقط دو نکته ی زیر رو حتما رعایت کنید.
    1.در فایل wsdl اون خطی که آدرس مربوط به فایل server.php رو نوشته رو مطابق با سرور خودتون اصلاح کنید.
    2.برای import این وب سرویس آدرس رو به این فرمت وارد نمایید. [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
    باز هم تاکید میکنم که بایستی آدرس رو مطابق با آدرس قسمتی که در اونجا فایلهاتون آپلود میشه تنظیم بکنید.
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  14. #12
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    دوستان فقط دقت کنید که اول از این آدرس چک کنید



    کد:

    کد:
    http://www.yougetsignal.com/tools/open-ports/


    اگر پورت 3306 باز بود که کارتون خیلی راحت میشه ، کافیه در این قسمت مثلا در دایرکت ادمین روی دیتابیس مورد نظر کلیک کنید و در کادر مقابل Add Host عبارت % رو وارد کنید تا به راحتی با کامپوننت uniDac بتونید با اون دیتابیس کار کنید.

    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  15. کاربر مقابل از admin عزیز به خاطر این پست مفید تشکر کرده است:

    serojjamali (01 / October / 2016)

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •