한개의 원본 DB가 있고 그 DB의 특정 필드를 기준으로 테이블을 새로 생성 했습니다.
그리고, 원본 DB의 레코드를 새로 나누어진 DB에 루프를 돌리며 insert 하는 부분 입니다.
그런데 에러가 나서 더 이상 나가질 못하는군요..
ENoResultSet with Message Error creating Cursor handle
이러한 에러 메세지가 나오는데 감이 안잡히네요..
조언 부탁 드리겠습니다...
그럼 즐프들 하시구요~~
======소스 부분 입니다...=============
qry.SQL.Add('select DISTINCT pmi_mesh from ' + trim(Edit1.Text));
qry.Active := true;
qry.Open;
for j := 0 to qry.RecordCount -1 do
begin
Showmessage (qry.FieldValues['pmi_mesh']);
FileName := '';
FileName := Edit2.text + '_' +qry.FieldValues['pmi_mesh'];
q.close;
q.sql.clear;
q.DatabaseName:= 'MyNewAlias2';
q.SQL.Add (' select pmi_mesh,st_nd_id,ed_nd_id,tlinkidp1,tlinkidn1,st_dir,ed_dir, ');
q.SQL.Add (' road_cate,link_cate,link_facil,road_no,width,oneway,lane,speedlh,road_name, ');
q.SQL.Add (' regioncd,tollLink ');
q.SQL.Add (' from ' + Edit2.Text);
q.SQL.Add (' where pmi_mesh = ''' + qry.FieldValues['pmi_mesh']+''' ');
//q.SQL.Add (' where st_nd_id = ''' + qryTemp.FieldValues['st_nd_id']+''' ');
//q.SQL.Add (' and ed_nd_id = ''' + qryTemp.FieldValues['ed_nd_id']+''' ');
q.Active := true;
q.open;
for h := 0 to q.RecordCount -1 do
begin
Showmessage (q.FieldValues['pmi_mesh'] + ','+q.FieldValues['st_nd_id']);
qdiv.Close;
qdiv.SQL.Clear;
qdiv.DatabaseName := 'MyNewAlias4';
qdiv.SQL.Add('insert into' + ' ' +FileName);
qdiv.SQL.Add('(pmi_mesh,st_nd_id,ed_nd_id,tlinkidp1,tlinkidn1,st_dir,ed_dir,');
qdiv.SQL.Add('road_cate,link_cate,link_facil,road_no,width,oneway,lane,speedlh,road_name,');
qdiv.SQL.Add('regioncd,tollLink)');
qdiv.SQL.Add('VALUES');
qdiv.SQL.Add('('+ '''' + q.FieldByName('pmi_mesh').AsString + '''' + ',' + '''' + q.FieldByName('st_nd_id').AsString + '''' +',' + '''' + q.FieldByName('ed_nd_id').AsString + '''' + ',' );
qdiv.SQL.Add(''+ '''' + q.FieldByName('tlinkidp1').AsString + '''' +',' + '''' + q.FieldByName('tlinkidn1').AsString + '''' + ',' + '''' + q.FieldByName('st_dir').AsString + '''' + ',' );
qdiv.SQL.Add(''+ '''' + q.FieldByName('ed_dir').AsString +'''' + ',' +'''' + q.FieldByName('road_cate').AsString +'''' + ',' +'''' + q.FieldByName('link_cate').AsString +'''' +',' );
qdiv.SQL.Add(''+ '''' + q.FieldByName('link_facil').AsString +'''' + ',' +'''' + q.FieldByName('road_no').AsString +'''' + ',' +'''' + q.FieldByName('width').AsString +'''' +',' );
qdiv.SQL.Add(''+ '''' + q.FieldByName('oneway').AsString +'''' + ',' + '''' + q.FieldByName('lane').AsString +'''' + ',' + '''' + q.FieldByName('speedlh').AsString +'''' + ',' );
qdiv.SQL.Add(''+ '''' + q.FieldByName('road_name').AsString +'''' + ',' +'''' + q.FieldByName('regioncd').AsString +'''' + ',' + '''' +q.FieldByName('tollLink').AsString + '''' + ')');
try
qdiv.Active := true;
qdiv.Open; //====================>>요부분에서 에러가 납니다.ㅜ.ㅜ
except
qdiv.Close;
qdiv.Free;
Exit;
end;
q.Next;
end;
qry.Next;
end;
end;
이건 보통 데이터셋 으로 Select할때 쓰는 방법이고
Insert, delete또는 update는 Execute를 쓰죠
데이타셋도 아니고요..