BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: kobe ที่ มิถุนายน 01, 2010, 09:18:35 AM

หัวข้อ: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: kobe ที่ มิถุนายน 01, 2010, 09:18:35 AM
อยากทราบว่าการใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ใน Report Designer ใช้ต่างกันยังไงครับ
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มิถุนายน 01, 2010, 09:26:18 AM
GetSQLStringData    เอาไว้ดึงค่า ๆ เดียวครับ



ส่วน  GetSQLSubQueryData()  เอาไว้ดึงข้อมูลเป็น  เพื่อสร้างเป็นเงื่อนไขของคำสั่ง SQL อีกที
เช่น 

GetSQLSubQueryData('select hn from patient limit 3')
ผลลัพที่ได้จะเป็น
'xxxxxxx','xxxxxxx','xxxxxxx'

สามารถเอาตัวแปรมารับแล้วเอาไปใส่ในคำสั่ง SQL 
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: kobe ที่ มิถุนายน 01, 2010, 09:37:29 AM
GetSQLStringData    เอาไว้ดึงค่า ๆ เดียวครับ



ส่วน  GetSQLSubQueryData()  เอาไว้ดึงข้อมูลเป็น  เพื่อสร้างเป็นเงื่อนไขของคำสั่ง SQL อีกที
เช่น 

GetSQLSubQueryData('select hn from patient limit 3')
ผลลัพที่ได้จะเป็น
'xxxxxxx','xxxxxxx','xxxxxxx'

สามารถเอาตัวแปรมารับแล้วเอาไปใส่ในคำสั่ง SQL 


แล้วเวลาเอาตัวแปรมารับผลลัพธ์ของ GetSQLSubQuery() เราจะอ้างถึงข้อมูลที่ Query ออกมายังไงครับ เช่น ตัวอยางของคุณ Imnuke ได้ผลลัพธ์มา 3 hn แล้วผมจะอ้างถึง hn ที่ 1 ยังไงครับ
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มิถุนายน 01, 2010, 09:53:28 AM
GetSQLStringData    เอาไว้ดึงค่า ๆ เดียวครับ



ส่วน  GetSQLSubQueryData()  เอาไว้ดึงข้อมูลเป็น  เพื่อสร้างเป็นเงื่อนไขของคำสั่ง SQL อีกที
เช่น 

GetSQLSubQueryData('select hn from patient limit 3')
ผลลัพที่ได้จะเป็น
'xxxxxxx','xxxxxxx','xxxxxxx'

สามารถเอาตัวแปรมารับแล้วเอาไปใส่ในคำสั่ง SQL 


แล้วเวลาเอาตัวแปรมารับผลลัพธ์ของ GetSQLSubQuery() เราจะอ้างถึงข้อมูลที่ Query ออกมายังไงครับ เช่น ตัวอยางของคุณ Imnuke ได้ผลลัพธ์มา 3 hn แล้วผมจะอ้างถึง hn ที่ 1 ยังไงครับ

ผลลัพธ์ที่ได้คือ  String  1  ตัว  ที่มีค่า  'xxxxxxx','xxxxxxx','xxxxxxx'
แล้วคำสั่ง SQL  ของเราก็คือ  String 

เราสามารถนำตัวแปรที่ได้มาต่อกับคำสั่ง SQL  ได้เลย

เช่นต้องการชื่อนามสกุลของ  3  คนนี้
ก็จะได้ SQL ประมาณนี้ครับ
fhn := GetSQLSubQueryData('select hn from patient limit 3');
SQL := 'select concat(pname,fname,"  ",lname) from patient where hn in ('+ fhn +')';

แล้วนำตัวแปร  SQL  ไปรันได้เลย

การใช้ SubQuery ใน SQL  บางครั้งจะทำให้การดึงข้อมูลช้า
การใช้  GetSQLSubQueryData()  จะทำรายงานเราดึงข้อมูลได้เร็วขึ้น  (ในกรณีที่มีการใช้ SubQuery ซ้ำ ๆ กันหลายรอบ)

ถ้าพลาดยังไง ขออภัยด้ยนะคับ   ;D
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: kobe ที่ มิถุนายน 01, 2010, 11:10:50 AM
ขอถามอีกข้อครับ ถ้าผมต้องการสร้างรายการตัวเลือกแบบ Listbox (ตามรูป) โดยตัวรายการแสดงเป็นชื่อของยา แล้วใช้คำสั่ง SQL ดึงข้อมูล โดยอ้างถึง icode ของยาใน listbox นั้นต้องทำยังไงครับ ผมลองทำแล้วตัวรายการเลือกมันแสดงเป็น icode ของยาครับ (ตามรูป) พอดึงชื่อมาแสดงใน listbox แล้วรันคำสั่ง SQL โดยอ้างชื่อมันไม่ตรงเงื่อนไขอะครับ
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มิถุนายน 01, 2010, 12:01:28 PM

Query  ชื่อยากับ Icode ออกมาเลยครับ
แล้วใช้  substring  ดึง  icode 

เดี๋ยวบ่าย ๆ มาลง  code ให้
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Khuad ที่ มิถุนายน 01, 2010, 12:03:05 PM
ขอถามอีกข้อครับ ถ้าผมต้องการสร้างรายการตัวเลือกแบบ Listbox (ตามรูป) โดยตัวรายการแสดงเป็นชื่อของยา แล้วใช้คำสั่ง SQL ดึงข้อมูล โดยอ้างถึง icode ของยาใน listbox นั้นต้องทำยังไงครับ ผมลองทำแล้วตัวรายการเลือกมันแสดงเป็น icode ของยาครับ (ตามรูป) พอดึงชื่อมาแสดงใน listbox แล้วรันคำสั่ง SQL โดยอ้างชื่อมันไม่ตรงเงื่อนไขอะครับ
... ประมาณว่า ....

