안녕하세요.. 이곳에서 많은 도움 받고 있는 허접프로그램머입니다.
예전에도 질문 올렸는데.. 너무 감사드리고요....
다름이 아니오라 프로그램내에서 데이타를 불러와서, 그 데이타를 다시 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를 어떻게 받아야 받아야 하는지를 모르겠네요.... 좀 대충 수정이라도 부탁드립니다.......... 끝까지 읽어 주셔서 감사합니다.....
수고 많습니다.
참조만 하세요
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 새로운 기술인것
같네요....
원하는 답을 주지못해서 죄송합니다.
그럼 수고 하세요