Criação de tabela Access 2000 em runtime, ADOX
Quando uma pessoa cadastra uma disciplina, uma tabela para cadastro de questões daquela disciplina é criada. Até ai tudo bem, porém essa tabela tem uma chave estrangeira da tabela Matéria e isso está gerando o erro: raised exception class EOleException with message ´Já existe uma relação nomeada ´Fk_COD_MAT´ no banco de dados atual.
Estou usando o código abaixo:
var
nometabela, comando:string;
nometabela := UpperCase(dbeNomeDisciplina.Text);
nometabela := RemoveAcento(nometabela);
nometabela := RemoveEspaco(nometabela);
comando:=´CREATE TABLE ´ + nometabela + ´(´ +
´COD_QUESTAO COUNTER, ´ +
´COD_MATERIA INT, ´ +
´PERGUNTA TEXT(255), ´ +
´RESPOSTA TEXT(255), ´ +
´ABERTO_FECHADO CHAR, ´ +
´DIFICULDADE TEXT(10), ´ +
´VESTIBULAR CHAR, ´ +
´CONSTRAINT FK_COD_MAT FOREIGN KEY (COD_MATERIA) REFERENCES MATERIA (COD_MATERIA))´;
adoCommand1.CommandText := comando;
adoCommand1.Execute;
comando := ´CREATE INDEX IDX_QUEST_COD ´ +
´ON ´+ dbeNomeDisciplina.Text + ´ (COD_QUESTAO) WITH PRIMARY´;
adcBaseDados.CommandText := comando;
adcBaseDados.Execute;
A sintaxe está errada?? Ou fiz algo errado?
Obrigado!
Estou usando o código abaixo:
var
nometabela, comando:string;
nometabela := UpperCase(dbeNomeDisciplina.Text);
nometabela := RemoveAcento(nometabela);
nometabela := RemoveEspaco(nometabela);
comando:=´CREATE TABLE ´ + nometabela + ´(´ +
´COD_QUESTAO COUNTER, ´ +
´COD_MATERIA INT, ´ +
´PERGUNTA TEXT(255), ´ +
´RESPOSTA TEXT(255), ´ +
´ABERTO_FECHADO CHAR, ´ +
´DIFICULDADE TEXT(10), ´ +
´VESTIBULAR CHAR, ´ +
´CONSTRAINT FK_COD_MAT FOREIGN KEY (COD_MATERIA) REFERENCES MATERIA (COD_MATERIA))´;
adoCommand1.CommandText := comando;
adoCommand1.Execute;
comando := ´CREATE INDEX IDX_QUEST_COD ´ +
´ON ´+ dbeNomeDisciplina.Text + ´ (COD_QUESTAO) WITH PRIMARY´;
adcBaseDados.CommandText := comando;
adcBaseDados.Execute;
A sintaxe está errada?? Ou fiz algo errado?
Obrigado!
Folken
Curtidas 0
Respostas
Folken
15/04/2005
Uso Delphi 7 e o erro ocorre na linha adoCommand1.Execute;
GOSTEI 0