ايران ويج

نسخه‌ی کامل: ديتابيس روي اينترنت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام ايران ويج خيلي بي حال شده ميخوام ببينم ميتونم در دلفي با ديتابيسم كه روي اينترنت آپلود شده كار كنم ( ديتابيس روي اينترنت و برنامه روي كامپيوتر من) ممنونم
ببينم از بي حالي در مياد (ايران ويج)
متشکرم از اين همه جواب (با تشکر فراوان ازمدير اين بخش)
سلام عزیز
راههایی که به نظر من میرسه و تا حالا شنیدم استفاده از sql server و اتصال به اون حالا تو هر زبانی هست . و با ارسال اطلاعات به صورتی که خودت تعریف میکنی برای یک صفحه از پیش ساخته و طراحی شده توی سایت که این اطلاعات رو بگیره و تشخیص بده که مربوط به چه Table هست و بعد هم کار لازم رو انجام بده Insert , update , delete
آره دقیقا اول باید Sql Server بخونی
Soheilvb نوشته است:آره دقیقا اول باید Sql Server بخونی

با تشکر فراوان عزیزم من sql را در حد عالی بلد هستم لطفآ اگر کسی جواب سئوال مرا بلد نیست طز نده
لطفا درست حرف بزن
بعدش خوب SQL SERVER بلد نیستی
سلام عزیزم:
فکر می کنم که مشکل شما با ست کردن ODBC حل شود.
فدات
agha fosh nadin aroomtar
inshaalah ke khoda bozorg ast
عند... معه صابرین
با سلام
خب وقتی رو اینترنته برای وصل شدن به اون باید از ابزارهای indyاستفاده کنین تو خود دلفی چند تا مثال هست میتونین از اونها استفاده کنین
عزیزم برای حل این مشکل 3 تا راه پیش روی شماست

1- استفاده از web service
2- استفاده از بانک اطلاعاتی mysql
3- استفاده از ابزار indy

در زیز من واست مثالهایی رو میارم که امیدوارم مشکلت رو حل کنه

with IdTCPServer.Bindings.Add do
begin
IP:='192.168.167.12';
Port:=9999;
end;

with IdTCPClient do begin
Host := '192.168.167.12';
Port := 9999;
Connect;
WriteBuffer(MySendingRecord,SizeOf(MySendingRecord),true);
Disconnect;
end;
اطلاعات کاملتر

http://delphi.about.com/od/internetintra...20403a.htm

وب سرویس چیست؟ مقدمه

--------------------------------------------------------------------------------

یک وب سرویس به معنای ساده نوعی کامپوننت تحت وب است.
این کامپوننت به application هایی که از آن استفاده می کنند این امکان را می دهد که بتوانند از متدهای این وب سرویس استفاده کنند.
بهتر است وب سرویس را با یک مثال توضیح دهیم.
فرض کنید شما می خواهید در web application خود وضعیت آب و هوای مناطق جغرافییای مختلف را داشته باشید. برای پیاده سازی چنین کاری شما دو راه دارید:
1- خودتان وضعیت اب و هوا را از سایت های مختلف جمع آوری کنید و آنها را در web application خود استفاده کنید.
2- از یک وب سرویس که آب و هوای مناطق جغرافیایی مختلف را می دهد استفاده کنید.

در واقع این وب سرویس آب و هوا به تنهایی کاری نمی کند. بلکه توابعی دارد که توسط web application های مختلف صدا زده می شوند. که بعنوان مثال در اینجا وب سرویس وضعیت آب و هوا را برمی گرداند.
البته وب سرویس ها استفاده های بسیار پرکاربردتر و مهمتری دارند مثل کار با دیتابیس و ... که در اینجا فقط یک مثال برای روشن شدن موضوع ذکر شد.

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

شاید بسیاری از دوستانی که OOP کار کارده اند بگویند که اینکار با کلاس هم امکانپذیر است. بله امکانپذیر است اما:
1- در برنامه نویسی با کلاس شما باید کلاستان را در هر پروژه add کنید ولی در وب سرویس فقط کافیست از متدها استفاده کنید.
2- در کار با کلاسها شما ممکن است در application های مختلف به روشهای مختلف با کلاسهای متفاوت کار کنید. یعنی به عبارتی کار شما هر بار متفاوت است و این خوانایی را پایین می آورد و همچنین توسعه را مشکل می سازد. اما در استفاده از وب سرویس شما هربار فقط با یک وب سرویس خاص کار می کنید و طبق همان متدهای خاص وب سرویس کار می کنید حالا در هر کجا و هر application که باشید.
3- وقتی با سرویس کار می کنید یک سری استانداردهایی در استفاده وجود دارد که تمام application ها باید از آن تبعیت کنند و بنابراین reusability بالا می رود.
4- و ....


