디비는 MS SQL Server, 델파이5, win98...
with ADOConnection1 do begin
try
//connectionstring :='Provider=SQLOLEDB.4;Password=APOLLON;Persist Security Info=True;User ID=APOLLON;Initial Catalog=accadmin';
Open;
showmessage('성공');
except
showmessage('실패');
end;
end;
위의 콤포넌트를 하나 가져다 놓고 디자인시에 Open을 해보면 대략 7초정도 걸립니다.
실행시에도 약 7초정도 걸리고요... 쩝...
with ADOQuery1 do begin
Close;
sql.clear;
sql.add('select GUBUN,AB_DATE,NO,LINE,SLIP,DEPT_CODE,NODE_CODE');
sql.add('from AUTODOCU'); //필드가 약 30개 있음
sql.add('where AB_DATE = :p_date');
Parameters.parambyname('p_date').Value := '20020131';
Open;
showmessage(inttostr(recordcount));
end;
인스펙터 Connection 에 ADOConnection1을 주고요
위의 쿼리로 조회하면 (5년간의 데이터 몇만건 되겠죠?..) 약 4분 정도 걸려서 데이터를 가져 오네요...1100여 건을..
캬~ 이정도면 뭐가 잘못되어도 한참 잘못 되었죠?... 안되면 안됐지... 4분이 뭡니까?.... 젠장...
자 여기서 질문합니다.
저는 ODBC를 설정 해 주었습니다. 설정시는 Connect에 약 2~3초 정도됩니다.
근데 ADO 컴포넌트는 ODBC랑 상관없지 않나요? 안잡아 주면 에러가 나던데....
제가 정말로 하고 싶엇던 것은 OLD DB로 연결하고자 하는 것이었거든요 ODBC는 건드리지도 않고....
방법이 없는 것인가요? 이틀째 헤매고 있습니다. 도움 주시면 감사하겠습니다.
with ADOConnection1 do begin
try
connectionstring := 'Provider=SQLOLEDB;SERVER = accadmin;User ID=APOLLON;'
+ 'PassWord = APOLLON;Persist Security Info=False;'
+ 'Data Source=APOLLON';
Open;
except
showmessage('SQL Server 에 접속 할 수 없습니다.관리자에게 문의 바랍니다.!!');
end;
end;
메인폼에 ADOConnection1 하나 갔다 놓고 ConnectionString을 작성합니다.
이때 저는 디자인폼에서 설정 해 주기 않고 위처럼 직접 소스를 적었습니다.
이렇게 하니 (디자인 시는 접속Error 빵빵뜨더니) 한방에 (1초도 안됨..캬캬)연결
되었습니다.
주)ADOConnection1의 접속스트링을 폼에서 디자인시 작업하면 ID,PASS를 입력해도
이상한 sa로 입력되고 합디다....
with ADOQuery1 do begin
Close;
sql.clear;
sql.add('select GUBUN,DATE,NO,LINE,CODE,TIDE');
sql.add('from AUTODOCU');
sql.add('where DATE = :p_date');
Parameters.parambyname('p_date').Value := '2002-12-31';
Open;
end;
그리고 이제 연결된 데이터 베이스에서 어떤 데이블을 불러 작업 해야죠?...
ADOQuery1 를 폼에 가져다 놓고 인스펙터 속성중 Connection속성을"메인폼.ADOConnection1" 이라고 적어 줍니다.
그리고는 위 처럼 쿼리를 돌리면 됩니다.
물론 내컴에 SQL Server 클라이언트가 깔려야 되죠? 서버명, ID, Pass도 알아야 되고..
어제 하루종일 헤매다 해결해서 기쁜마음에... 많은 사람들이 참고가 되었으면 좋겠습니다.