var
listbox,icode : string;

begin

   listbox:= GetPickupList('select concat(name," ",strength," / ",units,"(",icode,")") '+
   'from drugitems order by name,strength,units  ');
   {สร้างรายชื่อยาให้เลือกใน list}

   icode:= GetSQLStringData('select icode from drugitems  '+
   'where concat(name," ",strength," / ",units,"(",icode,")") = "'+listbox+'" ');
   {แปลงค่าใน listbox ให้เป็น icode}

end;

... จากนั้นก็เอา icode ไปใช้งานได้ครับ  ผมอธิบายเรื่องทฤษฎีไม่ค่อยเก่งเหมือนน้องนุ๊กนะครับ  .. :D ...

... เรื่องเอาชื่อยา(หรืออื่นๆ)มาทำเป็น list ให้เลือก ต้องระวังนิดเรื่องรายชื่อยาที่อาจจะมีการซ้ำกันได้ ถ้าใช้ชื่อยาอย่างเดียว  อาจได้ค่า icode ที่เราอ้างอิงจากชื่อยาผิดจากที่เราต้องการได้ครับ ...
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มิถุนายน 01, 2010, 12:04:39 PM
ลง  Code  เลยละกันครับ มีนิดเดียว

procedure GlobalOnCreate;
var cm,icode:String;
begin
 cm:=GetPickupList('select concat(icode," - ",name) from drugitems limit 10');
 icode := Copy(cm,0,7);
 showmessage('ICODE = '+icode);
end;



อันนี้ไม่ต้องกังวลชื่อยาซ้ำกันครับ    ;D
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: kobe ที่ มิถุนายน 01, 2010, 12:13:33 PM
ขอบคุณทุกคำแนะนำครับ
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Khuad ที่ มิถุนายน 01, 2010, 12:14:21 PM
... สอบถามนิดนะครับน้องนุ๊กหรือ อ.ท่านอื่นๆ ครับ เกี่ยวกับ GetSQLSubQueryData  ว่ามันมี limit ของข้อมูลหรือเปล่าครับ  ถ้ามีเป็นขนาดเท่าไรครับ ...

... ผมเคยใช้ GetSQLSubQueryData เพื่อเก็บค่า HN (ซึ่งมีประมาณ 8,000 record)  ปรากฏว่า GetSQLSubQueryData ไม่มีข้อมูลเลยครับ  
    แต่ถ้ากำหนดให้มี limit แค่ 500  ปรากฏว่ามีข้อมูลของ HN ให้ได้(500 record)ครับ ....  :D ....
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: James011 ที่ มิถุนายน 01, 2010, 13:17:27 PM
... สอบถามนิดนะครับน้องนุ๊กหรือ อ.ท่านอื่นๆ ครับ เกี่ยวกับ GetSQLSubQueryData  ว่ามันมี limit ของข้อมูลหรือเปล่าครับ  ถ้ามีเป็นขนาดเท่าไรครับ ...

... ผมเคยใช้ GetSQLSubQueryData เพื่อเก็บค่า HN (ซึ่งมีประมาณ 8,000 record)  ปรากฏว่า GetSQLSubQueryData ไม่มีข้อมูลเลยครับ  
    แต่ถ้ากำหนดให้มี limit แค่ 500  ปรากฏว่ามีข้อมูลของ HN ให้ได้(500 record)ครับ ....  :D ....

  ;D ;D ;D ดูของผมนะครับ
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มิถุนายน 01, 2010, 15:07:39 PM
ไม่แน่ใจเหมือนกันครับ   อ.ขวด
แต่ขอเดาไว้ก่อน   อิอิ    ถ้ามี  limit  จริง ๆ คงเป็น  limit  ที่เป็น  lenght  ของ  string  อ่ะครับ
ปกติก็ไม่เคยใช้ถึงสักที

แต่เห็นของ  อ.เจม   แล้ว  เหมือนชีวิตจะเกิน  100   เลยนะครับ  (ไม่มี  limit  ชีวิตเกิน 100) ;D
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: Khuad ที่ มิถุนายน 01, 2010, 15:39:23 PM

... สงสัยอย่างที่นุ๊กบอกครับ   พอดีจำไม่ได้ว่าตอนที่เจอเป็นรายงานที่ใช้คำสั่งแบบไหน  ..  :D ...

   หรืออาจรีบร้อนไม่ได้รอให้มีการประมวลผลข้อมูลซึ่งเยอะมากเสร็จก่อน 
   วัยรุ่นก็เงี๊ยแหละครับ ใจร้อน 555555  ...  ;D  ;D .....
หัวข้อ: Re: การใช้ฟังก์ชั่น GetSQLStringData() กับ GetSQLSubQueryData() ต่างกันยังไง ?
เริ่มหัวข้อโดย: udomchok ที่ มิถุนายน 01, 2010, 20:29:36 PM
ขอถามอีกข้อครับ ถ้าผมต้องการสร้างรายการตัวเลือกแบบ Listbox (ตามรูป) โดยตัวรายการแสดงเป็นชื่อของยา แล้วใช้คำสั่ง SQL ดึงข้อมูล โดยอ้างถึง icode ของยาใน listbox นั้นต้องทำยังไงครับ ผมลองทำแล้วตัวรายการเลือกมันแสดงเป็น icode ของยาครับ (ตามรูป) พอดึงชื่อมาแสดงใน listbox แล้วรันคำสั่ง SQL โดยอ้างชื่อมันไม่ตรงเงื่อนไขอะครับ
ลองศึกษาจาก http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=12853.0 ครับ