و اما بعضی واژگان در ارتباط با Web Service :
XML:
Extensible Markup Language

یک زبان markup است که یک فرمتی را برای توصیف داده ها فراهم می کنید. شبیه html است شامل تگ ها و ...

SOAP :
Simple Object Access Protocol

در واقع پروتکل ارتباطی است برای وب سرویس مثل http برای وب و ...

WSDL:
Web Service Description Language

یک xml document برای web service است که متدها و بعضی خصوصیات دیگر وب سرویس را توضیح می دهد.
در این قسمت ایجاد وب سرویس با C# code behind توضیح داده می شود البته با vs 2005 . در vs 2003 نیز بسیار شبیه به 2005 است.

ابتدا به این قسمت بروید :
File -> new -> website

از پنجره نشان داده شده Asp.net Web Service را انتخاب کنید.(شکل 1 )



حال در solution explorer فایلی با نام service.asmx می بینید که فایل اصلی webservice شما است و در واقع از کلاس service.cs که در پوشه ی app_code قرار دارد استفاده می کند.

کلاس service.cs در 2005 یا service.asamx.cs در 2003 از namespace System.Web.Services.WebService مشتق می شود. و دارای متدهایی با تگهای [WebMethod] است. این متدها متهایی هستند که قابل استفاده توسط web application های دیگر هستند.
حال برای نمونه یکبار webservice خود را run کنید. یک صفحه با آدرس http://..../service.asmx در browser نمایش داده می شود.
شکل 2 یک نمونه وب سرویس است با عنوان SSO و متدهایی که در زیرش نشان داده شده.


چگونگی ایجاد وب متد:
نمونه کد زیر را ببینید:

کد:
[WebMethod]
public string HelloWorld() {
return "Hello World";
}وب متدها همانطوری که اشاره شد با تگ [WebMethod] شروع می شوند. و بسته به نیاز می توانند پارامتر بگیرند و خروجی برگردانند.

برای اطلاعات بیشتر در مورد type پارامترها به آدرس زیر مراجعه کنید :
http://samples.gotdotnet.com/quickst...vicetypes.aspx

حال اگر متد بالا را در وب سرویس خود اجرا کنید می بینید که خروجی Hello World را داخل تگ های xml به شما برمی گرداند.
دقت کنید که این نمایش از وب سرویس صرفا یک نمای ایجاد شده توسط مایکروسافت است و شما نمی توانید به اینصورت از وب سرئیس استفاده کنید. بلکه شما برای استفاده نیاز به استفاده از این متد ها در Web application خود دارید.


اما پارامترهایی که در تگ وب متد بکار می روند:
1- Description
همانطوری که از نامش پیداست توضیحات مربوط به هر متد را مشخص می کند که این توضیحات در زیر هر متد در پیش نمایش و همچنین در فایل WSDL مربوط به وب سرویس قابل مشاهده است.

2- EnableSession
همانطوریک از نامش پیداست برای مدیریت Session ها بکار می رود.
این متغیر در ابتدا Disable است که شما می توانید آنرا به Enable تغییر دهید.
البته پیشنهاد می شود که اگر نیاز به استفاده از این امکان ندارید آنرا Disable بگذارید تا Performance کاهش نیابد.
3-CacheDuration
تعداد ثانیه هایی که یک response کش می شود.در حالت عادی صفر است یعنی response کش نمی شود.
TransactionOption4-
مدیریت تراکنش ها. در مورد تراکنش ها دوستان احتمالا اطلاعاتی دارند.
یک تراکنش مجموعه ای از دستورات است که یا همه با هم اجرا می شود و یا هیچکدام انجام نمی شود. مورد استفاده ی این تراکنش ها بیشتر در کارت های اعتباری و ...
بحث بیشتر در مورد تراکنش ها ما را از حوزه ی وب سرویس خارج می کند.
5- BufferedResponse
وب سرویس بصورت پیش فرض Response را بافر می کند و هرزمان بافر پر شد دوباره خالی می شود و ادامه می دهد. اما گاهی شاید شما در کار خودتان دیتاهای بزرگ و response بزرگی داشته باشید که بافرشدن آن کارایی را پایین بیاورد در چنین شرایطی شما می توانید این گزینه را false کنید .
استفاده از یک وب سرویس در web application (Consuming webservice)

--------------------------------------------------------------------------------

