Q&A

  • [질문-급구]Query 결과의 필드지정방법
Query3 결과

code code_name

---- -----------------

01 정보처리기사 2급

02 워드프로세서..



|

|



with Query5 do

begin

close;

sql.clear;

sql.add('UPDATE '+param_tbl+' SET ');

sql.add('Query3.fields[0].asstring = :r1'',');

sql.add('Query3.fields[1].asstring = '':r2''');

parambyname('r1').Asstring := edit1.text;

parambyname('r2').Asstring := edit2.text;

ExecSQL;

ShowMessage('데이타가 수정되었습니다..');

end;



* Query3 의 첫번째필드 = Query3.fields[0].asstring

* Query3 의 두번째필드 = Query3.fields[1].asstring



라고 표시하면 안되나요?



error

Query5 : Parameter 'r1' not found

라고 나오는데 뭐가 원인인지...



3  COMMENTS
  • Profile
    착한악마 2000.03.17 23:24
    > sql.add('UPDATE '''+param_tbl+''' SET ');

    > sql.add('''+Query3.fields[0].asstring+''' = :r1,');

    > sql.add('''+Query3.fields[1].asstring+''' = :r2 ');

    > parambyname('r1').Asstring := edit1.text;

    > parambyname('r2').Asstring := edit2.text;



    이렇게 해보세요.....테스트는 안 해봤지만.....스트링 변수는 '''+변수+''' 로 사용해야 하거든요.....



    최은정 wrote:

    > Query3 결과

    > code code_name

    > ---- -----------------

    > 01 정보처리기사 2급

    > 02 워드프로세서..

    >

    > |

    > |

    >

    > with Query5 do

    > begin

    > close;

    > sql.clear;

    > sql.add('UPDATE '+param_tbl+' SET ');

    > sql.add('Query3.fields[0].asstring = :r1'',');

    > sql.add('Query3.fields[1].asstring = '':r2''');

    > parambyname('r1').Asstring := edit1.text;

    > parambyname('r2').Asstring := edit2.text;

    > ExecSQL;

    > ShowMessage('데이타가 수정되었습니다..');

    > end;

    >

    > * Query3 의 첫번째필드 = Query3.fields[0].asstring

    > * Query3 의 두번째필드 = Query3.fields[1].asstring

    >

    > 라고 표시하면 안되나요?

    >

    > error

    > Query5 : Parameter 'r1' not found

    > 라고 나오는데 뭐가 원인인지...

    >

  • Profile
    nilriri 2000.03.17 05:35
    최은정 wrote:

    > Query3 결과

    > code code_name

    > ---- -----------------

    > 01 정보처리기사 2급

    > 02 워드프로세서..

    >

    > |

    > |

    >

    > with Query5 do

    > begin

    > close;

    > sql.clear;

    > sql.add('UPDATE '+param_tbl+' SET ');

    > sql.add('Query3.fields[0].asstring = :r1'',');

    > sql.add('Query3.fields[1].asstring = '':r2''');

    > parambyname('r1').Asstring := edit1.text;

    > parambyname('r2').Asstring := edit2.text;

    > ExecSQL;

    > ShowMessage('데이타가 수정되었습니다..');

    > end;

    >

    > * Query3 의 첫번째필드 = Query3.fields[0].asstring

    > * Query3 의 두번째필드 = Query3.fields[1].asstring

    >

    > 라고 표시하면 안되나요?

    >

    > error

    > Query5 : Parameter 'r1' not found

    > 라고 나오는데 뭐가 원인인지...

    >



    질문하신 내용만으로는 Query3과 Query5로 서로다른 쿼리가 사용되고 있는것이

    이상하군요...



    > sql.add('Query3.fields[0].asstring = :r1'',');

    이렇게.. sql.add('Query3.fields[0].asstring = :r1,');

    ''(싱글따옴표를 빼야할것 같군요...)



    해결되지 않으시면 멜주세요...



    그럼



  • Profile
    박병영 2000.03.17 03:43
    최은정 wrote:

    > Query3 결과

    > code code_name

    > ---- -----------------

    > 01 정보처리기사 2급

    > 02 워드프로세서..

    >

    > |

    > |

    >

    > with Query5 do

    > begin

    > close;

    > sql.clear;

    > sql.add('UPDATE '+param_tbl+' SET ');

    > sql.add('Query3.fields[0].asstring = :r1'',');

    > sql.add('Query3.fields[1].asstring = '':r2''');

    > parambyname('r1').Asstring := edit1.text;

    > parambyname('r2').Asstring := edit2.text;

    > ExecSQL;

    > ShowMessage('데이타가 수정되었습니다..');

    > end;

    >

    > * Query3 의 첫번째필드 = Query3.fields[0].asstring

    > * Query3 의 두번째필드 = Query3.fields[1].asstring

    >

    > 라고 표시하면 안되나요?

    >

    > error

    > Query5 : Parameter 'r1' not found

    > 라고 나오는데 뭐가 원인인지...

    >



    안녕하세요 ^.^

    Column a,b를 수정할때

    with Query1 do

    begin

    Close;

    SQL.Clear;

    SQL.Add(' Update Table_Name ');

    SQL.Add(' Set a = :a, b = :b ');

    SQL.Add(' Where 조건절 ');

    ParamByName('a').AsString := Edit1.Text;

    ParamByName('a').AsString := Edit2.Text;

    try

    ExecSQL;

    ShowMessage('수정되었습니다.');

    except

    ShowMessage('Error!!');

    end;

    end;



    이렇게 해보세요 !!.