BMS-HOSxP Community

HOSxP => Delphi / Pascal => ข้อความที่เริ่มโดย: manoi ที่ กันยายน 24, 2006, 19:55:54 PM

หัวข้อ: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: manoi ที่ กันยายน 24, 2006, 19:55:54 PM
เพิ่งมีเวลาว่างมานั่งเขียนการพัฒนา Software ด้วย Turbo Delphi ครับ หัวข้อนี้สำหรับผู้ที่ต้องการศึกษาการใช้ Turbo Delphi ทำงานกับ Database โดยเฉพาะครับ

ปัจจุบัน Tools ที่ใช้ในการพัมฒนา Software มีการแข่งขันกันค่อนข้างสูงมาก ทำให้ Borland ที่เคยเป็นผู้นำในเรื่องของ RAD Tools จึงต้องเปลี่ยนกลยุทธ์ในการขายใหม่  โดยออก Delphi มา 2 รุ่น คือ Turbo Delphi Professional และ Turbo Delphi Explorer  โดยในแต่ละรุ่น ก็จะมี Compiler 4 ชนิด แยกเป็น Delphi for .Net, C#, C++ และ Delphi for Win32  และจำกัดการติดตั้งได้เพียง 1 ชนิดต่อ 1 เครื่อง (จะลง Turbo Delphi for C# และ Turbo Delphi for Win32 ในเครื่องเดียวกันไม่ได้)  และที่สำคัีญ Turbo Delphi Explorer เป็น Freeware ที่มีความสามารถเหมือนกับรุ่น Professional ต่างกันก็แค่ไม่สามารถติดตั้ง Component เพิ่มได้ และสามารถนำมาใ้ช้งานพัฒนา Commercial Application ได้โดยไม่ต้องเสียค่าใช้จ่ายใดๆ (แต่ถ้าจะเอามาทำ Commercial ผมแนะนำให้ซื้อ Turbo Delphi Professional ดีกว่าครับ ราคาประมาณ $499 )

และเนื่องจาก HOSxP ถูกพัฒนามาด้วย Delphi  แต่มีการใช้งาน 3rd party component ค่อนข้างเยอะมาก ดังนั้นจึงเป็นโอกาศอันดี หากจะนำ Source Code มาปรับปรุงใหม่ ให้สามารถใช้ Turbo Delphi Explorer พัฒนาได้ และใช้เฉพาะ GPL Component เพื่อที่ว่าหากใครอยากจะเข้ามาร่วมด้วยช่วยกันพัฒนา ก็สามารถทำได้โดยง่าย

ถึงแม้ว่า Turbo Delphi Explorer จะจำกัดการติดตั้ง 3rd Component แต่จำกัดเฉพาะในตัว IDE ครับ (ตอน Design) แต่ในขั้นตอนการทำงานสามารถเขียนคำสั่งให้สร้าง Component ที่ต้องการขึ้นมาได้ครับ โดย 3rd Component ที่ HOSxP จำเป็นต้องใช้ ได้แก่

- Zeoslib สำหรับทำหน้าที่เป็น Database Engine เชื่อมต่อกับระบบฐานข้อมูล (MySQL,PostgreSQl,Microsoft SQL, etc) และจัดการข้อมูล  http://zeos.firmos.at/
- DCPCrypt สำหรับทำหน้าที่เข้ารหัสข้อมูลบางอย่าง (เช่น User Password)  http://www.cityinthesky.co.uk/cryptography.html
- Freereport จากผู้ผลิต Fast Report สำหรับสร้างรายงาน http://freereport.sourceforge.net/en/

ในส่วนของ 3rd component ที่จำเป็น ผม upload ไว้ที่ ftp://ftp.hosxp.net/pub/delphi_component

อันดับแรกให้ทำการ Download Turbo Delphi Explorer for Win32 มาติดตั้งในเครื่องก่อนครับ โดย Download ได้จาก http://www.turboexplorer.com   (แนะนำให้ Download file ที่เป็น ISO มา Write CD เพราะจะมีไฟล์ที่จำเป็นมาครบครับ)



