Q&A

  • FindComponent를 SQL문장에서 사용할때 다시질문해여
여러사람들이 도와 줘서 이정도 햇는데 오늘 하루만 FindComponent로
하루종일 보내는군요...^^ 아래는 제가 코딩한건데여...(사실은 복사만^^)

num := StrToInt(NumEdit1.Text);

With COM_DM.RS1 do
   begin        
      Close;
         Sql.Clear;
          Sql.Add(' CREATE TABLE ' + Trim(Edit3.Text) + '( ');
             for aa := 1 to HyperGrid1.ColCount -1 do
               begin
                 if aa < HyperGrid1.ColCount -1  then
                    begin
//                      showmessage(inttostr(aa));
                      With FindComponent('FEdit' + IntToStr(num)) as TEdit do
                        begin                        
                          Sql.Add(Format(' %s  %s  NULL,' , ['ZZ_'+FormatFloat('0000',aa), text]));                        
                        end;
                   end    
                else If aa = HyperGrid1.ColCount -1  then
                  begin
                    With FindComponent(Trim('FEdit' + IntToStr(aa))) as TEdit do
                      begin
                        Sql.Add(Format(' %s  %s  NULL' , ['ZZ_'+FormatFloat('0000',aa), Text]));                    
                      end;
                  end;    
              end;    
같은 문장이 두개 있는이유는 SQL마지막에 콤마를없앨려구요
에디트박스 10개 이름은 FEdit1...FEdit10 있습니다.

복잡한거 같아서 지가 무엇을 하는지 알려드릴께요..
지금 엑셀파일에 있는것을 그리드에 가지구 와서 가지구 온 내용을
SQL에 저장할려고 합니다...
저장할때 전 타입을 지정할려고 합니다.
원래는 타입이랑 필드명을 입력받을려고 했는데
with 문에서 FindComponent를 한번에 사용할수 없다기에 포기했구여
선택한게 타입을 입력을 받는거에여 ^^
테이블명은 나중에 수정을 하면
되는데 타입은 그냥 제가 원하는 타입으로 저장할려고요
화면에는 edit박스가 10개가 있습니다...
엑셀파일을 불러올때 colcount만큼 edit박스를 활성화 시키고
활성화 시킨 edit.text 값을 타입명으로 받을려고 하는거거던여..
아직까지 왜 안되는지 이유를 모르겠네여...

지금현재상황에서 진척이 없네여...

쇼메시지로는 카운트잘넘어가거던여..
근데 에디트박스로 입력받은 내용을 FindComponent를 사용하여서 저장할려고 하는데 안디네여..
어디가 문제지좀 알려주세여...


결과값이 이로케 나오거던여..
CREATE TABLE aa(    
ZZ_0001    NULL,
ZZ_0002    NULL,
.
.
ZZ_0009    NULL,
ZZ_0010    NULL
)

