Q&A

  • 업테이터 잘 안됩니다.
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;
1  COMMENTS
  • Profile
    이경규 2002.05.16 03:25
    :=, =: 의 차이점은...

    := 이건 대입 기호입니다.
    A := B 는 B값을 A 로 치환하는 거지요.
    파스칼 문법의 기본이니까 모르셔서 물은건 아니시죠?

    =: 는 하나의 기호가 아닙니다.
    = 에 :varName 이 정확한거지요.
    SQL 문에서 연산문의 뒤에 대입되는 값을 변수로
    선언하는겁니다.

    따라서, Select * From TableName
               Where Field_A = :vStr

    이라는 문장을 사용한다면,

    Query1.SQL.Add(위 문장);
    Query1.ParamByName('vStr').As자료형 := 대입할 값;

    이 되겠지요.
    님이 하신 방법은 필드명과 혼용되어 있군요.
    제가 말씀드린것과 그 전에 답변하셨던 님의 내용이 짬뽕되어
    있답니다...^^
    앗, 오늘 저녁엔 짬뽕시켜묵으까?...즐...