Q&A

  • [질문]ADOStoredProc1에서 Parameter를 미리 읽어 올 수는 없나요?
ADOStoredProc1 사용시 Parameters.ParamByName('UserID2').Value 를 전달하여 쿼리결과값을 문자,정수 등 여러개를 전달받아야 하는데 "ADOStoredProc1 : Parameter 'UserID2' not found" 에러가 나네요.(ADOQuery에서는 Parameter를 생성하지 않고도 잘되는데.)

그래서 Parameters.CreateParameter('UserID2',ftString,pdInput,20,'test')로 전달하고
Parameters.CreateParameter('SysID',ftInteger,pdOutput,0,Null)로 결과값을 받으면 되지만
저장프로시저 이름과 전달받을 결과값이 가변하기 때문에 사용이 어려워서.....
처음에 언급한 것처럼 하려면 ADOStoredProc1의 특성 중 무엇을 수정해야 하는지요?

//원하는 방법 - ADOQuery와 비슷하게
     with ADOStoredProc1 do
     begin
        Connection := ADOConnection1;
        close;

        ProcedureName := 'spDStatQuery;1';
        Parameters.ParamByName('UserID2').Value := 'test';
        Parameters.ParamByName('QDate').Value := '2008-06';

        ExecProc;
     end;


//현재 성공하는 방법
     with ADOStoredProc1 do
     begin
        Connection := ADOConnection1;
        close;

        ProcedureName := 'spDStatQuery;1';
        Parameters.Clear;
        Parameters.CreateParameter('UserID2',ftString,pdInput,20,'test');
        Parameters.CreateParameter('QDate',ftString,pdInput,10,'2008-06');

        ExecProc;
     end;
