안녕하세요~
좋은 자료를 바탕으로 조금씩 배워나가고 있는 델파이 입문자입니다.
데이타베이스쪽에서 막혀서 질문 드립니다.
문자메시지를 보내기 위한 테이블에 데이터를 저장하는 부분이 막혔습니다.
현재 파라독스형식으로 이루어진 테이블이 두개 있습니다.
하나는 사용자 테이블(이름,핸드폰번호,사용자타입)
다른하나는 알람 테이블(넘버,알람ID,알람내용,..)
위 테이블 중 알람테이블은 쓰레드를 이용하여 UDP 통신중 실시간으로 알람 검색을 해서
알람 발생 시 테이블을 업데이트 합니다.
자, 여기서 질문입니다.
실시간으로 업데이트 된 테이블에서 데이타를 뽑아와서
사용자 테이블의 데이타와 접목시켜서 새로운 테이블에 저장을 하려고 합니다.
예를 들어 알람이 2개 발생했고 사용자테이블에 사용자가 2명이 있다고 가정한다면,
새로운테이블에는 다음과 같이 저장이 되어야 합니다.
User1Name, PhoneNumber, AlarmID(1), AlarmName(1) ==> 앞 두개의 데이타는 알람테이블에서..뒤두개는 테이블에서..
User1Name, PhoneNumber, AlarmID(2), AlarmName(2)
User2Name, PhoneNumber, AlarmID(1), AlarmName(1)
User2Name, PhoneNumber, AlarmID(2), AlarmName(2)
즉, 사용자테이블의 데이터와 알람테이블의 데이터를 추출하여 새로운테이블에 저장하되,
알람의 갯수를 파악하여 사용자테이블의 데이터는 중복되어야 합니다.
(알람의 갯수에 따라서 같은 사용자에게 갯수에 해당하는 알람내용을 통보해야하기 때문에..)
DBGrid 같은 경우는 폼에 그리드 컴포넌트를 뿌리고 SQL작업을 쉽게 할 수 있다는 건 압니다만
폼을 사용하지 않고 코드를 이용하여 SQL을 사용할 수 있는 방법을 알고 싶습니다.
그리고 위와 같은 코드를 작성하기 위한 가르침을 부탁드립니다.
Var
sQry: string;
qryTemp: TQuery;
Begin
sQry := 'INSERT INTO Table1 (Field1, Field2, ...) VALUES (Value1, Value2,...);
qryTemp := TQuery.Create(nil);
with qryTemp do
begin
DatabaseName := 'DatabaseName';
SQL.Clear;
SQL.Add(sQry);
Prepare;
ExecSQL;
end;
qryTemp.Free;
end;