sql문장을 입력받아 결과를 그리드로 보여주는 간단한 프로그램입니다..
<!--CodeS-->
sSqlText := Trim(mmSql.Lines.Text);
if Copy(sSqlText, Length(sSqlText), 1) = ';' then
sSqlText := Copy(sSqlText, 1, Length(sSqlText)-1);
if UpperCase(Copy(sSqlText, 1,6)) <> 'SELECT' then begin
MessageDlg('SELECT 문만 가능합니다!', mtInformation, [mbOK],0);
Exit;
end;
try
qrySql.Close;
qrySql.SQL.Text := sSqlText;
qrySql.Open;
except
on E: Exception do
begin
MessageDlg('구문오류입니다. 담당자에게 문의하세요.' + #13 + '오류내용:' + #13 + E.Message, mtWarning, [mbOK],0);
Exit;
end;
end;
grdResult.Clear;
grdResult.Columns.Clear;
for i := 0 to qrySql.FieldCount - 1 do begin
grdResult.Columns.Add;
grdResult.Columns[i].Title.Caption := qrySql.Fields[i].FieldName;
end;
qrySql.First;
for i := 0 to qrySql.RecordCount - 1 do begin
grdResult.AddRow;
for j := 0 to qrySql.FieldCount - 1 do begin
grdResult[j, i].AsString := qrySql.Fields[j].AsString;
end;
qrySql.Next;
end;
<!--CodeE-->
그런데 필드값이 긴 경우는 16자까지만 가져오네요
예> 실제값 ==> 12345678901234567890
결과값 ==> 1234567890123456
고수님들의 조언 부탁드립니다...
qrySql 컴포넌트의 필드중에 필드값이 16자리인것에 대해서..
필드의 자리수를 13자리로 고정시켜 놓은게 아닌가 하군요..
그렇지 않다면,,
혹시 Grid의 width때문에 글자가 보이지 않는건 아닐까요?
저는 아주 긴 문장도 잘 가져오고 있으므로
문제는 없어 보입니다만..
혹시, TQuery 컴포넌트 맞으시죠?
위 2가지를 한 번 확인해 보세요...