=끝=
1  COMMENTS
  • Profile
    이정욱 2008.06.24 18:58
    위의 에러는 StoredProc 컴포넌트 자체레 파라미터가 정의 되어 있지 않아서 그렇습니다.

    디자인 타임에 파라미터를 생성해 놓으시고, ParamByName 으로 그냥 값을 참조 하시거나 대입 하시면 됩니다.

    위의 질문에는 AdoStroredProc 컴포넌트를 사용하실 스토어드 프로시져의 갯수만큼 디자인타임에 넣고 사용하시는것이 가장 편리한 방법입니다.

    말씀드렸다시피 디자인 타임에서 파라미터를 미리 생성시켜 놓고 사용하시면 되구요.

    하나의 스토어드 프로시져 컴포넌트를 가지고 상황마다 바뀌게 하려면, 위에서 사용하신 Clear후 CreateParameter를 사용하셔야 합니다.

    • 석주현
      2008.06.30 18:28
      TMediaPlayer Component는 컴포넌트 탭 "System"에 3번째 있습니다. 필름같은거 위에 음표 있는 거요. ...
    • 미닛메이드
      2008.07.01 00:29
      그럼 TMediaPlayer는 Mplayer Unit에 있는 Class군요 .. wavs.dcu 는 대체 어딨는거지 ㅡㅡ;
    • 미닛메이드
      2008.06.29 00:22
      procedure Paint(Canvas: TCanvas; const Device: TDeviceContext); virtual; //paint 함수 원형(Tdtp...
    • 임성길
    • 2008.06.28 00:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.06.26 06:47
      별거 없습니다. i32, f32, str, ptr이란 필드들이 하나의 메모리 공간을 공유해서 사용합니다. 때문에 ...
    • steps
    • 2008.06.25 22:10
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2008.08.04 20:35
      애구....이것 저것 뒤지다 답을 찾았네요....혹시나 저처럼 필요한 분이 계실까 해서 답을 하고 갈께요 ...
    • 홍성락
      2008.06.25 05:23
      자료실에 [Vista에서 프로그램 권한상승하기...간단히 하긴 했는데...]의 예제 소스에서 사용저 권한을 ...
    • 이정욱
      2008.06.25 06:42
      불가능 합니다.. 그것이 가능하면 UAC의 의미가 없죠 ^^
    • 홍성락
      2008.06.25 18:21
      예. 그렇죠, 일단 사용자가 관리 권한이 있는 전제 조건하에서 위와같이 하면 일단 UAC로 묻지는 않을겁...
    • 이정욱
      2008.06.26 00:12
      헛.. 아닐텐데요.. 어떤것이던 관리자 권한이 필요한 부분은 물어보게 됩니다... 안물어보면.. 그부분은 ...
    • 홍성락
      2008.06.26 01:32
      예, UAC를 완전 극복(무능화)했다면 신문에 낫겠죠... 제가 해본것도 윈도우 시스템 폴더나 중대한건 ...
    • 신철우
      2008.06.27 20:01
      EXE 파일 또는 EXE파일이 들어있는 폴더의 속성 => 보안 => 편집 에서 "Authenticated User"를 선택하고 모...
    • 홍성락
      2008.06.27 20:12
      항상 텍스트 파일이나 RC파일 수정후엔 꼭 빌드해야 합니다...저는 되던데.... 안 뜬다는건 이정욱님 ...
    • 구창민
      2008.06.25 07:31
      안녕하세요.. 이런 형태로 해보세요.. if ACol = 3 and ARow = i then begin ...
    • 석주현
      2008.06.25 14:46
      전체적인 코드가 없어 모르겠지만 일단 위에 코드의 기본적인 스타일은 위에서 말씀해주신 형태로 고치시...
    • 천천히
      2008.06.25 19:53
      위에 같이 해도 글자색이 안변하네요.. for문으로 돌리니까 qty가 0도 있고 0이 아닌값도 있으니까 결...
    • 구창민
      2008.06.25 22:15
      DrawCell 이벤트 내의 코드를 모두 지우시고 아래 형태처럼 테스트 해보세요.. if ACol = 3 then if ...
    • 천천히
      2008.06.25 22:49
      답변 감사드립니다... ^^; 그런데 qyt 값이 0이면 글자색이 빨간색 0이 아니면 검은색인데... 조건 안...
    • 구창민
      2008.06.26 18:34
      천천히님.. DrawCell 이벤트는 말그대로 셀을 그릴때 발생되는이벤트인데, 안에서 for 문을 돌릴 이유가...
    • 이정욱
      2008.06.25 02:23
      무슨 말씀이신지요..? 위의 이벤트 함수들을 공통으로 사용하고 싶으신건가요? 만약 그렇다면 위 이벤...
    • 김만진
      2008.06.25 02:42
      이정욱님의 조언은 정말 감사합니다. 그런데 제가 구현하고 싶은 것은 기존 폼에서는 체크박스를 사용해...
    • 박종학
    • 2008.06.25 00:12
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박정순
      2008.06.25 00:33
      Memo1.Lines.Text := ZQuery2. SQL.Text ; 또는 Memo1.Lines := ZQuery2. SQL 이거 아닌가요?
    • 박종학
      2008.06.25 00:40
      감사합니다. 그런데.....ㅠㅠ...결과가 아래 처럼 나옵니다..... ------------------결과--------------...
    • 석주현
      2008.06.25 15:28
      찾아 봐도 바로 쿼리 파라메터가 변환된 결과가지고 오는 게 없네요. 그냥 구현해야 할 것 같네요. ...
    • 박종학
      2008.06.25 20:38
      감사합니다. 다시 해보겠습니다....^^.. 즐거운 하루되세요..
    • 이정욱
      2008.06.24 19:53
      정식으로 하시려면, 다운그레이드를 받으셔야 합니다. 2007구매를 하셨으면, 7으로 다운그레이드 신청을 ...
    • 석주현
      2008.06.24 20:44
      저도 프로젝트 때문에 C++ 빌더 6.0을 구입해야 하는데 정욱님 말씀처럼 해야 겠네요. ^^
    • 장성호
      2008.06.25 00:06
      제가 C++Builder 2007을 구매한후에 OOC 를 통해 C++Builder 6.0 라이센스를 받았습니다. 조건은 "이...
    • 석주현
      2008.06.24 07:53
      .net 용 델파이가 있긴 한데 그게 Window CE .Net에서 100% 돌아가는 지 모르겠습니다. 그냥 일반적인 W...
    • 이정욱
      2008.06.24 18:47
      .NET Compact Framework 를 지원하는 델파이가 나오면 가능합니다. 제가 듣기로는 현재 베타버전이 나와...
    • 곽영배
      2008.06.25 03:25
      답변 감사합니다.
    • steps
    • 2008.06.24 02:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.06.24 18:53
      먼저 TRectLayer를 클래스로만 선언을 하시고, 나중에 객체 구성을 하면 됩니다. TRectLayer = cl...
    • steps
      2008.06.24 20:44
      아는게 없다보니 가르켜주셔도 잘 모르겠군요. TRectLayer = class; TFrame2 = class(TFrame) ...
    • 신철우
    • 2008.06.24 00:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.06.24 18:58
      위의 에러는 StoredProc 컴포넌트 자체레 파라미터가 정의 되어 있지 않아서 그렇습니다. 디자인 타임...
    • 임대순
    • 2008.06.23 20:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.06.24 19:00
      위의 쿼리가 잘 동작한다면, 쿼리문 문제이기 보다는.. 현재 사용하신 쿼리 컴포넌트의 사용에 문제가 있...
    • 임대순
      2008.06.24 23:44
      네 ..이정욱님.. 답변 감사드립니다. 문제점을 해결 했습니다. 쿼리 컴포넌트에 문제가 있었던게 아...
    • 윤성만
    • 2008.06.23 20:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.06.23 20:35
      음 도메인 네임 서버 그러니깐 DNS 에 등록되어 있지 않은 써버의 경우 당연히 그냥 이름으로 접근이 불...
    • 김재원
    • 2008.06.23 03:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.06.23 13:31
      웹호스팅 업체에서 미들웨어를 이용하고 있거나, 아니면 DB서버를 외부에 노출하지 않은 이상 불가능 합...
    • 김재원
      2008.06.23 22:01
      답변 감사합니다... 노출 되어 있는 웹 호스팅 업체가 있을까요? ^^;;