หลังจาก Download มาแล้วให้ทำการติดตั้ง .Net Framework 1.1, .Net Framework SDK, msxml, dotNETJSharp (ที่ต้องติดตั้ง .Net เนื่องจาก Tool บางตัวที่มากับ Delphi ถูกพัฒนาขึ้นโดยใช้ C# ครับ เช่น ECO ) จากนั้นก็ติดตั้ง Delphi และจะต้องลงทะเบียนขอ License key มาติดตั้งไว้ในเครื่องครับ (ลงทะเบียน Free  ใช้งานได้ 100 ปี ..... )

พอติดตั้งเสร็จแล้ว ก็ทำการติดตั้ง 3rd Component ที่จำเป็นลงไปครับ (จาก link ด้านบน) และระบุ Path ให้ Delphi ค้นหาแฟ้มที่จำเ็ป็นพบ ไม่อย่างงั้นจะ Compile Project File ไม่ได้ครับ



หลังจากติดตั้ง component เสร็จแล้ว ก็ให้ทำการ Download Turbo HOSxP มาจาก ftp://ftp.hosxp.net/pub/Turbo_HOSxP  ที่ตั้งชื่อ Turbo HOSxP ก็ให้คล้องจองกับ Turbo Delphi Explorer ไงครับ

ในส่วนของ Turbo HOSxP Source Code ผมได้ทำการปรับปรุงให้มี Function ที่จำเป็นในการเชื่อมต่อกับฐานข้อมูลของ HOSxP (ผ่าน zeoslib) และการตรวจสอบรหัสผู้ใช้งาน (ผ่านระบบ Login) มี Splash Screen และ Mainmenu ตัวโปรแกรมมีลักษณะเป็น MDI Application แต่ตอนนี้มีเฉพาะโครงครับ ยังไม่มีระบบงานอะไร

ในการเข้าถึงข้อมูลและจัดการข้อมูล ระบบถูกออกแบบให้ใช้ TClientDataset ครับ ยกตัวอย่างเช่น หากผมต้องการนำข้อมูลจากตาราง pttype มาใช้งาน ก็เพียงแต่เขียน Code ดังนี้

โค๊ด: Delphi
  1. Unit xxxx;
  2. interface
  3. uses .....,...
  4. implementation
  5. uses HOSxPDMU;
  6.  
  7. Procedure Button1Click(Sender:TObject);
  8. var TC : TClientDataset;
  9. begin
  10.  
  11.   TC := TClientDataset.Create(nil);
  12.   TC.Data := HOSxP_GetDataset('select * from pttype');
  13.   while not TC.eof do
  14.   begin
  15.    showmessage(TC.fieldbyname('name').asstring);
  16.    TC.next;
  17.   end;
  18.   TC.free;
  19.  
  20. end;
  21.  

จากตัวอย่าง การนำข้อมูล (ผลจากคำสั่ง SQL) มาเก็บไว้ที่ TClientDataset จะผ่าน Function HOSxP_GetDataset(sql)  ครับ (ง่ายดีไหม)  อยากได้อะไรก็ดึงมาเลยครับ

หากมีการแก้ไขข้อมูลใน TClientDataset และต้องการ Update ไปยัง Database ก็เพียงแต่เรียกใช้ Function HOSxP_UpdateDelta ครับ ดังตัวอย่าง

 
โค๊ด: Delphi
  1. Unit xxxx;
  2. interface
  3. uses .....,...
  4. implementation
  5. uses HOSxPDMU;
  6.  
  7. Procedure Button1Click(Sender:TObject);
  8. var TC : TClientDataset;
  9. begin
  10.  
  11.   TC := TClientDataset.Create(nil);
  12.   TC.Data := HOSxP_GetDataset('select * from pttype');
  13.   while not TC.eof do
  14.   begin
  15.    TC.edit;
  16.    TC.fieldbyname('name').asstring := 'New Name';
  17.    TC.post;
  18.    TC.next;
  19.   end;
  20.  
  21.   if TC.changecount > 0 then
  22.      HOSxP_UpdateDelta(TC.delta,'select * from pttype');
  23.  
  24.   TC.free;
  25.  
  26. end;
  27.  

ใน Function HOSxP_UpdateDelta จะต้องระบุ Delta packet และ คำสั่งเดิมที่ดึงข้อมูลมาครับ 

Project ที่ Compile แล้วอยู่ที่นี่ครับ ftp://ftp.hosxp.net/pub/Turbo_HOSxP/Turbo_HOSxP.exe

To be continue ....
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: doramon ที่ กันยายน 25, 2006, 03:18:21 AM
ยินดีมากเลย ครับ  ทดสอบมาหลายวันแล้วตั้งแต่ มันปล่อยออกมา 
ตอนแรกก็  download  มาแต่ไม่ได้ลง .net มันไม่ทำงาน
เลยต้องไป ได้ download prereqs_en.zip มาลงก่อนถึงทำงานได้
 :o :o :o :o :o :o :o
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: doramon ที่ กันยายน 30, 2006, 22:33:51 PM
เอามาฝาก 

http://alvarogp.googlepages.com/index.htm#turbotweaks
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: manoi ที่ ตุลาคม 11, 2006, 19:31:13 PM
สงสัย TClientdataset ?  อ่านต่อได้ที่นี่ http://delphi.about.com/od/usedbvcl/a/tclientdataset.htm
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: suchai ที่ ตุลาคม 22, 2006, 04:49:59 AM
จักเป็น ประโยชน์ ต่อ นักพัฒนา  Software  ได้ อีกมาก ครับ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: LDHP ที่ มกราคม 22, 2007, 02:40:51 AM
โหลดมาแล้ว   แต่ ขอ License  ไม่ได้ มันถาม Sereal ด้วยอ่ะทำงัยต่อดีค่ะ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: doramon ที่ มกราคม 22, 2007, 03:28:48 AM
ได้ครับมันต้องขอ  License   ให้ได้ไม่เช่นนั้นก็ทำอะไรต่อไม่ได้ครับ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: LDHP ที่ มกราคม 22, 2007, 05:24:49 AM
แล้วต้องไปขอจากตรงไหน  ในเว็บหรือโปรแกรมเพราะหนูหาไม่เจอเลยค่ะ 
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: มดตานอย ครับ.. ที่ มกราคม 22, 2007, 06:46:18 AM
http://www.codegear.com/tabid/144/Default.aspx

หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: มดตานอย ครับ.. ที่ มกราคม 22, 2007, 06:47:13 AM
https://members.borland.com/login.aspx?returnURL=http://trial.borland.com/survey.aspx?sid=620
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: LDHP ที่ มกราคม 22, 2007, 09:43:37 AM
ได้แล้วค่ะ  ขอบคุณมากนะคะ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: manoi ที่ มกราคม 28, 2007, 06:24:38 AM
รวม Link สำหรับผู้ที่ต้องการศึกษา Delphi

http://www.marcocantu.com/edelphi/
http://www.delphibasics.co.uk/
http://www.3dbuzz.com/vbforum/sv_delphi.php
http://blogs.codegear.com/nickhodges/articles/26687.aspx
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: รัตนโอภาส ที่ กุมภาพันธ์ 15, 2007, 22:37:51 PM
ดีมากเลยครับ ดำน้ำ หาหลายวันแล้ว ขอบคุณมากเลยครับ อยู่ระหว่างกำลังศึกษา
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: draran ที่ กุมภาพันธ์ 15, 2007, 23:25:53 PM
น่าสนใจมากครับ ต้องเรียนบ้างแล้ว
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: gon ที่ กรกฎาคม 30, 2007, 12:51:51 PM
อ.อ้อด ครับ ผมต้องการสร้าง Script ส่งออกรายงาน 18 แฟ้มใหม่เนื่องจากโปรแกรมที่ใช้ ส่งออกได้ไม่ครบ
ตกหล่นบางฟิลด์ และก็มี 4 แฟ้มที่ส่งออกไม่ได้เลย ซึ่งเป็นแฟ้มที่บังคับว่าจะต้องส่งออกข้อมูลให้ครบถ้วน
ถ้าไม่ครบจะถูกตัดงบประมาณ เพราะ สปสช.จะเอางบมาผูกกับจำนวน Record รายงาน
     ตอนนี้ผมใช้ Delphi 7 Version 7.2
     Hosxp Version 2.9.29
     Server Xeon 3.0 Linux CentOS Ram 512 MB
ผมจะเอา Soruce Code PCUExportU.PAS มาแก้ไขและ :)คอมไพล์เป็นโปรแกรมเฉพาะ จะได้หรือไม่?
ผมลองทดสอบเปิดดูแล้ว ปรากฏว่า มันไม่พบ Class ต่อไปนี้
    TJvInstallLabel
    TJvDirectoryEdit
    TSeSkinButton
    TSeSkinProgressBar
    TdxMaskEdit
    TSeSkinCheckBox
    TTzDbf
    TzQuery
