ถ้าคิวรี่ออกมาแค่ row เดียว field เดียว จะใช้แบบนี้ก็ได้ครับ
fhn := GetSQLdata('select hn from ovst where vn = "'+fvn+'"');
----------------------------------------------------------------------------------
แต่ถ้าต้องการคิวรี่ออกมา row เดียว แต่หลาย field ก็ใช้แบบนี้ครับ
procedure .........
var
sql, f1, f2: string;
tmp: TClientDataset;
begin
sql := 'SELECT field1, field2, ... FROM ..............';
tmp.data := HOSxP_GetDataSet(sql);
//เวลาจะใช้งานก็แบบนี้ครับ
f1 := tmp.FieldByName('field1').AsString;
f2 := tmp.FieldByName('field2').AsString;
//ก็เอา result ที่ได้มาใส่เข้าไปใน client dataset เลยก็ได้ ****************
end;
----------------------------------------------------------------------------------
ถ้า result คิวรี่ออกมามีหลาย row
ก็เอา result ที่ได้มาใส่เข้าไปใน client dataset เลยก็ได้ ****************
หรือใช้วิธีการ loop เอาข้อมูลมาใช้ หรืออาจจะคำนวนออะไรก่อนก็ได้ครับ
procedure .........
var
sql, f1: string;
tmp: TClientDataset;
begin
sql := 'SELECT field1, field2, ... FROM ..............';
try
tmp.data := HOSxP_GetDataSet(sql);
while not tmp.eof do begin
f1 := tmp.FieldByName('field1').AsString;
tmp.Next;
end;
except
on E : Exception do Exit;
end;
end;
----------------------------------------------------------------------------------
โดยคำนึงถึงการ except error เอาไว้ด้วยเพื่อป้องกันการผิดพลาดของโปรแกรม