โปรแกรมบัญชีเกณพ์คงค้าง รพ.สต. สสจ.สุรินทร์ รายงานผู้บริหารด้านการเงิน รพ.สต.

แนะนำเว็บไว้เป็น Reference เพื่อการพัฒนา Delphi


DateTime : 2011-09-19 20:47:33
Post By : huwko
IP Address : 180.183.245.49

Message !!

หากต้องการตอบกระทู้ Webboard กรุณาเข้าใช้ระบบก่อนนะค่ะ..


กระทู้ตอบกลับ

http://systemdevman.blogspot.com/2011/07/delphi-xe-multi-tier-datasnap.html

Delphi XE Multi-tier (DataSnap)

 
การสร้าง Multi-tier ของ Delphi XE ถือได้ว่าง่ายกว่า Delphi 7 พอสมควร จุดที่เห็นได้ชัดเจนคือ การเพิ่มความสามารถให้กับ DBX(DBExpress) ที่ได่รับความนิยมอย่างมากด้วยจุดเด่นจากความรวดเร็วในการทำงานกับข้อมูล ได้รวมการเชื่อมต่อข้อมูลของ Datasnap เข้าไปด้วย

 
การสร้าง Application Server (DataSnap Server)
สร้าง Project ใหม่ โดยเลือกเป็นการสร้าง DataSnap Server

 
เลือก DataSnap Server แล้วกด OK
เลือก VCL Forms Application เพราะต้องการสร้าง App Server แบบที่มี GUI
เลือกการเชื่อมต่อแบบ TCP/IP ในหมวดของ Protocols เพียงอย่างเดียว แล้วกด Next
(ค่าเริ่มต้นจะมีการเลือก Sample Methods ไว้ ให้เอาออก)
หน้าต่างถัดมาคือการตั้งค่า Port ของ TCP/IP เป็นช่องทางในการรับ-ส่งข้อมูล โดยที่ Port 211 เป็นค่าเริ่มต้นที่ให้มา เราสามารถใช้ Port นี้ได้
ขั้นตอนสุดท้าย เลือก TDSServerModule แล้วกด Finish ได้เลย
จากนั้น Delphi XE จะสร้างโครงสร้างทั้งหมดที่ประกอบเป็น DataSnap Server ขึ้นมาให้ พร้อมที่จะ Implement ต่อไป

 
ส่วนประกอบทั้งหมด 3 Unit จะถูกสร้างขึ้นอัตโนมัติ
ขั้นตอนต่อไปคือการเชื่อมต่อกับ Database ในที่นี้ผู้เขียนใช้ Microsoft SQL Server
เชื่อมต่อ DBX ในหน้าต่าง Data Explorer แล้วใช้เมาส์ลาก Table เข้ามาใน ServerMethodUnit1

 
โปรแกรมจะสร้าง SQLConnection และ SQLDataSet ให้เอง
นำ DataSetProvider มาวางแล้วกำหนด DataSet ไปที่ DataSet ในที่นี้คือ EMPLOYEE   ตามภาพ
ขั้นตอนสุดท้ายให้กำหนดค่า Active=true ใน DataSet EMPLOYEE หากไม่มี error ถือว่าการเชื่อมต่อข้อมูลสำเร็จ Save Project ได้เลย

 

 
จากนั้นให้ทดสอบรัน DataSnap Server ขึ้นมา และค้างไว้เพื่อจะสร้างฝั่ง Client ขึ้นมาเชื่อมต่อ
(เนื่องจากใน Delphi XE จะไม่รัน App Server อัตโนมัติ เหมือนใน Delphi 7) 

 

 
การสร้าง Application Client
โปรแกรมฝั่ง Client ก็สร้างตามปกติ โดยเลือกสร้างเป็น VCL Forms Application

 
เลือก VCL Forms Application
ในฟอร์มฝั่ง Client วาง Component ต่างๆลงไป คือ SQLConnection , DSProviderConnection , CLientDataSet , DataSource และ DBGrid

 
Component ต่างๆ บนฟอร์ม Client
การกำหนดค่า Properties ใน SQLConnection1
การกำหนดค่า Properties ใน DSProviderConnection1
(ค่าของ ServerClassName =TServerMethods1 ก็คือชื่อคลาสของ ServerMethodUnit1 ที่อยู่บน App Server นั่นเอง)
Server Class Name
กำหนด RemoteServer และ ProviderName ให้กับ ClientDataSet1
จากนั้นก็เหลือแค่ DataSource1 ที่กำหนดให้ DataSet มองไปที่ ClientDataSet1
และ DBGrid ให้มองไปที่ DataSource1 จากนั้นเมื่อกำหนด Active=true ใน ClientDataSet แล้ว จะปรากฎข้อมูลใน DBGrid ซึ่งเป็นการรับข้อมูลมาจาก DataSnap Server หรือ Application Server นั่นเอง

 
เมื่อ ClientDataSet Active
หมายเหตุ
หาก Connect DataSnap Server จากฝั่ง Client ไม่ได้ให้ตรวจสอบ Property Driver -> Communication Protocol ว่ากำหนดชนิดการเชื่อมต่อเป็นไปตามที่กำหนดใน DataSnap Server หรือไม่


 

 

 

