BMS-HOSxP Community
HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Bond_007 ที่ กรกฎาคม 25, 2011, 17:13:11 PM
-
พอดีได้รับมอบหมายให้เขียนรายงานครับผมลองกำหนดตัวแปรขึ้นมา
doctor := GetSQLStringData('select dthdiagdct from ipt where an="'+DBPipeline['num2']+'"');
Value := ' ' +GetSQLStringData('select name from doctor where code ="'+doctor+'"');
หลังจากลองประมวลผลดูปรากฎว่าไม่ออกครับซึ่งถ้าเป็นรายงานอื่นกำหนดแบบนี้มันออก เลยไปดูข้อมูล 'num2'ปรากฎว่ามันเป็น แบบ Integer ก็เลยสงสัยวามันไม่ออกเพราะใช้ GetSQLStringData
ด้วยความมั่วก็เลยเปลี่ยนเป็นแบบนี้ครับ
doctor := GetSQLIntegerData('select dthdiagdct from ipt where an="'+DBPipeline['num2']+'"');
Value := ' ' +GetSQLStringData('select name from doctor where code ="'+doctor+'"');
ปรากฎว่าขึ้น ERROR ตามภาพครับไม่ทราบว่าต้องแก้ยังไงครับ
-
... ตอนแรกที่ลองประมวลผลดูแล้วไม่ออก
ได้ตรวจสอบดูหรือยังครับ ว่า DBPipeline['num2'] มีข้อมูลหรือเปล่าครับ ... :D ...
-
มีนะครับอาจารย์เป็นเลข an ครับ
... ตอนแรกที่ลองประมวลผลดูแล้วไม่ออก
ได้ตรวจสอบดูหรือยังครับ ว่า DBPipeline['num2'] มีข้อมูลหรือเปล่าครับ ... :D ...
-
... ลองส่งตัวรายงานมาให้ทดสอบสักนิด นะครับผม ... :D ....
-
ตัวรายงานครับ :D
-
... อ้อ ลืมไปครับ
ได้ลองตรวจสอบดูหรือยังครับ ว่า ในตาราง ipt ที่มี an ตาม DBPipeline['num2'] นี่
ใน dthdiagdct มีข้อมูลอยู่หรือเปล่าครับ ลองดูอีกสักรอบนะครับ ... :D ....
-
ลองใส่นี่เข้าไปดูหายหรือเปล่า ไม่แน่ใจนะครับ
doctor := GetSQLStringData('select dthdiagdct from ipt where an="'+floattostr(DBPipeline['num2'])+'"');
-
ตรวจสอบแล้วมีข้อมูลครับ :D
... อ้อ ลืมไปครับ
ได้ลองตรวจสอบดูหรือยังครับ ว่า ในตาราง ipt ที่มี an ตาม DBPipeline['num2'] นี่
ใน dthdiagdct มีข้อมูลอยู่หรือเปล่าครับ ลองดูอีกสักรอบนะครับ ... :D ....
-
ผมใส่แบบนี้ยังไม่ออกครับไม่รู้ว่าถูกหรือเปล่าครับ
-
... ยังไม่ได้ดูเลย อิ อิ
เดี๋ยวทานข้าวก่อนนะครับ ... ;D ;D ;D ...
-
ครับผม ;D ;D
... ยังไม่ได้ดูเลย อิ อิ
เดี๋ยวทานข้าวก่อนนะครับ ... ;D ;D ;D ...
-
... สาเหตุที่ ลองประมวลผลดูแล้วไม่ออก
เป็นเพราะว่า an คือ DBPipeline['name2'] ครับ
ไม่ใช่ DBPipeline['num2'] ... :D ...
-
... ที่จริงไม่ต้องประกาศตัวแปรเพิ่มก็ได้ครับ
ใช้คำสั่งแบบนี้ใน variable เลยก็ได้ครับ ... :D ...
Value := ' '+GetSQLStringData('select d.name from ipt i,doctor d '+
'where i.dthdiagdct = d.code and i.an = "'+DBPipeline['name2']+'" ');
-
คดีพลิก หลงประเด็นไปตั้งนาน (4 ชั่วโมง) ขอบพระคุณเป็นอย่างสูงครับอาจารย์ ได้แล้วครับ ;D
... สาเหตุที่ ลองประมวลผลดูแล้วไม่ออก
เป็นเพราะว่า an คือ DBPipeline['name2'] ครับ
ไม่ใช่ DBPipeline['num2'] ... :D ...
-
.....และแล้วก็มีอีกจุดที่แก้ไม่ได้ครับ ไม่สามารถดึงที่อยู่ได้ครับลองเขียนแบบนี้ดึงไม่ออกครับ
hn_ward := GetSQLStringData('select hn from ipt where an="'+DBPipeline['name2']+'"');
Value :=GetPatientAddress ('"'+DBPipeline['hn_ward']+'"');
-
hn_ward เป็น ตัวแปร ไม่ใช่ฟิล์ด
น่าจะเป็น
Value :=GetPatientAddress ('"'+hn_ward+'"');
มากกว่า
-
ลองทำดูแล้วไม่ได้ครับตามรูปครับ
hn_ward เป็น ตัวแปร ไม่ใช่ฟิล์ด
น่าจะเป็น
Value :=GetPatientAddress ('"'+hn_ward+'"');
มากกว่า
-
ลองทำดูแล้วไม่ได้ครับตามรูปครับ
hn_ward เป็น ตัวแปร ไม่ใช่ฟิล์ด
น่าจะเป็น
Value :=GetPatientAddress ('"'+hn_ward+'"');
มากกว่า
Value :=GetPatientAddress (hn_ward); ได้เลยครับลองดู
หรือ ไม่ต้องผ่านตัวแปรครับ
Value :=GetPatientAddress (GetSQLStringData('select hn from ipt where hn="'+DBPipeline['name2']+'"'));
-
ได้แล้วครับ
hn_ward := GetSQLStringData('select hn from ipt where an="'+DBPipeline['name2']+'"');
Value :=GetPatientAddress (hn_ward);
-
... ลองใช้คำสั่งแบบไม่ต้องผ่านตัวแปร อย่างที่ท่าน chitvichai แนะนำดูสิครับ
ผมว่าตรวจสอบง่ายกว่านะครับ ... :D ....