산넘어 산이라고...하나 해결하면 다른 문제가 생기네요..
이것때문에 오늘 하루종일 보냈습니다..
우선 정확한 에러 위치를 찾는데 반나절걸렸구요...해결책 찾다가 결국
도움을 청하게 되었습니다..
고수님들 함 봐주시기 바랍니다..
현상은 두개의 테이블을 비교해서 나온 결과값들을 프린트 해주는것인데요..
잘 되다가..특정 레코드 위치에서 invalid Parameter에러가 발생 합니다.
몇번이고 위치를 확인했습니다...
도통 원인을 모르겠습니다..
Dbase고 string 속성 입니다..
값은 1628인데...에러가 발생을 합니다....
도무지 모르겠습니다..에러의 정확한 위치를 찾는것도 반 해결인데..
나머지 반은 ㅜ.ㅜ
총 레코드의 갯수는 약 86개 정도 되구요...
1628은 한 79번째 정도 있습니다..고로 79째 까지는 에러 없이 잘 됩니다..
모두 레코드들은 잘 들어가 있구요 물론 저놈과 비슷한 4자릿수도 있습니다.
소스 올리겠습니다.
qry.SQL.Clear;
        qry.Close;
        qry.DatabaseName := 'MyNewAlias4';
        qry.SQL.Add('select DISTINCT pmi_mesh from ' + Edit1.Text);
        qry.Active := true;
        qry.Open;
for j := 0 to qry.RecordCount -1 do
   begin
     FileName := '';
     FileName := Edit1.text + '_' +qry.FieldValues['pmi_mesh'];
     //ShowMessage(FileName);
     memo1.Lines.Append(qry.FieldValues['pmi_mesh'] +'신규비교시작');
        qryTemp.SQL.Clear;
        qryTemp.close;
        qryTemp.DatabaseName:= 'MyNewAlias2';
        qryTemp.SQL.Add('select pmi_mesh, st_nd_id, ed_nd_id, tlinkidp1, tlinkidn1, ');
        qryTemp.SQL.Add('st_dir, ed_dir, road_cate, link_cate, link_facil, road_no, ');
        qryTemp.SQL.Add('width, oneway, lane, speedlh, road_name, regioncd, tollLink');
        qryTemp.SQL.Add('from  ' + trim(Edit2.Text));
        qryTemp.SQL.Add('where pmi_mesh = ''' + qry.FieldByName('pmi_mesh').AsString + ''' ');
        qryTemp.open;
        DataSource1.DataSet := qryTemp;
        DBGrid1.DataSource:= DataSource1;
        //구테이블 루프
for i := 0 to qryTemp.RecordCount -1  do
 begin
   q.close;
   q.sql.clear;
   q.DatabaseName:= 'MyNewAlias';
   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 ' + edit1.Text);
   //q.SQL.Add (' where   pmi_mesh = ''' + qryTemp.FieldByName('pmi_mesh').AsString +''' ');
   q.SQL.Add (' where st_nd_id = ''' + qryTemp.FieldByName('st_nd_id').AsString +''' ');
   q.SQL.Add (' and   ed_nd_id = ''' + qryTemp.FieldByName('ed_nd_id').AsString +''' ');
   q.Active := true;
   q.open;
   if q.eof  then //===없다면 (신규)
           begin
           Query2 := TQuery.Create( Self );
           Query3 := TQuery.Create( Self );
           Query2.Close;
           Query2.SQL.Clear;
           Query2.DatabaseName := 'MyNewAlias4';
           Query2.SQL.Add('select st_nd_id from '+ Edit1.Text);
           Query2.SQL.Add('where st_nd_id = ''' + qryTemp.FieldByName('st_nd_id').AsString + ''' ');
           Query2.Open;
           Query2.FetchAll;
           Query3.Close;
           Query3.SQL.Clear;
           Query3.DatabaseName := 'MyNewAlias4';
           Query3.SQL.Add('select ed_nd_id from '+ Edit1.Text);
           Query3.SQL.Add('where ed_nd_id = ''' + qryTemp.FieldByName('ed_nd_id').AsString + ''' ');
                                                                     여기에 값은 들어갑니다.             
           Query3.Open;//==========>에러 뜨는 부분 입니다.. 
          
           Query3.FetchAll;
           if (Query2.RecordCount > 0) and (Query3.RecordCount > 0) then
               begin
                mmTextFile1.Lines.Append(qryTemp.FieldByName('pmi_mesh').AsString +' - ' +qryTemp.FieldByName('st_nd_id').AsString + ' ' + qryTemp.FieldByName('ed_nd_id').AsString + ',' + '병합 link' );
               end
           else if (Query2.RecordCount > 0) or (Query3.RecordCount > 0) then
               begin
                mmTextFile1.Lines.Append(qryTemp.FieldByName('pmi_mesh').AsString +' - ' +qryTemp.FieldByName('st_nd_id').AsString + ' ' + qryTemp.FieldByName('ed_nd_id').AsString + ',' + '분할 link' );
               end
           else
                begin
               mmTextFile1.Lines.Append(qryTemp.FieldByName('pmi_mesh').AsString +' - ' +qryTemp.FieldByName('st_nd_id').AsString + ' ' + qryTemp.FieldByName('ed_nd_id').AsString + ',' + '신규 link' );
               end;
          end;
         qryTemp.next;
 end;
       
    memo1.Lines.Append(qry.FieldValues['pmi_mesh'] +'신규비교완료');
        
  qry.Next;
end;
			 
	
	
    
    
	
	
    
    
    
찾아 봤는데 쉽게 찾아지질 않네요
Query3.Close;
Query3.SQL.Clear;
Query3.DatabaseName := 'MyNewAlias4';
Query3.SQL.Add('select ed_nd_id from '+ Edit1.Text);
Query3.SQL.Add('where ed_nd_id = :sText ')
ParamByName('sText').AsString :=
qryTemp.FieldByName('ed_nd_id').AsString;
위와 같이 코딩을 다른 방향으로 해보심이 어떨지