ผู้เขียน หัวข้อ: Database development with Turbo Delphi Part I  (อ่าน 31867 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Database development with Turbo Delphi Part I
« เมื่อ: กันยายน 24, 2006, 19:55:54 PM »
0
เพิ่งมีเวลาว่างมานั่งเขียนการพัฒนา 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 ....
« แก้ไขครั้งสุดท้าย: พฤษภาคม 30, 2015, 14:36:57 PM โดย admin »
HOSxP Project Manager / Cheif Developer / BMS MD

doramon

  • บุคคลทั่วไป
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #1 เมื่อ: กันยายน 25, 2006, 03:18:21 AM »
0
ยินดีมากเลย ครับ  ทดสอบมาหลายวันแล้วตั้งแต่ มันปล่อยออกมา 
ตอนแรกก็  download  มาแต่ไม่ได้ลง .net มันไม่ทำงาน
เลยต้องไป ได้ download prereqs_en.zip มาลงก่อนถึงทำงานได้
 :o :o :o :o :o :o :o

doramon

  • บุคคลทั่วไป
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #2 เมื่อ: กันยายน 30, 2006, 22:33:51 PM »
0

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #3 เมื่อ: ตุลาคม 11, 2006, 19:31:13 PM »
0
สงสัย TClientdataset ?  อ่านต่อได้ที่นี่ http://delphi.about.com/od/usedbvcl/a/tclientdataset.htm
HOSxP Project Manager / Cheif Developer / BMS MD

ออฟไลน์ suchai

  • Full Member
  • ***
  • กระทู้: 200
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #4 เมื่อ: ตุลาคม 22, 2006, 04:49:59 AM »
0
จักเป็น ประโยชน์ ต่อ นักพัฒนา  Software  ได้ อีกมาก ครับ
ภก.สุชัย  อุดมคำ Email:suchaiu@gmail.com
Photharam Hospital  Administrator
อดีต : ผู้จัดการระบบ รพ.สุวรรณภูมิ ร้อยเอ็ด ปี 2540 ( โปรแกรม รพ.มะการักษ์ Server 80486 Netware Dos version ) อบรม Dispense มช.
        : ผู้ใช้งาน โปรแกรม  MEDICAL2020 Version Dos ได้รับการ สอน ถ่ายทอดความรู้  จาก ผอ.ชลทิศ รพ.วัดเพลง ราชบุรี ปี 2541-2542
        :ผู้ใช้งาน Dispense รพ.โพธาราม ปี 2534-2545
        :ผูร่วมสนับสนุนการพัฒนา ออกแบบ และ ทดสอบ ระบบ HOSxP Version 2  ที่ รพ. โพธาราม  ( รพ.340 เตียง )   ปี  2546  เป็นต้นมา โดย เลือก เสนอจุดเด่น จากโปรแกรม ต่าง ๆ ที่เคยใช้และดูงาน  มารวมใน HOSxP

เริ่มใช้ HOSxP    20 ม.ค. 2546

ยินดีต้อนรับทุก รพ. มาร่วม แบ่งปัน ความรู้และประสบการณ์ กับ โปรแกรม HOSxP

ออฟไลน์ LDHP

  • Full Member
  • ***
  • กระทู้: 128
  • พิศมัย พื้นนวล พยาบาลชำนาญการ - โรงพยาบาลลำดวน
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #5 เมื่อ: มกราคม 22, 2007, 02:40:51 AM »
0
โหลดมาแล้ว   แต่ ขอ License  ไม่ได้ มันถาม Sereal ด้วยอ่ะทำงัยต่อดีค่ะ
master : ibm 3350 xeon 2.66GHz ram 2G  HD 144
  cenos 5.3 mysql 5.1.30

     slave : P4  2.8GHz  ram 2G HD 80G
        redhat 5.0 mysql 5.0.41


ขอขอบคุณท่านอาจารย์ทั้งหลายนะค่ะ ที่ช่วยเหลือให้ความรู้มากมาย

doramon

  • บุคคลทั่วไป
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #6 เมื่อ: มกราคม 22, 2007, 03:28:48 AM »
0
ได้ครับมันต้องขอ  License   ให้ได้ไม่เช่นนั้นก็ทำอะไรต่อไม่ได้ครับ

ออฟไลน์ LDHP

  • Full Member
  • ***
  • กระทู้: 128
  • พิศมัย พื้นนวล พยาบาลชำนาญการ - โรงพยาบาลลำดวน
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #7 เมื่อ: มกราคม 22, 2007, 05:24:49 AM »
0
แล้วต้องไปขอจากตรงไหน  ในเว็บหรือโปรแกรมเพราะหนูหาไม่เจอเลยค่ะ 
master : ibm 3350 xeon 2.66GHz ram 2G  HD 144
  cenos 5.3 mysql 5.1.30

     slave : P4  2.8GHz  ram 2G HD 80G
        redhat 5.0 mysql 5.0.41


ขอขอบคุณท่านอาจารย์ทั้งหลายนะค่ะ ที่ช่วยเหลือให้ความรู้มากมาย

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #8 เมื่อ: มกราคม 22, 2007, 06:46:18 AM »
0

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ LDHP

  • Full Member
  • ***
  • กระทู้: 128
  • พิศมัย พื้นนวล พยาบาลชำนาญการ - โรงพยาบาลลำดวน
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #10 เมื่อ: มกราคม 22, 2007, 09:43:37 AM »
0
ได้แล้วค่ะ  ขอบคุณมากนะคะ
master : ibm 3350 xeon 2.66GHz ram 2G  HD 144
  cenos 5.3 mysql 5.1.30

     slave : P4  2.8GHz  ram 2G HD 80G
        redhat 5.0 mysql 5.0.41


ขอขอบคุณท่านอาจารย์ทั้งหลายนะค่ะ ที่ช่วยเหลือให้ความรู้มากมาย

ออฟไลน์ manoi

  • Hero Member
  • *****
  • กระทู้: 8,669
  • Respect: +170
    • ดูรายละเอียด
    • HOSxP Community Center
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #11 เมื่อ: มกราคม 28, 2007, 06:24:38 AM »
0
HOSxP Project Manager / Cheif Developer / BMS MD

รัตนโอภาส

  • บุคคลทั่วไป
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #12 เมื่อ: กุมภาพันธ์ 15, 2007, 22:37:51 PM »
0
ดีมากเลยครับ ดำน้ำ หาหลายวันแล้ว ขอบคุณมากเลยครับ อยู่ระหว่างกำลังศึกษา

ออฟไลน์ draran

  • Full Member
  • ***
  • กระทู้: 121
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #13 เมื่อ: กุมภาพันธ์ 15, 2007, 23:25:53 PM »
0
น่าสนใจมากครับ ต้องเรียนบ้างแล้ว
ความช่วยเหลือ จะมายังผู้ที่พยายาม
Administrator,Programmer,Thungyangdaeng Hospital,Pattani
SERVER: Intel Xeon Dual-Core 5140 2.33GHz. Cach 4NB.1333Mhz ,RAM DDR2 512MB*2,HDD SATA2 160 GB*2,
OS:CentOS 4.4 x86_64 MySQL 4.1.20 ,Replicate: Pentium4 WindowsXP RAM 512 MB, Client:Celeron,Sempron,PentiumIII WindowsXP

ออฟไลน์ gon

  • Newbie
  • *
  • กระทู้: 10
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #14 เมื่อ: กรกฎาคม 30, 2007, 12:51:51 PM »
0
อ.อ้อด ครับ ผมต้องการสร้าง 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 ใดบ้าง? และอย่างไร?
ช่วยแนะนำด้วยครับ...

                                                     ปกรณ์  จันทร์สด
                                                 ลูกศิษย์จากบางกอกเก้า
 

ออฟไลน์ armds

  • Hero Member
  • *****
  • กระทู้: 1,084
  • armds
  • Respect: +10
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #15 เมื่อ: กรกฎาคม 30, 2007, 20:57:04 PM »
0
พี่อ๊อด  ว่าง ๆ โพส มาบอกเล่ากันบ้างนะครับ
โรงพยาบาลสมเด็จพระยุพราชด่านซ้าย จ.เลย
ขนาด 60 เตียง นวก. คอมพิวเตอร์ ขึ้นระบบ ปี 2548
ขอบคุณ อ.ชัยพร อ.สุชัย อ.เดชา อ.doreamon อ.naj อ.ขวด และอ.ในเว็บ hosxp.net ทุกท่าน

ออฟไลน์ LDHP

  • Full Member
  • ***
  • กระทู้: 128
  • พิศมัย พื้นนวล พยาบาลชำนาญการ - โรงพยาบาลลำดวน
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #16 เมื่อ: พฤษภาคม 26, 2010, 00:07:48 AM »
0
เมื่อไร จะมี part 2 ค่ะอาจารย์  อยากเรียนต่อแล้ว
master : ibm 3350 xeon 2.66GHz ram 2G  HD 144
  cenos 5.3 mysql 5.1.30

     slave : P4  2.8GHz  ram 2G HD 80G
        redhat 5.0 mysql 5.0.41


ขอขอบคุณท่านอาจารย์ทั้งหลายนะค่ะ ที่ช่วยเหลือให้ความรู้มากมาย

ออฟไลน์ dreaming

  • Jr. Member
  • **
  • กระทู้: 93
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #17 เมื่อ: พฤษภาคม 26, 2010, 09:44:01 AM »
0
ขอบคุณมากมายครับ
admin บ้านนอกมือใหม่
โรงพยาบาลเขาสวนกวาง
centos5.2
mysql 5.1.42 percona
ใหม่จริงครับไม่ค่อยรู้เรื่องช่วยสอนหน่อยนะครับ

ออฟไลน์ tototyt

  • Newbie
  • *
  • กระทู้: 9
  • Respect: 0
    • ดูรายละเอียด
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #18 เมื่อ: พฤษภาคม 29, 2010, 09:02:16 AM »
0
ขอบคุณครับอาจารย์ เป็นความรู้มากครับ

* จะมีแนวโ้น้มให้มันเป็น Opensource ทั้งหมดเลยได้ไหมครับ
ทั้งโปรแกรมพัฒนาและ Data Base น่ะ ( Delphi และ Tool ตัวที่ฟรีจริงๆ )
<b> Open Source เกือบทั้งระบ
Firewall =>  Endian Firewall 2.3.0 (ขึ้นระบบ 10/2552 )
Fax Server => Ubuntu Server + Hylafax + AvanFax
Mail Sever => Ubuntu Server + Postfix + Squirrelmail (Web Mail)
โปรแกรมจัดเก็บเอกสารและงาน ISO => IntraVersion เรียกชื่อใหม่  DMSWeb
โปรแกรมจัดการด้านเอกสาร =>  OpenOffice 3
โปรแกรมบริการงานด้าน  IT  => GLPI เรียกชื่อใหม่  ITWeb
อนาคต EPR  =>  Saeree(เสรี),Compiere,OFBiz
<==  ของฟรี  มันมีเท่าที่อยากให้เราใช้  ซึ่งเราก็ต้องใช้เท่าที่มันมี ==>
 </b>

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: Database development with Turbo Delphi Part I
« ตอบกลับ #19 เมื่อ: พฤษภาคม 29, 2010, 09:57:16 AM »
0
ขอบคุณครับอาจารย์ เป็นความรู้มากครับ

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

ใจเย็น เห็น อ.กำลังทำรันบน Ubuntu
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11