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 문장 자체에는 문제가 없고, 파라메터와의 연결에서 문제로 보이는데,
어떻게 해결을 해야할지 조언좀 부탁드리겠습니다.
동적으로 테이블을 생성하시려면 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 문장 자체에는 문제가 없고, 파라메터와의 연결에서 문제로 보이는데,
> 어떻게 해결을 해야할지 조언좀 부탁드리겠습니다.
>