Q&A

  • query문 가져오기
안녕하세요



공부하다가 궁금한게 있어서요

검색같은것 할때 query1.sql.add(문장) 뭐 이런식으로 하자나요

그런데 제가 알고 싶은것은 그때의 문장을 다시 불러 올수 있지 않을까해서요

그래서 query1.sql이런식으로 해봤는데 tstring형이라 string으로 얻어올수가 없네요

sql[0].text등도 안되고요

2  COMMENTS
  • Profile
    신호성 1999.12.04 17:52
    과객 wrote:

    > 안녕하세요

    >

    > 공부하다가 궁금한게 있어서요

    > 검색같은것 할때 query1.sql.add(문장) 뭐 이런식으로 하자나요

    > 그런데 제가 알고 싶은것은 그때의 문장을 다시 불러 올수 있지 않을까해서요

    > 그래서 query1.sql이런식으로 해봤는데 tstring형이라 string으로 얻어올수가 없네요

    > sql[0].text등도 안되고요



    Query.Sql.Text로 하면 SQL문을 String으로 가져올 수 있습니다.



  • Profile
    좋은날 1999.12.08 05:17
    신호성 wrote:

    > 과객 wrote:

    > > 안녕하세요

    > >

    > > 공부하다가 궁금한게 있어서요

    > > 검색같은것 할때 query1.sql.add(문장) 뭐 이런식으로 하자나요

    > > 그런데 제가 알고 싶은것은 그때의 문장을 다시 불러 올수 있지 않을까해서요

    > > 그래서 query1.sql이런식으로 해봤는데 tstring형이라 string으로 얻어올수가 없네요

    > > sql[0].text등도 안되고요

    >

    > Query.Sql.Text로 하면 SQL문을 String으로 가져올 수 있습니다.

    >





    참고로 제 코딩 방법을 알려드리자면

    query1.sql.add는 쓰지 않습니다.

    대신 sql문을 변수에다가 넣고 조합합니다.

    이 방법의 장점은 실행시 SQL문을 query1.sql.add보다 좀 편하게 debugging

    할 수 있다는 거죠..

    lvs_query :=

    'select a.item_cd, b.goods_nm, b.standard, b.unit, ' +

    'b.goods_type1, b.goods_type2, ' +

    'iif(isnull(sum(a.amt)) , 0, sum(a.amt)) as q_amt, ' +

    'iif(isnull(sum(a.vat)) , 0, sum(a.vat)) as q_vat, ' +

    'iif(isnull(sum(a.tot_amt)) , 0, sum(a.tot_amt)) as q_totamt, ' +

    'iif(isnull(sum(a.sale_plamt)), 0, sum(a.sale_plamt)) as q_plamt ' +

    'from tbmemo a inner join tbgoods b ' +

    'on a.item_cd = b.goods ' +

    'where a.deal_date between "' + dte_stdt.text + '" and "' + dte_endt.text + '" ' +

    'and a.deal_gbn = "OT" ';



    if trim(dlc_goodsType.text) <> '' then

    lvs_query := lvs_query +

    'and b.goods_type1 = "' + Quy_GoodsTypeCom_code.AsString + '" ';

    if trim(dlc_goodsType2.text) <> '' then

    lvs_query := lvs_query +

    'and b.goods_type2 = "' + Quy_GoodsType2Com_code.AsString + '" ';



    lvs_query := lvs_query +

    'group by a.item_cd, b.goods_nm, b.standard, b.unit, ' +

    'b.goods_type1, b.goods_type2 ';



    if rdb_order.ItemIndex = 0 then // 매출순

    lvs_query := lvs_query +

    'order by 9 desc ,10 desc '

    else if rdb_order.ItemIndex = 1 then // 손익순

    lvs_query := lvs_query +

    'order by 10 desc , 9 desc ';

    with Quy_Data do begin

    Close;

    SQL.Clear;

    SQL.Text := lvs_query;

    Open;

    end;



    더 조은 방법이 있으면 알켜조요...

    아 참. 위의 쏘스는 parambyname을 쓰지 않았습니다.