Q&A

  • 임의의 테이블 부여하기
Temp_Table := 'aaa_' + Date;

with Query do begin
   Close;
   Sql.Clear;
   Sql.Add('insert into Temp_Table(      ');
   Sql.Add('               num            )      ');
   Sql.Add('values(                              ');  
   Sql.Add('               Cnt              )      ');  
   ExecSql;
end;

위와 같이 임의의 테이블을

즉 년도별로 테이블을 생성시켜 인서트 하려고 합니다.

쿼리문장에 Temp 변수를 써서 만들어야 하는데

이문장은 에러가 나네요.

어찌해야 될까요?

부탁드립니다

3  COMMENTS
  • Profile
    신승욱 2003.02.19 01:42
    이렇게 해보세요..안돼면..저도 몰래요..
    close;
    sql.clear;
    sql.add('insert into ' + temp_table + '(');
    ...
    ..
    이런식으로..변수를 적어줘야겠네요.

  • Profile
    구창민 2003.02.18 21:11
    DB 질문을 하실때는,

    사용하시는 DB 가 먼지를 알려주시면 양질의 답변을 얻으실 수
    있을 것입니다.

    아래 코드는 파라독스 테이블을 동적생성하고 삭제하는 코드입니다.

    참고하시고 즐거운 프로그래밍 하시길~~

    //*******************************************************//
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, DBTables, StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Table1: TTable;
        Button2: TButton;
        Query1: TQuery;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    var
       TableList : TStringList;
       i : Integer;
    begin
       TableList := TStringList.Create;

       try { test1.DB 존재유무 체크 후 존재하면 삭제 }
          Session.GetTableNames('tmpalr', '*.DB', False, False, TableList);
          for i := 0 to TableList.Count - 1 do begin
             if TableList.Strings[i] = 'test1' then begin
                with Query1 do begin
                   DatabaseName := 'tmpalr';
                   Close;
                   SQL.Clear;
                   SQL.Add('drop table ''test1.DB''');
                   ExecSQL;
                end;
             end;
          end;
       finally
          TableList.Free;
       end;

       with Table1 do begin
          Active := False;           { Table을 Disconnect시킨다 }
          DatabaseName := 'tmpalr';  { Database Alias }
          TableName := 'test1';      { Table Name }
          TableType := ttDefault;    { Type = ttDefault, ttParadox, ttDbase }

          with FieldDefs do begin    {Field 집합형 }
             Clear;
             Add('Field1', ftString, 10, True);  { FieldName, FieldType, Size, Requ
    ired }
             Add('Field2', ftString, 25, False);
             Add('Field3', ftString, 30, False);
          end;

          with IndexDefs do begin
             Clear;
             Add('Index1', 'Field1', [ixPrimary, ixUnique]); { IndexName, FieldName
    , Type }
          end;
          CreateTable; { Table 생성 }
       end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
       with Query1 do begin { test1.DB 삭제 }
          DatabaseName := 'tmpalr';
          Close;
          SQL.Clear;
          SQL.Add('drop table ''test1.DB''');
          ExecSQL;
       end;
    end;

    end.


  • Profile
    Sean 2003.02.18 23:56
    네.... 답변 감사합니다.

    DB는 Access이고요...

    제가 질문의 내용이 조금 미흡한거 같네요.

    지금은 2003년이니깐...

    aaa_2003 이란 테이블에 데이타를 입력하고요.

    내년이면 aaa_2004 란 테이블에 데이타를 발생시키겠죠.

    문제는 Query문에 쓸때...

    이번년도를 위해 aaa_2003 이라고 셋팅할수 없잖아요.

    내년엔 aaa_2004란 테이블에 넣어야 하니깐요.

    그래서 변수 쓰듯이 해봤는데 이게 해결 방법은 아닌거 같네요

    테이블의 생성이나 드롭에 관한 질문은 아니었습니다.

    어째 질문이 영 신통치 않네요. 제가 생각해도...



    • 진돌
    • 2003.02.19 02:35
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.19 02:58
      SizeOf 함수는 데이터 형의 크기가 반환됩니다. 님이 원하시는 것은 StrLen 이겠군여. 널값을 제외한...
    • 진돌
      2003.02.19 03:04
      그렇다면 Socket 통신을 할때 aaa : String; ________________________________ | size | &nb...
    • 구창민
      2003.02.19 03:22
      무슨 질문인지를 모르겠군여..^_^ 님이 처한 상황을 제가 알수 없기 때문입니다. 다만, 통신을 할때 ...
    • 한원희
      2003.02.19 20:35
      안녕하세요. 한원희입니다. GetActivateWindow API를 이용해 보세요. 그리고, WindowState 속성도 검사...
    • 임옥섭
      2003.02.19 01:37
      vb의 직접실행창 보다는 불편하지만. 델파이도.. Evaluate/Modify 메뉴가 있습니다. 원하는 변수/식 에다...
    • 최용일
      2003.02.19 01:25
      안녕하세요. 최용일입니다. Watch Window를 이용하세요... Ctrl+F5던가... ^^ 항상 즐코하세요...
    • cell
    • 2003.02.19 01:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.19 01:32
      이렇게 해 보세여.. procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin &n...
    • cell
      2003.02.19 01:41
      ..
    • 김기문
    • 2003.02.19 00:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.19 01:47
      안녕하세요. 최용일입니다. 델파이 메뉴의 Help/Windows SDK에서 찾아보세요... 그냥 F1누르면 델파이에...
    • 전원이
    • 2003.02.19 00:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.19 02:01
      안녕하세요. 최용일입니다. InPortB, OutPortB는 델파이에 없네요... 걍 만들어 쓰세요... procedure...
    • 한원희
      2003.02.19 00:11
      안녕하세요. 한원희입니다. Rx 패키지를 설치하면 됩니다. 자료실에 Rx 패키지가 있으니, 받아서 설치...
    • 김현승
    • 2003.02.18 21:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • △┫┃▒┃COLON
      2003.02.18 23:50
      안녕하세요... 세미콜론입니다. 저도 초보라 잘은 모르지만.... *.DCU  파일은 컴파일시에 자동...
    • Sean
    • 2003.02.18 20:55
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신승욱
      2003.02.19 01:42
      이렇게 해보세요..안돼면..저도 몰래요.. close; sql.clear; sql.add('insert into ' + temp_table + '(...
    • 구창민
      2003.02.18 21:11
      DB 질문을 하실때는, 사용하시는 DB 가 먼지를 알려주시면 양질의 답변을 얻으실 수 있을 것입니다. ...
    • Sean
      2003.02.18 23:56
      네.... 답변 감사합니다. DB는 Access이고요... 제가 질문의 내용이 조금 미흡한거 같네요. 지금...
    • 강보춘
    • 2003.02.18 20:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.18 20:57
      Hint Window 와 똑같이 생긴 윈도우를 만들어 현 좌표를 구하신다음, 타이머 내에서 동적 생성 하시...
    • 진돌
    • 2003.02.18 20:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.18 21:06
      너무 어렵게 생각하신게 아닌지.. 말씀하시는 가변 길이 문자열 형은 string 을 쓰시면 됩니다. ...
    • 진돌
      2003.02.18 21:18
      그런데요.. digitString : String; 으로 선언을 해도 에러가 납니다.. 다음과 같습니다 [Error]Type '...
    • 박상윤
      2003.02.26 21:41
      일단 어떤 용도로 사용을 하실려 하는지. 크기를 줄이는 방법은 여러가지가 있습니다. 필요에 따라 사용...
    • 이희진
      2003.02.22 01:08
      어떤 이유에서 파일 크기의 한계를 두어야 하는지 잘 모르겠지만, 이미지 크기가 크게 문제되지 않는거...
    • 김정명
    • 2003.02.18 06:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2003.02.18 18:47
      for i:=0 to 10 do begin    Application.ProcessMessages;    edit1.text := int...
    • 미소나눔
      2003.02.18 18:56
      Application.ProcessMessages; 이게 있어야징... 즐푸~
    • 토미사랑
      2003.02.18 23:33
      sleep()함수를 사용하면, 프로그램이 완전히 멈춰버리게 되잖아요... sleep()을 사용하지 않고서는???
    • 열심히
    • 2003.02.18 05:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 넘버3
      2003.02.18 05:43
      TPageControl를 Creat할 때 override가 빠진것 같군요... public     constru...
    • 열심히
      2003.02.18 05:51
      페이지 컨트롤은 생성이 됩니다... 탭시트를 생성할때 먼저 생성된 pagecontrol을 넣어줘야하는데 앞...
    • 아폴론
    • 2003.02.18 04:24
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 아폴론
      2003.02.18 08:37
      a.cg_krno : G200301001 ...이런 형식의 Char문자가 들어갑니다 a.cg_date : 2003-01-31 ...이런 형식의 C...
    • 이중철
      2003.02.18 11:24
      마지막 필드 추가했다고 논리가 맞지 않는것은 아니에요. 단지 모래시계만 나왔다는 것은 Query가 최적...
    • 아폴론
      2003.02.18 19:31
      이중철님 감사합니다. 설명까지 해 주시고...덕분에 해결이 되었고요 앞으론 SQL문을 좀더 신중히, 차근...
    • 이중철
      2003.02.18 05:28
      음 데이타 베이스가 오라클인것 같은데... 하여간.. 님께서 쿼리를 쓰신것 보고는 판단이 안서요.. 왜냐...
    • 열심히
      2003.02.18 04:32
      어떤 오류인지 알려주실래요? 델파이에서만 오픈이 안되는건지.. 아님 다른데서도 안되는지...