ไม่ทราบว่าจะต้องใช้โปรแกรม Delphi รุ่นใด? ใช้Component ใดบ้าง? และอย่างไร?
ช่วยแนะนำด้วยครับ...

                                                     ปกรณ์  จันทร์สด
                                                 ลูกศิษย์จากบางกอกเก้า
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: armds ที่ กรกฎาคม 30, 2007, 20:57:04 PM
พี่อ๊อด  ว่าง ๆ โพส มาบอกเล่ากันบ้างนะครับ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: LDHP ที่ พฤษภาคม 26, 2010, 00:07:48 AM
เมื่อไร จะมี part 2 ค่ะอาจารย์  อยากเรียนต่อแล้ว
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: dreaming ที่ พฤษภาคม 26, 2010, 09:44:01 AM
ขอบคุณมากมายครับ
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: tototyt ที่ พฤษภาคม 29, 2010, 09:02:16 AM
ขอบคุณครับอาจารย์ เป็นความรู้มากครับ

* จะมีแนวโ้น้มให้มันเป็น Opensource ทั้งหมดเลยได้ไหมครับ
ทั้งโปรแกรมพัฒนาและ Data Base น่ะ ( Delphi และ Tool ตัวที่ฟรีจริงๆ )
หัวข้อ: Re: Database development with Turbo Delphi Part I
เริ่มหัวข้อโดย: มนตรี บอยรักยุ้ยคนเดียว ที่ พฤษภาคม 29, 2010, 09:57:16 AM
ขอบคุณครับอาจารย์ เป็นความรู้มากครับ

* จะมีแนวโ้น้มให้มันเป็น Opensource ทั้งหมดเลยได้ไหมครับ
ทั้งโปรแกรมพัฒนาและ Data Base น่ะ ( Delphi และ Tool ตัวที่ฟรีจริงๆ )

ใจเย็น เห็น อ.กำลังทำรันบน Ubuntu