Q&A

  • db 플그램에서 miss match 에러가 나네요
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 ' + Edit1.Text);
        qryTemp.Active := true;
        qryTemp.open;

        DataSource1.DataSet := qryTemp;
        DBGrid1.DataSource:= DataSource1;


//구테이블 루프
for i:= 0 to qryTemp.Recordcount -1 do
begin

   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 = ' + qryTemp.FieldValues['pmi_mesh'] +'');
   q.SQL.Add (' and   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;


보시는 바대로..두개의 쿼리 컴포넌트에서 서로 다르게 커넥팅 해서
한개를 기준으로 루핑 하면서 다른 한개를 하나씩 비교 하는 겁니다.

근데 miss match에러가 나는데요..암래도 제 생각엔 where 조건절에서
나는거 같은데...

함 봐주시구요...조언 부탁드립니다..
1  COMMENTS
  • Profile
    김지현 2004.08.26 02:40
    제가 보기에는 테이블명하고 where 절 텍스트를 추가하실때 문제인거
    같네요
    Sql.Add 이거는 텍스트 추가하는 거기 때문에 텍스트로 들어가게 하셔야
    할거 같은데 지금것은 그냥 값대입이네요

    콤마 숫자를 맞춰보세요


    q.SQL.Add (' where pmi_mesh = ' + qryTemp.FieldValues['pmi_mesh'] +'');


    q.SQL.Add (' where pmi_mesh = ''' + qryTemp.FieldValues['pmi_mesh'] +'''');

    밑에처럼 해야 텍스트로 인식합니다..