Q&A

  • Query 에서 테이블 생성(아래잘못썼음..)
ADO 를 이용하여 mdb 테이블을 생성하려 합니다.



동적생성이기때문에 생성될 테이블의 이름을 tbname 이라는 Parameter 로 입력

받으려하고 있습니다.



ADOQuery1 를 이용하여 SQL 속성에 다음과 같이 입력했습니다.



CREATE TABLE :tbname

(

번호 char(9) null,

아이디 char(11) null,

이름 char(11) null,

접속시간 char(13) null,

종료시간 char(13) null

)



그리고 코드로



ADOQuery1.Parameter[0].Value := 'asdasd';

ADOQuery1.ExecSQL;



이렇게 하고 컴파일을 했습니다. 그런데 Syntax Error In CREATE TABLE ...

이라는 오류가 뜹니다.



문법이 틀렸다는 것 이겠지요..



하지만, ADOQuery1.SQL 에서 :tbname 부분을 직업 테이블 이름값 asdasd

등으로 할당하면 전혀 문제가 되지 않습니다..



즉, SQL 문장 자체에는 문제가 없고, 파라메터와의 연결에서 문제로 보이는데,

어떻게 해결을 해야할지 조언좀 부탁드리겠습니다.



1  COMMENTS
  • Profile
    hugehead 2000.07.15 07:14
    테이블 이름, 또는 필드/컬럼 이름을 Parameter로 입력 받을 수는 없습니다.



    동적으로 테이블을 생성하시려면 SQL문 자체를 동적으로 작성하셔야 합니다.



    예를 들어:



    --------------------------------------

    //생략

    var

    sCreateSQL, sMyTableName : String;



    begin

    // 생략



    ADOQuery1.Close;

    ADOQuery1.Clear;



    // sMyTableName은 원하는 테이블명을 입력 받는 String 변수

    sMyTableName := Edit1.Text;



    // sCreateSQL은 실행될 CREATE SQL문

    sCreateSQL := Format('CREATE TABLE %s (번호 char(9) null, 이름 char(11) null)', [sMyTableName])

    ----------------------------------



    여기서 쓰이는 Format 함수는 델파이에서 제공하는 표준 String 제어 함수 입니다.

    %s 부분에 sMyTableName의 값이 들어가는 것이지요.



    도움이 되었으면 합니다.









    이지만 wrote:

    > ADO 를 이용하여 mdb 테이블을 생성하려 합니다.

    >

    > 동적생성이기때문에 생성될 테이블의 이름을 tbname 이라는 Parameter 로 입력

    > 받으려하고 있습니다.

    >

    > ADOQuery1 를 이용하여 SQL 속성에 다음과 같이 입력했습니다.

    >

    > CREATE TABLE :tbname

    > (

    > 번호 char(9) null,

    > 아이디 char(11) null,

    > 이름 char(11) null,

    > 접속시간 char(13) null,

    > 종료시간 char(13) null

    > )

    >

    > 그리고 코드로

    >

    > ADOQuery1.Parameter[0].Value := 'asdasd';

    > ADOQuery1.ExecSQL;

    >

    > 이렇게 하고 컴파일을 했습니다. 그런데 Syntax Error In CREATE TABLE ...

    > 이라는 오류가 뜹니다.

    >

    > 문법이 틀렸다는 것 이겠지요..

    >

    > 하지만, ADOQuery1.SQL 에서 :tbname 부분을 직업 테이블 이름값 asdasd

    > 등으로 할당하면 전혀 문제가 되지 않습니다..

    >

    > 즉, SQL 문장 자체에는 문제가 없고, 파라메터와의 연결에서 문제로 보이는데,

    > 어떻게 해결을 해야할지 조언좀 부탁드리겠습니다.

    >