MDB : NMS
SQLDB : PNinfo
MDB의 EQUIPNAME, FAID 값이 각각 SQLDB의 PILOT_SEC_NAME, FA_ID 와 같을때
네가지 값을 MDB에 있는 것을 SQLDB에 업데이터 할려구 합니다.
그 네가지는 아래와 같으며 필드명은 틀립니다. 그러니까..필드명을 맞추고 대입해야겠죠.
대응되는 네가지 입니다. 뒷쪽이 mdb쪽이고.. 앞쪽이 sqldb 쪽 필드명입니다.
SYS_ID = BSID
EXTEND_BASE_ID = BASE_ID
NET_ID = BNID
EXTEND_PN = PN
아래 제 표현이 맞는지 확인좀 해주세요.. . 쩝. 너무 안되는군요.
특히 업테이트 문 뒤로.. 여러분들이 도와주신데루 했는데..안맞는것 같군요.
제가 응용을 못해서리...
그리고 := 와 =: 의 차이점이 뭔가요?
전 시작한지 얼마 안되어서... 잘 모르겠네요.
begin
Query1.sql.add('select * from NMS');
Query1.open;
while not Query1.eof do begin
Query2.sql.clear;
Query2.sql.add('update PNinfo set SYS_ID=BSID:, NET_ID=:BNID, EXTEND_BASE_ID=:BASE_ID');
Query2.sql.add('EXTEND_PN=:PN');
?? Query2.sql.add('where FA_ID =:Query1.fieldbyname.FAID and PILOT_SEC_NAME =:Query1.fieldbyname.EQUIPNAME');
?? Query2.parambyname('PILOT_SEC_NAME').asstring:=Query1.fieldbyname('EQUIPNAME').asstring;
?? Query2.parambyname('FA_ID').asstring:=Query1.fieldbyname('FAID').asstring;
Query2.execsql;
Query1.next;
:= 이건 대입 기호입니다.
A := B 는 B값을 A 로 치환하는 거지요.
파스칼 문법의 기본이니까 모르셔서 물은건 아니시죠?
=: 는 하나의 기호가 아닙니다.
= 에 :varName 이 정확한거지요.
SQL 문에서 연산문의 뒤에 대입되는 값을 변수로
선언하는겁니다.
따라서, Select * From TableName
Where Field_A = :vStr
이라는 문장을 사용한다면,
Query1.SQL.Add(위 문장);
Query1.ParamByName('vStr').As자료형 := 대입할 값;
이 되겠지요.
님이 하신 방법은 필드명과 혼용되어 있군요.
제가 말씀드린것과 그 전에 답변하셨던 님의 내용이 짬뽕되어
있답니다...^^
앗, 오늘 저녁엔 짬뽕시켜묵으까?...즐...