Post โดย :  huwko Date: 2011-09-19 21:35:12 ip: 180.183.245.49

โปรแกรมช่วยลง Component delphi d7-XE

DelphiPI 0.55



Folder View





List View





Delphi Version View



 

DelphiPI 0.3x-0.4x versions

http://code.google.com/p/delphipi/wiki/Screenshots 


Post โดย :  huwko Date: 2011-09-20 10:20:56 ip: 118.175.76.231

http://stackoverflow.com/questions/3600466/need-simple-example-to-use-tadoconnection-to-connect-to-mysql-default-databasse

C:\xampp\mysql\bin>mysql.exe  --version 
mysql
.exe  Ver 14.14 Distrib 5.1.41, for Win32 (ia32) 

so, the correct connection string is

'Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mysql;User=root; Password=;Option=3;' 

(and don't forget to load the MySql ODBC 5.1 driver!

Short code to do it :

procedure TForm1.Button1Click(Sender: TObject); 
 
var AdoConnection : TAdoConnection; 
     
DataBase : String; 
begin 
 
Try 
   
AdoConnection := TADOConnection.Create(nil); 
 
   
if AdoConnection.Connected then  // already connected? 
   
begin 
     
MessageDlg('Already connected', mtInformation, [mbOK], 0); 
     
Exit; 
   
end; 
 
   
begin 
     
DataBase := 'mysql'; 
 
     
AdoConnection.LoginPrompt:=False;//dont ask for the login parameters 
     
AdoConnection.ConnectionString := 'Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=' + Database + ';User=root; Password=;Option=3;'; 
 
     
AdoConnection.Connected := True; //open the connection 
 
     
MessageDlg('Connected to databse "' + DataBase + '".', mtInformation, [mbOK], 0); 
   
end; 
 
 
Except 
   
On E: Exception do 
   
begin 
     
MessageDlg('Cannot connect to databse "' + DataBase + '"!.' + #13 + #10 + 'Please report this problem (is MySql running?)', mtError, [mbOK], 0); 
   
end; 
 
end;     
end; 

I found some old code and am trying to figure it out.

Here's some code to attempt to the default MySql d/b calld mysql as user root with no password..

const MYSQL_CONNECT_STRING_FROM_DELPHI = 
 
'Driver={MySQL ODBC 3.51 Driver};Server=%s;Database=%s;User=%s; Password=%s;Option=3;';  
 
var AdoConnection : TAdoConnection; 
AdoConnection.ConnectionString :=  
       
Format(MYSQL_CONNECT_STRING_FROM_DELPHI,['localhost',DataBase,'root','']); 
AdoConnection.Connected := True; 

(I could have used TADOCommand, but prefer just to use TAdoConnection throughout my code)

When I run it I get ELoException [Microsoft][ODBC Driver manager] Data source name not found and no default driver specified.


Post โดย :  huwko Date: 2011-09-20 12:07:25 ip: 118.175.76.231

http://www.youtube.com/watch?v=3nYuVAtqtJo&feature=player_embedded

 

 


Post โดย :  huwko Date: 2011-09-22 10:54:36 ip: 118.175.76.231

Componant Delphi Web

 

http://www.delphipages.com/


Post โดย :  huwko Date: 2011-09-23 11:31:40 ip: 118.175.76.231