table 즉 h7lab302에서 workarea,accdt,accseq,testcd,vfydt,이외에도 15개필드가 있는데 여기서 primary는 workarea,accdt,accseq,testcd로 잡혀있습니다. 그런데
with basesql do begin
sql.Clear;
sql.Add('select workarea,accdt,accseq,testcd,vfydt from h7lab302');
sql.Add('where testcd = '+'''B101'''+' and accdt = '+'''20041203''');
open;
with dg2 do begin
while (not eof) do
begin
cells[0,rowcount-1]:=FieldByname('workarea').Asstring; <-primary key
cells[1,rowcount-1]:=FieldByname('accdt').Asstring; <-primary key
cells[2,rowcount-1]:=FieldByname('accseq').Asstring; <-primary key
cells[3,rowcount-1]:=FieldByname('testcd').Asstring; <-primary key
cells[4,rowcount-1]:=FieldByname('vfydt').Asstring;
rowcount:=rowcount+1;
next;
end;
end;
end;
로 하면 왜 먹통이 되죠...?
DB는 SYBASE 입니다.
primary key가 설정되지 않은 다른 필드는 select가 안되나요...다른 디비에서는 되는것 같던데....
sybase에서는 필드를 인위적으로 제한할수 있나요...select가 안되게...?
그런데 vfydt 필드를 빼면 또 되거든요...!
with basesql do begin
sql.Clear;
sql.Add('select workarea,accdt,accseq,testcd from h7lab302');
sql.Add('where testcd = '+'''B101'''+' and accdt = '+'''20041203''');
open;
with dg2 do begin
while (not eof) do
begin
cells[0,rowcount-1]:=FieldByname('workarea').Asstring;
cells[1,rowcount-1]:=FieldByname('accdt').Asstring;
cells[2,rowcount-1]:=FieldByname('accseq').Asstring;
cells[3,rowcount-1]:=FieldByname('testcd').Asstring;
rowcount:=rowcount+1;
next;
end;
end;
end;
현재 소스만봤을때는 문제가 없습니다.