어제 까지 잘 되던 것이 오늘 갑자기 실행도 되지 않는 에러 메세지를
띄웁니다. 그래서 다시 다 없애고 처음 부터 다시 하였습니다.
그런데 한 두 번은 제대로 되다 가 다시 세번째 쯤 되는 똑같이
에러가 나더군요, 그리고 그밖에는 제 자신의 기술적인 문제도 몇가지 있습니다.
먼저. 우편번호 검색하는 프로그램입니다.제기 짠 것인데 틀린 부분이 있으면 조언을 해 주시고 에러 메세지를 언급해 드리겠습니다.
1.에러메세지
project prjZip.exe raised exception class EResNotFound with
message 'Resource TForm1 Not Found'.Press stopped .Use step
or Run to continue.
(제 생각에는 TForm1 을 못 찾는다는 말 같은데 가자기 form이 없어진다는거죠
프로그램을 껐다가 키면 이젠 form은 안 나타나는거 있죠.무엇이 잘못 일까요
제 생각에는 프로그래밍 상의 문제는 아닌거 같은데.. 하여튼 올려 봅니다)
procedure TForm1.Button1Click(Sender: TObject);
begin
Listview1.Items.Clear ;
with adoquery1 do
begin
sql.Add ('select zipcode,sido,gugun,dong from zipcode where dong = :dong');
parameters.ParamByName('dong').value := edit1.text;
open;
end;
while not adoquery1.eof do
begin
with ListView1.Items.Add do
begin
Caption := ADOQuery1.FieldByname('zipcode').AsString;
SubItems.Add(ADOQuery1.FieldByname('sido').AsString);
SubItems.Add(ADOQuery1.FieldByname('gugun').AsString);
SubItems.Add(ADOQuery1.FieldByname('dong').AsString);
end;
ADOQuery1.Next;
end;
end;
end.
2.두번째는 한 번 우편번호를 찾은 후에 연속으로 다른 주소를 찾으려면은 에러가나는데
'BOF 또는 EOF가 참이거나 현재의 레코드를 삭제 했습니다.요청한 작업에 현재 레코드가
필요합니다'
Close에서 나는데 그 구문들을 어떻게 고쳐야지 안전하게 실행 시킬수 있을까요?
고수님들 좀 갈쳐 주세요... 전 심각합니다.... 감사!
begin
Listview1.Items.Clear ;
with adoquery1 do begin
Close; <--- 기존에 오픈되어 있는 쿼리를 Close 시킵니다.
with SQL do begin
Clear; <--- 기존에 저장되어 있던 SQL 구문을 없애는 겁니다. 위에 Close시 자동 클리어 되는 지는 잘 모르겠슴당... ㅡ.ㅡ
Add ('select zipcode,sido,gugun,dong from zipcode where dong = :dong');
parameters.ParamByName('dong').value := edit1.text;
end;
open;
while not EOF do begin
with ListView1.Items.Add do begin
Caption := ADOQuery1.FieldByname('zipcode').AsString;
SubItems.Add(ADOQuery1.FieldByname('sido').AsString);
SubItems.Add(ADOQuery1.FieldByname('gugun').AsString);
SubItems.Add(ADOQuery1.FieldByname('dong').AsString);
end;
Next;
end;
end;
첫번째 질문은 저두 잘 모르겠군요.. ㅜ.ㅜ
두번째 질문한 내용은 아마도 오픈되어 있던 쿼리를 닫지 않은 상태로 다시 열어서 발생하는 문제 같습니다.
아니면 SQL 구문을 초기화 시켜주지 않으셔서 발생되는 문제같군요.....
SQL.ADD 구문을 SQL.Clear하지 않고 계속해서 사용하시면 SQL구문 뒤에 추가되는 걸로 알고 있습니다.
이경우 문제가 많이 발생할 요지가 많죠...
지나가다가 보구 답변드립니다....
Jane wrote:
> 어제 까지 잘 되던 것이 오늘 갑자기 실행도 되지 않는 에러 메세지를
> 띄웁니다. 그래서 다시 다 없애고 처음 부터 다시 하였습니다.
> 그런데 한 두 번은 제대로 되다 가 다시 세번째 쯤 되는 똑같이
> 에러가 나더군요, 그리고 그밖에는 제 자신의 기술적인 문제도 몇가지 있습니다.
> 먼저. 우편번호 검색하는 프로그램입니다.제기 짠 것인데 틀린 부분이 있으면 조언을 해 주시고 에러 메세지를 언급해 드리겠습니다.
> 1.에러메세지
> project prjZip.exe raised exception class EResNotFound with
> message 'Resource TForm1 Not Found'.Press stopped .Use step
> or Run to continue.
> (제 생각에는 TForm1 을 못 찾는다는 말 같은데 가자기 form이 없어진다는거죠
> 프로그램을 껐다가 키면 이젠 form은 안 나타나는거 있죠.무엇이 잘못 일까요
> 제 생각에는 프로그래밍 상의 문제는 아닌거 같은데.. 하여튼 올려 봅니다)
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Listview1.Items.Clear ;
> with adoquery1 do
> begin
> sql.Add ('select zipcode,sido,gugun,dong from zipcode where dong = :dong');
> parameters.ParamByName('dong').value := edit1.text;
> open;
> end;
> while not adoquery1.eof do
> begin
> with ListView1.Items.Add do
> begin
> Caption := ADOQuery1.FieldByname('zipcode').AsString;
> SubItems.Add(ADOQuery1.FieldByname('sido').AsString);
> SubItems.Add(ADOQuery1.FieldByname('gugun').AsString);
> SubItems.Add(ADOQuery1.FieldByname('dong').AsString);
> end;
> ADOQuery1.Next;
> end;
> end;
>
> end.
> 2.두번째는 한 번 우편번호를 찾은 후에 연속으로 다른 주소를 찾으려면은 에러가나는데
> 'BOF 또는 EOF가 참이거나 현재의 레코드를 삭제 했습니다.요청한 작업에 현재 레코드가
> 필요합니다'
> Close에서 나는데 그 구문들을 어떻게 고쳐야지 안전하게 실행 시킬수 있을까요?
> 고수님들 좀 갈쳐 주세요... 전 심각합니다.... 감사!