Q&A

  • 레코드에 데이타 연속 넣기.
에디트 박스1에 입력해야 할 값이 있고

에디트 박스2에 반복 회수가 있읍니다.



입력값을 필드명이 a1,a2,a3,a4,a5,..... 인 필드에

반복회수 만큼 -- 예로 반복회수가 3이면 a1,a2,a3 에

값을 입력 하려 합니다.



for 문을 사용하면 될것 같은데..

실제 필드에 값 넣기가 어렵군요...



도움 부탁 합니다.



3  COMMENTS
  • Profile
    왕초짜 2001.01.12 23:45
    이전의 두분에게 감사 드리면서

    많은 힌트가 되었읍니다.



    이런식으로 구성 해 봤네요.......





    for문과 case 문의 적절한 조화로..





    var no ,i: integer;



    begin

    no := strtoint(회수==> edit2.text);



    for i := 1 to no do

    begin

    case i of

    1: 테이블.a1.value := 입력값 ;

    2: 테이블.a2.value := 입력값 ;

    3: 테이블.a3.value := 입력값 ;

    계속

    end

    end;

    end;





  • Profile
    최진석 2001.01.12 21:15
    이렇게 해보세요.. 잘 될려나??

    var sql : string;

    i : integer;

    begin

    sql := 'insert into table1('

    for i := 1 to StrtoInt(Trim(edit2.Text)) do

    begin

    if i < StrtoInt(Trim(edit2.Text)) then

    sql := sql + 'a'+IntToStr(i) + ','

    else sql := sql + 'a'+IntToStr(i) + ') ';

    end;

    sql := sql + ' values(';

    for i := 1 to StrtoInt(Trim(edit2.Text)) do

    begin

    if i < StrtoInt(Trim(edit2.Text)) then

    sql := sql + '''' + edit1.Text + ''','

    else sql := sql + '''' + edit1.Text + ''') ';

    end;

    query1.close;

    query1.sql.clear;

    query1.sql.add(sql);

    query1.ExceSQL

    end;

    함 해보세요.



    왕초짜 wrote:

    > 에디트 박스1에 입력해야 할 값이 있고

    > 에디트 박스2에 반복 회수가 있읍니다.

    >

    > 입력값을 필드명이 a1,a2,a3,a4,a5,..... 인 필드에

    > 반복회수 만큼 -- 예로 반복회수가 3이면 a1,a2,a3 에

    > 값을 입력 하려 합니다.

    >

    > for 문을 사용하면 될것 같은데..

    > 실제 필드에 값 넣기가 어렵군요...

    >

    > 도움 부탁 합니다.

    >

  • Profile
    정성훈 2001.01.12 09:16




    왕초짜 wrote:

    > 에디트 박스1에 입력해야 할 값이 있고

    > 에디트 박스2에 반복 회수가 있읍니다.

    >

    > 입력값을 필드명이 a1,a2,a3,a4,a5,..... 인 필드에

    > 반복회수 만큼 -- 예로 반복회수가 3이면 a1,a2,a3 에

    > 값을 입력 하려 합니다.

    >

    > for 문을 사용하면 될것 같은데..

    > 실제 필드에 값 넣기가 어렵군요...

    >

    > 도움 부탁 합니다.

    >



    안녕하세요. 음 이렇게 함 어떨런지요..



    procedure DBUpdate( iSel, iCnt : Byte );

    begin

    with Query1 do

    begin

    Close;

    SQL.Clear;

    case iSel do

    0 : begin

    SQL.Add( 'Insert Into Tablename Values' );

    SQL.Add( '''' + Edit1.Text + '''' );

    end;



    1 : begin

    SQL.Add( 'Update Tablename Set' );

    case iCnt do

    0 : ;

    1 : SQL.Add( '2번필드 = ''' + Edit1.Text + '''' );

    2 : SQL.Add( '3번필드 = ''' + Edit1.Text + '''' );

    3 : SQL.Add( '4번필드 = ''' + Edit1.Text + '''' );

    end;

    end;

    end;

    ExecSQL; //SQLExec 인가? 헷갈림^^;;

    end;

    end;





    Button1.Click~~

    var

    i : Byte;

    begin

    if StrToInt( Edit2.Text ) = 1 then DBUpdate( 0, 0 )

    else begin

    for i := 1 to StrToInt( Edit2.Text ) do

    begin

    with Query1 do

    begin

    Close;

    SQL.Clear;

    SQL.Add( 'Select * From Tablename );

    SQL.Add( 'where Key = '''' + Key + '''' );

    Open;

    end;

    if Query1.RecordCount = 0 then DBUpdate( 0, 0 )

    else DBUpdate( 1, IntToStr( Edit2.Text ) - 1 );

    end;

    end;

    end;



    음..어떨지 모르겠네요..나름대로 생각해 본건데..저도 아직은 초보수준이라..

    키가 없는건지? 키가 있다면 저렇게 하시면 될듯 싶은데요...

    만약 새로운 데이타라면 처음에 키값을 정해주시고 두번째 수정할때부터 키값을

    찾아서 하시면 될듯 싶습니다..

    더 좋은 방법 아시는분 답변좀~ 저도 한수 배우게요..