제가 원하는 결과값은
CREATE TABLE aa(    
ZZ_0001 VARCHAR(1)   NULL,
ZZ_0002 VARCHAR(2)   NULL,
.
.
ZZ_0009  VARCHAR(9)  NULL,
ZZ_0010  VARCHAR(10)  NULL
)
입니다..
에디트박스에 입력할 내용은 VARCAHR(1) - VARCHAR(10)까지 입력할꺼거던여...근데 안나와요..
여러사람이 말하는데로 했는데도 잘안되요...어디가 문제지좀 알려주세여
4  COMMENTS
  • Profile
    장태원 2003.12.11 02:55
    언뜻 보기에 colcount -1 이 아닌가 쉽네요.

    값은 TEdit 에서 가져오는데..

    왜 colcount 로 loop 를 돌리는지 이해가 안감..

    차라리..숫자로 명시를 하세요.

    그리고 Num 은 몬지...

    Loop 를 돌면 aa를 활용해야 할텐데..

    정작 사용하는 건 num 이네요.


  • Profile
    첨시작델 2003.12.11 02:59
    HyperGrid1.colcount -1 을 한이유는 한줄이 더 나와서 -1을 한거구여
    그리고 num은 에디트박스 활성화시킬 갯수 를 말하는거에여..
    num 이나 HyperGrid1.colcount 나 갯수는 같아요
    숫자로 명시하지 않은 이유는 엑셀파일이 3칸일수도 있고 5칸일수도
    있고 10칸일수도 있기
  • Profile
    박성훈 2003.12.11 06:23


    안녕하세요?
                     ㅊ
                      begin
                          Sql.Add(Format(' %s  %s  NULL' , ['ZZ_'+FormatFloat     ('0000',aa), Text]));                                          
                      end;

    이부분이 문제인거 같습니다.
    윗줄에서 With COM_DM.RS1 do로 처리했기 때문에 아래에 나오는
    코드는 COM_DM.RS1 을 먼저 타게 되어 있습니다. 그래서 결과적으로
    COM_DM.RS1.FindComponent를 한 것과 같은 결과가 나오는거 같습니다.

    With Form1.FindComponent(Trim('FEdit' + IntToStr(aa))) as TEdit do
    또는
    With Self.FindComponent(Trim('FEdit' + IntToStr(aa))) as TEdit do

    이런식으로 명시적으로 표시해주어야 할 것 같은데요.

  • Profile
    첨시작델 2003.12.11 08:27
    With 문장에 Self 추가로 해결되었습니다...원하는 결과값이 나왔습니다.
    With Self.FindComponent(Trim('FEdit' + IntToStr(aa))) as TEdit do

    혹시 가능한가 물어볼게요...하나만 더요...
    With 문장안에...FindComponent 를 사용해서요...필드명과 타입을 같이
    사용을 할수있나여...지금 현재는 사용안되는 걸루 알고 타입을 사용하고
    필드명은 포기했거던여...혹시 아시면 좀 알려주세여.
    답변은 ㄳ드립니다...테이블 생성할때 에러가 나지만 이거는 내가 찾을수
    있을거 같아요...에러는 row 개수만큼 돌러서 테이블생성을 2번하니
    한번으루 수정하면 될꺼에여...
    오늘 하루종일 FindComponent
    • 김정모
    • 2003.12.11 19:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 가리
      2003.12.12 02:29
      프로젝트 그룹내에 똑같은 이름을 가진 폼이 존제한다는 것 같군요... 아마도 ... 데이터 모듈쪽이름이나....
    • 첨시작델
    • 2003.12.11 02:39
    • 4 COMMENTS
    • /
    • 6 LIKES
    • 장태원
      2003.12.11 02:55
      언뜻 보기에 colcount -1 이 아닌가 쉽네요. 값은 TEdit 에서 가져오는데.. 왜 colcount 로 loop 를 ...
    • 첨시작델
      2003.12.11 02:59
      HyperGrid1.colcount -1 을 한이유는 한줄이 더 나와서 -1을 한거구여 그리고 num은 에디트박스 활성화시...
    • 박성훈
      2003.12.11 06:23
      안녕하세요?               ...
    • 첨시작델
      2003.12.11 08:27
      With 문장에 Self 추가로 해결되었습니다...원하는 결과값이 나왔습니다. With Self.FindComponent(Trim('...
    • 최호인
    • 2003.12.11 00:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2003.12.11 01:37
      제가 밑에 있던 질문사항에 대한 답변이 없어서 예제는 올리지는 못하겠구요 님께서 원하시는 것은 아마...
    • 너구리
      2003.12.11 01:28
      님과 같은 방법으로 했더니 첨엔 form1이라고 가지고 오더군요.. 황당해서... 그리고 아래처럼 했더...
    • 첨시작델
      2003.12.11 02:55
      죄송하지만 다시한번 봐주시겠습니까? 위쪽에 어떤걸 할려는지 다시 올렸습니다. 답변에 ㄳ합니다...
    • 이중철
      2003.12.11 01:54
      var   ss : string;   TempEdit : TEdit;     <= 굳이 말리...
    • 이성훈
      2003.12.11 00:48
      질문이 너무 난해해요.. 어떤걸 원하는지 이해가 안되네요.. 쉽게 설명해 주세요..
    • 첨시작델
      2003.12.11 02:53
      위쪽에 어떤걸 질문하는지 다시 올렸습니다...
    • 이중철
      2003.12.11 00:46
      왜 에러처리 루틴이 빠졌나요.. 찾지 못했을때 처리가 전혀 되어있지 않습니다. 그것이 우선입니다.. ...
    • 첨시작델
      2003.12.11 02:54
      그럼 어떻게 사용을 해야하나여... 위쪽에 다시 어떻게 했나 올려거던여.. 글구 답변에 ㄳ드립니다
    • • • •
    • 이중철
      2003.12.11 02:13
    • 소울해커
      2003.12.12 23:12
      이렇게 한번 해보시면 어떠실런지... 컴파일러 지시자는 한번도 써 본적이 없는터라 될지 안 될지는 모르...
    • 장태원
      2003.12.10 20:10
      for i:=1 to 10 do begin    combobox1.items.add( '과목'+inttostr(i)); end;
    • 첨시작델
      2003.12.10 20:15
      콤보가 10개라서 이로케 한번에 할려고 하는데... 지가 생각할때 이로면 될꺼 같은데 안디네여.. for...
    • 이성훈
      2003.12.10 21:07
      combobox component가 10개라는 건가요? 그렇다면 findcomponent 함수를 이용해보세요.. 여기 질답란 검...
    • 첨시작델
      2003.12.10 22:41
      찾아서 잘사용하고있습니다. ㄳ합니다.
    • 김흥식
      2003.12.10 23:00
      이런거 말씀인가요? procedure TForm1.DBGrid11CellClick(Column: TColumn); begin   Edit1...
    • 채성길
      2003.12.10 19:12
      [답변] procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;   Fiel...
    • 장태원
      2003.12.10 18:47
      DBGrid.Datasource.Dataset.FIeldByName or fields 를 사용하거나. DBGrid 에 연결한 TTable 이나, TQu...
    • 김정모
    • 2003.12.10 18:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2003.12.10 18:49
      TImage 를 올려놓고, TImage 의 align 은 alclient 로 주면 자동으로 메인폼 크기에 맞혀집니다. 또...
    • 김정모
      2003.12.10 18:51
      답변감사드립니다 그런데 제가 알고싶은것은  그림의 크기 보단 실제로 메인화면에 그림을 넣는...
    • 채성길
      2003.12.10 19:23
      uses   Windows, Messages, SysUtils, Variants, Classes, Graphics,  Controls,&nbs...
    • 이철승
    • 2003.12.10 17:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 채성길
      2003.12.10 19:32
      우선 초기화를 하여주시고 마지막에 RowCount를 조정하세요 for I:=0 to grid.RowCount-1 do   ...
    • 이성훈
      2003.12.10 17:50
                for i := 0  to  Stri...
    • 민준기
      2005.10.06 03:51
      원래 윈도우 XP 는 세션 공유 제한이 5명으로 제한되어 있습니다. 윈도 2000 은 20명 이고요 윈도 서버는...
    • 박종록
      2003.12.11 00:53
      혹 이런 문제는 아닐지.... 공유위반 Text file 이라면 공유위반이 발생할 수 있습니다. 공유를 회피하...
    • 장태원
      2003.12.10 18:56
      열었으면 닫아도 주셔야죠. CC 가 하는일이 뭔지 쩝.
    • 박종록
      2003.12.12 01:15
        데이터에 문제가 발생합니다.   때문에 WRITE하는 프로그램에서 임시파일로 WRIT...
    • KDDG_ZZOM
      2003.12.10 02:37
      하두오래되어서 기억이 가물거리네요... 우선 유닉스같으 서버에 인스톨되어있는것에 접속하시는 방법은 ...
    • 박기용
      2003.12.10 02:58
      tnsnames.ora 파일에서 새로운 alias하나를 만들라는 말씀이신거 같은데 그 alias의 host 값으로는 어떤 ...
    • 너구리
      2003.12.10 03:37
      host는 localhost 이구요 아님 PC의 이름을 적어줘도 됩니다... 그리고 로컬로만 접속하신다면 리스...
    • 박기용
      2003.12.10 20:28
      LOCAL1 =   (DESCRIPTION =     (ADDRESS_LIST =    &nb...
    • 너구리
      2003.12.11 01:44
      오라클을 깔고 BDE로 접속하려면 몇가지 일을 해야합니다. tnsname은 그중에 하나이구요... 정확한 ...
    • 초보
    • 2003.12.10 00:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박종록
      2003.12.11 00:20
      퀵 레포트라면   1) QRBand1의 BandType을 rbTitle로 지정한다.   2) 지정된 QRBand...
    • 초보
      2003.12.12 18:45
      여러분의 많은 도움으로 세금계산서부분을 잘 해결했습니다. 다시한번 감사드립니다.
    • nilriri™
      2003.12.10 01:43
      샬롬~ 세금계산서를 양식지가 아닌 백지에 양식까지 함께 출력하시나봐요..^^ 컬러 프린터 잉크값이 ...
    • 노승현
    • 2003.12.10 00:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이환노
      2003.12.11 02:07
      답변이 잘될지는 모르겠는데요. const    CHART_HIDDEN = 1.0e+308; 이렇게 선언하고.. ...
    • Crazy
      2003.12.10 03:11
      컬럼갯수가 4이고 필드가 1,2,3,4로 구분된다면 총 16개의 필드가 만들어지는거군요... Close; Sql.Cl...
    • 첨시작델
      2003.12.10 04:03
      답변ㄳ드립니다.... 이로케 할려구 했던거에여...sql문장에서 참고 하여 해보겠습니다. ㄳ 합니다.
    • ^ㅡ^
      2003.12.09 23:25
      //답변이 될지 모르겠습니다. with Query1 do begin    Close;    Sql.Clea...
    • 첨시작델
      2003.12.09 23:39
      ㄳ합니다..잘되네여...그럼 다음문제를 해결하러 갑니다.. 담에두 물어볼꺼는 아주많아요...^^ 저에게 도...
    • Galaxy
    • 2003.12.09 20:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2003.12.09 22:18
      16bit windows programming의 잔재로 알고 있어요 제가 대학 다닐때 배웠던 기억으로는 near 는 8비...
    • Galaxy
      2003.12.09 22:47
      답변 감사 합니다. 책이나 문서 추천을 원합니다. 공부를 하고 싶어요 다시 한번 감사 드립니다. 그...
    • 쳐리
    • 2003.12.09 20:34
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박종록
      2003.12.11 00:35
      답변 내용을 보니 참 어렵게 하시네요 함수를 바꾸어서 해보시지요 procedure TTensForm.DataInsert; v...
    • 이중철
      2003.12.09 22:26
      s := inttostr(Trunc((EndTime-StartTime) / 24)) + ':' +  formatdatetime('nn:ss', EndTime-St...
    • 쳐리
      2003.12.10 04:34
      s := inttostr(Trunc((EndTime-StartTime) * 24)) + ':' +  formatdatetime('nn:ss', EndTime-St...
    • 이중철
      2003.12.10 19:41