در قسمت قبل طریقه ی ایجاد یک وب سرویس را گفتیم. اما گفتیم که وب سرویس به تنهایی نمی تواند توسط کاربر استفاده شود بلکه باید یک web application آنرا Consume (استفاده) کند.

حال یک web application ایجاد کنید.
روی پروژه راست کلیک کنید و گزینه ی Add web reference را انتخاب کنید. پنجره ای مطابق با شکل 1 ظاهر می شود.


اگر url وب سرویس را به شما داده باشند آنرا در قسمت url وارد کنید. و اگر که از روی localmachine بخواهید وب سرویس را جستجو کنید داخل همین پنجره گزینه ای برای آن وجود دارد. پس از انتخاب url وب سرویس یک نام به آن نسبت دهید این نام در واقع نام کلاسی است با عنوان prxoy class که برای ارتباط با وب سرویس از طریق برنامه ی شما بکار می رود.

حال شما می توانید از متدهای وب سرویس خود در برنامه استفاده کنید.
این کد یک نمونه برای مثال است :

کد:
private SSO.SSO sso = new WebLoginControl.SSO.SSO();
UserId_int=sso.get_user_id(UserName_txt.Text,Password_txt.Text);
پس از یادگیری نحوه ی کار با وب سرویس ها اکنون بهترین زمان برای درک مفهوم پیشرفته و بسیار زیبای SOA است.



با یک مثال شروع می کنیم:
فرض کنید شما در حال نوشتن یک Web application برای مدیریت مسایل مالی هستید.
در برنامه نویسی oop و یا چندلایه شما ابتدا پروژه را به چند لایه برای ارتباط با دیتابیس و business لایه و ... می شکنید و بعد شروع به کار میکنید.
حال SOA چه می گوید:
SOA که مخفف Service Oriented Architecture است به شما راهکاری برای متمایز کردن هر یک از این کارها در سرویس ها یا همان وب سرویس های مجزا می دهد. یعنی شما یک وب سرویس برای کار با دیتابیس. یک وب سرویس برای بعنوان مثال کارهای validation و... دارید و در برنماه ی خود از این وب سرویس ها استفاده می کنید.
در این حالت شما امکان استفاده بارها و بارها از وب سرویس خود را دارید .

در واقع SOA یک متد تقریبا جدید در توسعه نرم افزار است. و گفته شده تا سال 2008 بیش از 80 درصد پروژه های نرم افزاری از این متد استفاده خواهند کرد.

اما چرا SOA :
- فهمیدن بهتر سیستم
- سازماندهی بهتر – تمرکز بیشتر روی توسعه ها
- یکپارچه سازی ساده تر بین سیستم ها
- بهتر شدن محدوده ی تست ها
- Reusability بیشتر و بالاتر
- افزایش قابلیت اعتماد
- توسعه و develop فقط روی business plan متمرکز می شود.
- و...
برای آشنایی بیشتر با SOA :
http://msdn.microsoft.com/architectu...tml/aj1soa.asp


همانطوریکه گفته شد SOAP ساختاری را برای ارسال داده ها و پیام ها بین وب سرویس و Web application ایجاد می کند.
اما یک مشکل اینجا وجود دارد که با یک مثال توضیح داده شده است:
شما ممکن است یک کلمه انگلیسی را بشنوید که در زبان کشور USA یک معنا بدهد و در زبان کشور UK معنای دیگر.

دقیقا همین مشکل ممکن است در هنگام استفاده از وب سرویس اتفاق بیافتد. در واقع شما باید type و شکل message های ایجاد شده توسط وب متد ها را مشخص کنید تا استفاده کننده بداند که چطور باید آنها را معنا کند. این امکان توسط Schema فراهم می شود.
به دو راه می توانید برای وب سرویس خود schema ایجاد کنید:
- بصورت جدا در یک text editor (explicit)
- بصورت استفاده از تگ ها داخل وب سرویس (implicit)

در اینجا توضیح مربوط به Element ها و attribute ها را ارائه نمی کنم چون مربوط به بحث Xml می شود.دوستان برای مطالعه در این زمینه به مقالت xml مراجعه کنند.
اما این یک کلاس ایجاد شده توسط تگ ها بصورت implicit است:

کد:
[XmlRoot(“ServiceRequest”, Namespace=
“urn-SampleSolution-Data”, IsNullable=false)]
[XmlType(“ServiceRequest”, Namespace=
“urn-SampleSolution-Data”)]
public class ServiceRequest
{
#region Fields
private string ticketNumber;
private string accountNumber;
private string accountName;
private string serviceNotes;
private string priority;
private string contactMethod;
private System.DateTime requestOpened;
private int hrEmployeeId;
private bool hrEmployeeIdSpecified;
private string assignTo;
private System.DateTime requestClosed;
private bool requestClosedSpecified;
private string resolutionNotes;
#endregion

#region Serializable Properties
[XmlElement]
public string TicketNumber
{
get { return this.ticketNumber; }
set { this.ticketNumber = value; }
}
[XmlElement]
public string AccountNumber
{
get { return this.accountNumber; }
set { this.accountNumber = value; }
}

[XmlElement]
public string AccountName
{
get { return this.accountName; }
set { this.accountName = value; }
}

[XmlElement]
public string ServiceNotes
{
get { return this.serviceNotes; }
set { this.serviceNotes = value; }
}

[XmlElement]
public string Priority
{
get { return this.priority; }
set { this.priority = value; }
}

[XmlElement]
public string ContactMethod
{
get { return this.contactMethod; }
set { this.contactMethod = value; }
}

[XmlElement]
public System.DateTime RequestOpened
{
get { return this.requestOpened; }
set { this.requestOpened = value; }
}

[XmlElement]
public int HREmployeeId
{
get { return this.hrEmployeeId; }
set
{
this.hrEmployeeId = value;
this.HREmployeeIdSpecified = true;
}
}

[XmlIgnore()]
public bool HREmployeeIdSpecified
{
get { return this.hrEmployeeIdSpecified; }
set { this.hrEmployeeIdSpecified = value; }
}

[XmlElement]
public string AssignTo
{
get { return this.assignTo; }
set { this.assignTo = value; }
}

[XmlElement]
public System.DateTime RequestClosed
{
get { return this.requestClosed; }
set
{
this.requestClosed = value;
this.RequestClosedSpecified = true;
}
}

[XmlIgnore()]
public bool RequestClosedSpecified
{
get { return this.requestClosedSpecified; }
set { this.requestClosedSpecified = value; }
}

[XmlElement]
public string ResolutionNotes
{
get { return this.resolutionNotes; }
set { this.resolutionNotes = value; }
}
#endregion
}
دوستان توجه کنند که تگ هایی که برای اینکار استفاده می شود در زیر آورده شده است:
[XmlElement]
[XmlElement(ElementName="Album")] تعریف element
[ return: XmlElement("SubmissionReceipt")] بازگشتی به شکل element

[XmlAttribute]
[XmlAttribute(AttributeName="noOfTracks", DataType="unsignedByte")]
[XmlText]
...

فراخوانی وب سرویس ها بطور دینامیک Calling Dynamically WebServices

--------------------------------------------------------------------------------

تا اینجا راههایی که ما برای فراخوانی وب سرویس بررسی کردیم به اینصورت بود که شما حتما باید مشخصات وب سرویس ها رو هنگام تولید کد برنامه داشته باشید تا بتونید prxoy Class رو براشون ایجاد کنید یعنی Add web reference اش کنید و بعدا ازش استفاده کنید.

اما یک خصوصیت خیلی مهم وب سرویس ها اینه که تعدادشون هر روز زیاد تر میشه و وب سرویس های بهتر و بیشتر بوجود میاد.
حالا اگر شما بخواهید هر بار که وب سرویس تازه ای میاد داخل کد برنامه تغییرات بدین خیلی کار طاقت فرسایی میشه.

یک راه حل خوب برای اینکار استفاده از وب سرویس ها بطور دینامیک است.
یعنی شما هنگام تولید کد prxoy class رو ایجاد نمی کنید.بلکه اینکار رو RunTime انجام می دید.

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

توصیه می کنم حتما مطالعه کنید.


http://msdn2.microsoft.com/en-us/lib...35(vs.80).aspx


دانلود مقاله بالا به صورت pdf

http://barnamenevis.org/forum/attachment...1152430906
با تشکر از انجمن برنامه نویس و دوست خوبمون reza_rad
بانک های اطلاعاتی اوپن سورس


