Q&A

  • DB 관련해서 데이타 뽑아오는 것인데요... 개념이 안 잡히네요..(초허접질문..죄송합니다.)
안녕하세요.. 이곳에서 많은 도움 받고 있는 허접프로그램머입니다.
예전에도 질문 올렸는데.. 너무 감사드리고요....

다름이 아니오라 프로그램내에서 데이타를 불러와서, 그 데이타를 다시 insert 를 해야 하는 프로그램을 짜고 있는데요....

일반책이나 기타 프로그램에서는 DB관련 데이타 보여주는 컨트롤러에 뿌려주는 것만 나와있더라구요.. 제가 잘 못 찾는 건지....

예전에 vb 에서 작업할때는 해당하는 자료를 뽑아서  while 이나 그런 루프를 돌리면서 원하는 자료를 같이 insert 했던 기억이 나는데요... 델파이에서는 그런 예제를 못 찾겠군요......

우선은.. insert나 update는 하고 있습니다..다음.. select 하는 것인데...

with DM.query do begin
   if Active then Close;
    SQL.Clear;
    SQL.Add('select name,age from Ttemp_RACE_SUM where R_DAY = :field1 and RACE_DAY = :field2');
    Parambyname('field1').AsString := '03.05.17';
    Parambyname('field2').AsString := '1';
    ExecSQL;
end;

이런식으로 퀴리를 던지는 것 까지는 알겠는데요... 어디서 open 을 해야 하는 것인지.. 다시 변수를 가지고 name, age를 어떻게 받아야 받아야 하는지를 모르겠네요.... 좀 대충 수정이라도 부탁드립니다.......... 끝까지 읽어 주셔서 감사합니다.....
2  COMMENTS
  • Profile
    Galaxy 2003.10.08 02:46
    안녕하세요
    수고 많습니다.
    참조만 하세요
    i1:integer;
    with DM.query do
          begin
          if Active then Close;
            SQL.Clear;
            SQL.Add('select name,age from Ttemp_RACE_SUM where R_DAY = :field1 and RACE_DAY = :field2');
            Parambyname('field1').AsString := '03.05.17';
            Parambyname('field2').AsString := '1';
            Open;i1:=0;
            if RecordCount = 1 then
              begin
              edit1.text:=FieldByName('Name').asstring;
              edit2.text:=FieldByName('age'   ).asstring;
              end
            else if RecordCount > 1 then
                     begin
                     while not eof do
                             begin
                             i1:=i1 + 1;
                             edit1.text:=FieldByName('Name').asstring;
                             edit2.text:=FieldByName('age'   ).asstring;

    만약에 그리드 이면
                            Cells[0, i1]:=FieldByName('Name').asstring;
                            Cells[1, i1]:=FieldByName('age'   ).asstring;
                             Next;
                             end;
                     end;
            end;
    ExecSql는 입력, 수정, 삭제에 사용이되고 Select에 사용을 않하는것으로
    알고 있는데... 님이 사용하는것으로 봐서는 ExecSQL 새로운 기술인것
    같네요....

    원하는 답을 주지못해서 죄송합니다.
    그럼 수고 하세요

  • Profile
    민경철 2003.10.08 03:22
    충분히 도움 됐습니다..

    감사합니다...