안녕하세요 델가족 여러분
서버에 있는 오라클디비를 SQL로 읽어 그 내용을 그대로 파라독스디비로 백업을 받고자
하는데...
아래처럼 구현하면 될 것도 같은데 잘 안되네요...
var tindex : integer;
with SQLtraffic do begin //서버에 있는 오라클디비를 읽음
close;
sql.clear;
sql.add('select * from Tastdb');
open;
while not eof do begin
tindex := 0;
for tindex := 0 to fieldcount do begin //SQLtraffic 의 필드갯수
with SQLtra do begin
close;
sql.clear;
sql.add('Insert into testdb2'); //백업대상 디비
//아래구문이 될것도 같은데 안됩니다.
//파라독스디비 첫번째 필드에 오라클디비 첫번째 값을 대입
//이후 for문에의해 두번....세번째필드...
fields[tindex] := SQLtraffic.Fields[tindex];
end;
end;
SQLtra.ExecSQL;
next;
end;
end;
고수님들 위의 구문은 될 수 없는 구문인가요?
흠...일단 디비종류는 별 차이가 없고요..
(어떤디비에서 어떤디비로 가느냐는 다 거기서 거기인거죠..^^;;)
일단 님의 소스에서는 insert 구문에 문제가 있는거 같습니다.
> sql.add('Insert into testdb2'); //백업대상 디비
> //아래구문이 될것도 같은데 안됩니다.
> //파라독스디비 첫번째 필드에 오라클디비 첫번째 값을 대입
> //이후 for문에의해 두번....세번째필드...
> fields[tindex] := SQLtraffic.Fields[tindex];
insert in tablename (fieldlist) values (valuelist)
이런식으로 sql구문을 만드셔야겟죠...
필드리스트나 값들을 구하는건 어렵지 않겟죠 ^^''
(간단한 방법은 어차피 sql구문과 필드구조가 같으면 먼저 sql문을 작성해
놓고...값만은 param으로 넘기면 깔끔해지죠...)
글쿠...
> for tindex := 0 to fieldcount do begin //SQLtraffic 의 필드갯수
여기서 fieldcount-1 로 해줘야 할껄여?? (가물가물하네여 ^^'')
그럼...휘리리릭~
bLue bLood.
초보 wrote:
> 안녕하세요 델가족 여러분
>
> 서버에 있는 오라클디비를 SQL로 읽어 그 내용을 그대로 파라독스디비로 백업을 받고자
> 하는데...
> 아래처럼 구현하면 될 것도 같은데 잘 안되네요...
>
> var tindex : integer;
> with SQLtraffic do begin //서버에 있는 오라클디비를 읽음
> close;
> sql.clear;
> sql.add('select * from Tastdb');
> open;
> while not eof do begin
> tindex := 0;
> for tindex := 0 to fieldcount do begin //SQLtraffic 의 필드갯수
> with SQLtra do begin
> close;
> sql.clear;
> sql.add('Insert into testdb2'); //백업대상 디비
> //아래구문이 될것도 같은데 안됩니다.
> //파라독스디비 첫번째 필드에 오라클디비 첫번째 값을 대입
> //이후 for문에의해 두번....세번째필드...
> fields[tindex] := SQLtraffic.Fields[tindex];
> end;
> end;
> SQLtra.ExecSQL;
> next;
> end;
> end;
>
> 고수님들 위의 구문은 될 수 없는 구문인가요?