FlashFiler : موتور بانک اطلاعاتی Client/Server که با استفاده از دلفی توسعه یافته است.
H2 Database Engine : یک موتور بانک اطلاعاتی جاوا که SQL استاندارد و JDBC API را پشتیبانی می کند.
MySQL : سرویس دهنده بانک اطلاعاتی معروف و شناخته شده، چند کاربره، انعطاف پذیر و قدرتمند که نسخه های مختلفی تحت سیستم عامل های ویندوز، سولاریس، لینوکس، FreeBSD، AIX، SunOS و … عرضه کرده است. بسیاری از سروس دهنده های وب هاستینگ این سیستم بانک اطلاعاتی را به شما پیشنهاد خواهند کرد. همچنین MySQL در ایران طرفداران و کاربران زیادی دارد.
HSQLDB : سیستم بانک اطلاعاتی رابطه ای بسیار سریع و کوچک که کاملاً با جاوا پیاده سازی شده است.
Perst : بانک اطلاعاتی شیء گرا برای استفاده در جاوا و دات نت.
DataReel : یک سیستم cross-platform برای ایجاد بانک های اطلاعاتی چند خطی و نرم افزارهای ارتباطی که برنامه های تحت این سیستم به راحتی در تمامی سیستم عامل های موجو قابل اجرا و پیاده سازی می باشند.
Apache Derby : یک سیستم بانک اطلاعاتی رابطه ای که کاملاً با جاوا ایجاد شده است.
PostgreSQL : یک سیستم مدیریت بانک اطلاعاتی رابطه ای کاملاً حرفه ای با پشتیبانی از تمامی قابلیت های زبان SQL، تراکنش ها، توابع تعریف شده توسط کاربر. قابلیت اجرا در سیستم عامل های بر مبنای یونیکس مثل انواع توزیع های لینوکس و FreeBSD.
IBM’s Cloudscape : سیستم بانک اطلاعاتی رایگان، اوپن سورس و بسیار کوچک IBM که کاملاً با استفاده از جاوا طراحی و پیاده سازی شده است. این یانک اطلاعاتی روی تمامی سیستم عامل هایی که Java Virtual Machine روی آن ها نصب می باشد، اجرا خواهد شد.
Firebrid : یک سیستم بانک اطلاعاتی رابطه ای برای لینوکس، ویندوز و توزیع های مختلف تحت یونیکس که بر مبنای Interbase طراحی و توسعه یافته است.
B-Tree Filer : یک سیستم بانک اطلاعاتی بر مبنای فایل (File-based) که با استفاده از محیط Borland Delphi طراحی و پیاده سازی شده است و قادر به ایجاد دیتابیس های نسبتاً سریع می باشد. دیتابیس هایی که با این نرم افزار ساخته می شوند به هیچ ابزار جانبی از قبیل BDE و یا DLLهای third-party وابسته نیستند و توزیع آن ها روی سیستم های کاربران به راحتی کپی کردن فایل های معمولی امکان پذیر خواهد بود.
Berkeley DB : این سیستم بانک اطلاعاتی شامل ابزارهای جهت ایجاد دیتابیس هایی توکار در نرم افزارهای دسکتاپ و سرور با کارائی بسیار بالاست. دارا بودن استانداردهای یک سیستم بانک اطلاعاتی رابطه ای، قابلیت Hashing رکوردها، رکوردهای ثابت و با طول متغیر، صف بندی ، مدیریت تراکنش ها و پشتیبان گیری از دیتابیس ها به صورت آنلاین از قابلیت های این سیستم به شمار می روند. پشتیبانی از API های زبان های برنامه نوبسی C, C++, JAVA, Tcl, Perl و Python و قابلیت اجرا روی ویندوزهای 95/98/NT/2000 ، لینوکس و بسیاری از توزیع های بر مبنای Unix. کاملاً رایگان برای استفاده های غیرتجاری یا استفاده در نرم افزارهای اوپن سورس.
SQLLite* : یک Library کوچک، کم حجم و پرقدرت به زبان C که قادر به ایجاد بانک های اطلاعاتی توکار در نرم افزارهاست. بر خلاف سیستم های مدیریت بانک های اطلاعاتی Client\Server، موتور بانک اطلاعاتی SQLLite تنها یک کتابخانه است که با اتصال به برنامه های مختلف، جزئی از آن برنامه ها می شود. نرم افزارهای معروفی همچون Firefox, Google Gears, Ruby on Rails از SQLLite به صورت توکار استفاده می کنند.

بانک های اطلاعاتی رایگان

Sybase ASE Express : ویرایش رایگان Sybase for Linux
Real Isam : یک کتابخانه (DLL) که از متدهای ISAM برای مدیرت و دستیابی به رکوردهای دیتابیس استفاده می کند. این کتابخانه می تواند در زبان های C++، Visual Basic، Delphi و غیره مورد استفاده قرار گیرد. (فقط برای ویندوز)
Microsoft SQL Server Express Edition : نسخه رایگان و بدون محدودیت نرم افزار تجاری و پرقدرت SQL Server از شرکت مایکروسافت (فقط بری ویندوز)
صفحه‌ها: 1 2