نقل قول از 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 ="1.0" encoding ="UTF-8" ?>
<definitions
name="AfterAction"
targetNamespace="urn:AfterAction"
xmlns:typens="urn:AfterAction"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="connect">
<part name="db_name" type="xsd:string" />
<part name="db_user" type="xsd:string" />
<part name="db_pass" type="xsd:string" />
</message>
<message name="connect_answer">
<part name="return" type="xsd:string" />
</message>
<portType name="AfterActionPort">
<operation name="connect">
<input message="typens:connect" />
<output message="typens:connect_answer" />
</operation>
</portType>
<binding name="AfterActionBinding" type="typens:AfterActionPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="connect">
<soap:operation soapAction="urn:AfterActionAction" />
<input>
<soap:body use="encoded" namespace="urn:AfterAction"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:AfterAction"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="AfterActionService">
<port name="AfterActionPort" binding="typens:AfterActionBinding">
<soap:address location="http://localhost/soap/server.php" />
</port>
</service>
</definitions>
در مرحله ی دوم فایل server.php که در واقع در اون متد مربوط به اتصال به دیتابیس قرار داره رو قرار میدم.
کد:
کد:
<?php
function connect($db_name,$db_user,$db_pass)
{
mysqli_connect("localhost",$db_user,$db_pass,$db_name);
if (mysqli_connect_errno())
{
return mysqli_connect_error();
}
else
{
return "connection is ok";
}
}
$server = new SoapServer("test.wsdl");
$server->addFunction("connect");
$server->handle();
?>
حالا کافیه برای ارتباط با این فایلها اونها رو در هاست یا لوکال هاست مورد نظر بریزم و از طریق دلفی اون رو import بکنم.
فقط دو نکته ی زیر رو حتما رعایت کنید.
1.در فایل wsdl اون خطی که آدرس مربوط به فایل server.php رو نوشته رو مطابق با سرور خودتون اصلاح کنید.
2.برای import این وب سرویس آدرس رو به این فرمت وارد نمایید. [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
باز هم تاکید میکنم که بایستی آدرس رو مطابق با آدرس قسمتی که در اونجا فایلهاتون آپلود میشه تنظیم بکنید.
علاقه مندي ها (Bookmarks)