Q&A

  • ADO로 MS SQL서버 연결하기..
디비는 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는 건드리지도 않고....
방법이 없는 것인가요?  이틀째 헤매고 있습니다. 도움 주시면 감사하겠습니다.
2  COMMENTS
  • Profile
    아폴론 2003.02.06 21:31

    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도 알아야 되고..  

    어제 하루종일 헤매다 해결해서 기쁜마음에... 많은 사람들이 참고가 되었으면 좋겠습니다.
  • Profile
    한방러쉬 2003.02.06 23:56
    SQL 서버 클라이언트 안깔려도 됩니다요...
    • 머슴
      2003.02.07 06:28
        바뀐 시험으로는 책이 안나온데요... 수지가 안맞는다나...   방법은 VB책의 문...
    • 델파이정복자
      2003.02.07 20:05
      답변 고마웠습니다... 수고하세여.. 님.........
    • 이뿌이
    • 2003.02.06 20:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2003.02.06 20:47
      안녕하세요 하얀까마귀 입니다. 디비 그리드라면 dataSet에 연결이 되어있을껍니다. 디비그리드의 클...
    • 이뿌이
      2003.02.06 20:48
      답변해 주셔서 정말 감사합니다. 즐프하세염
    • 이병훈
      2003.02.07 07:20
      안녕하세요. 헐.~ 저와 같은 이름이네여. 푸헐~ 머 똑같습니다. 솔라리스라구 다를 것이 있나요...
    • 구창민
      2003.02.06 23:17
      지금 델파이코리아(www.delphikorea.com)로 달려가셔서 강좌나 팁란중 어딘가에 권용길님이 쓰신 '...
    • KDDG_ZZOM
      2003.02.06 20:38
      아마도... BDE Administrator에서 Configuration텝에서 Native의 오라클을 선택하시고 VENDOR INIT인가???...
    • 주엔이
    • 2003.02.06 19:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김상수
    • 2003.02.06 06:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2003.02.06 19:09
      글세요...^^ 근데 쿼리문이 얼마나 복잡하길레 사이즈걱정을... 예전에 한 1000라인되는 쿼리문도 문제...
    • 백호
    • 2003.02.06 05:21
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 권민호
    • 2003.02.06 05:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.06 23:39
      정확한 원인이 아닐수도 있습니다만, Thread 를 생성시 FreeOnTerminate 를 이용하시고 종료시 Termi...
    • 아폴론
    • 2003.02.06 04:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아폴론
      2003.02.06 21:31
      with ADOConnection1 do begin    try       connectionstri...
    • 한방러쉬
      2003.02.06 23:56
      SQL 서버 클라이언트 안깔려도 됩니다요...
    • 이뿌이
    • 2003.02.06 04:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • KDDG_hyun
    • 2003.02.06 02:42
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.06 03:09
      현아 연산식이 길게 늘어졌구나.. 연산 우선순위를 차례로 나열해서 코딩해두고, 하나씩 연산해서 밑...
    • KDDG_hyun
      2003.02.06 03:18
      울 길드 게시판에두 적었는데 String 로 형식을 변환함면 갑이 제대로 나와요.. 아 머리아포요..
    • 성더기
      2003.02.06 09:14
      소수점 이하는 무저건 잘라 버릴거 같은디... 아닌가?..ㅡㅡ;;
    • KDDG_hyun
      2003.02.06 18:52
      Trunc 말고 round 도 써 봤는데 매 한가지고.. 둘다 안써봐도 그러고.. 그게 아니더라도 걍 0 이 나...
    • 또치
      2003.02.06 20:00
      A := Trunc((Aa * Q_qry1.FieldByName('AAa').AsInteger / 100 + Ab *    Q_qry1.Fiel...
    • 유재훈
    • 2003.02.06 02:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.06 02:53
      안녕하세요~ 구창민입니다. 머 여러가지 방법이 있겠지만, 어플내에서만 동작하는 훅을 설치해보세여...
    • 도니
    • 2003.02.06 02:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Cali
      2003.02.06 03:13
      indexFieldNames 으로는 해결방법이 없는듯 한데.. indexName 으로 써 보세요.. SimpleDataSet.Index...
    • 도니
      2003.02.06 19:54
      아직 안해봐서 되는지 안되는지는 모르겠지만.. 신경써주셔서 감사합니다..^^
    • KDDG_BaSTaD
      2003.02.06 21:52
      ==> 말그대로 등록되지 않은 이미지 확장자라는 뜻입니다. 기본적으로 Graphics.pas 에는 bmp만 등록...
    • KDDG_ZZOM
      2003.02.06 18:56
      image1.picture.loadfromfile('c:programimagebackground풍경구 름.jpg'); 여기서... 디렉토리가 잘못된...
    • KDDG_ZZOM
      2003.02.06 19:02
      OnEnter에서 해보세요... 저도 예전에 비슷한걸 한것같네요... 근데 개인적으로 콤보박스는 리소스를 ...
    • 성더기
      2003.02.06 09:17
      ComboBox에 값을 채우는 프로시져를 하나 만드시구 디비가 변경될때마다 그넘을 호출해 주는 것은 어떨까...
    • 델파이탐크루즈
      2003.02.06 02:17
      방법론을 알려드릴께여... 한번 해보세요.. 처음에는 폼 생성될때 Query로 끌고 오셔서 item add...
    • 또치
    • 2003.02.06 01:29
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2003.02.06 07:26
      안녕하세요. 한원희입니다. 동일한 함수로 정의하고, 각 DLL을 어떻게 사이트별로 구별하느냐가 문제군...
    • 또치
      2003.02.06 20:06
      답변 고맙습니다. ^^ 근데여..... 각 DLL 마다 자신의 정보를 알려주는 함수를 동일한 이름으로 추가...
    • 한원희
      2003.02.06 20:29
      안녕하세요. 한원희입니다. 음... 아래와 같이 정적으로 하게되면, 추가되는 DLL을 적용할 수가 없게 되...
    • 또치
      2003.02.06 21:29
      정말 고맙습니다. 책에 있는 줄 알았으면 책을 더 찾아보았을텐데.... ㅡㅡ; 덕분에 고민고민 했던게...
    • 또치
      2003.02.06 21:27
      정말 고맙습니다. 책에 있는 줄 알았으면 책을 더 찾아보았을텐데.... ㅡㅡ; 덕분에 고민고민 했던게...
    • 하얀까마귀
      2003.02.06 00:44
      안녕하세요 하얀까마귀 입니다. 폼의 프로퍼티에 보시면 position 을 조정해주시면 됩니다. poMainFo...
    • 도니
    • 2003.02.05 22:53
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 윤민규
      2003.02.05 23:07
      update Table1 set Date = 'YYYYMMDD' where Date = (Select max(Date) From Table1) 이런 식으로 쓰면 ...
    • 도니
      2003.02.05 23:26
    • 이중철
      2003.02.05 23:04
      냉무
    • 도니
      2003.02.05 23:28