Fórum Crindo tabelas em modo de execução (IB/FB) #203418
29/12/2003
0
Belezura turma???
Estou criando uma procedure que me criará tabelas e campos em modo de execução, porém está dando erro.
Qdo eu depuro o codigo e pego o script e colo no ibexpert e mando executar ele cria a tabela só que qdo executo via programa ele não funciona (lógico q apago a tabela antes de testar de novo)
Segue abaixo o cod..
//----------------------------------------------------------------------------
procedure cria_tabela(sNm_tabela, sNm_campo, sTipo : string);
begin
with DM_DADO do
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´SELECT * FROM RDB$RELATION_FIELDS ´+
´WHERE rdb$relation_name = ´+QuotedStr(sNm_tabela);
Q_DINAMICA.Open;
if Q_DINAMICA.IsEmpty then
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´CREATE TABLE ´ + QuotedStr(sNm_tabela) + ´(´ + QuotedStr(sNm_campo) +´ ´+ sTipo + ´)´;
try Q_DINAMICA.Execute; except end;
end;
end;
end;
//-----------------------------------
é assim q estou chamando a função
cria_tabela(´VEICULOS´, ´teste´, ´char(20)´);
e está me retornando esse erro:
General SQL error. Token unknown - line 1, char 14 ´VEICULOS´´
Q devo fazer???
Estou criando uma procedure que me criará tabelas e campos em modo de execução, porém está dando erro.
Qdo eu depuro o codigo e pego o script e colo no ibexpert e mando executar ele cria a tabela só que qdo executo via programa ele não funciona (lógico q apago a tabela antes de testar de novo)
Segue abaixo o cod..
//----------------------------------------------------------------------------
procedure cria_tabela(sNm_tabela, sNm_campo, sTipo : string);
begin
with DM_DADO do
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´SELECT * FROM RDB$RELATION_FIELDS ´+
´WHERE rdb$relation_name = ´+QuotedStr(sNm_tabela);
Q_DINAMICA.Open;
if Q_DINAMICA.IsEmpty then
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´CREATE TABLE ´ + QuotedStr(sNm_tabela) + ´(´ + QuotedStr(sNm_campo) +´ ´+ sTipo + ´)´;
try Q_DINAMICA.Execute; except end;
end;
end;
end;
//-----------------------------------
é assim q estou chamando a função
cria_tabela(´VEICULOS´, ´teste´, ´char(20)´);
e está me retornando esse erro:
General SQL error. Token unknown - line 1, char 14 ´VEICULOS´´
Q devo fazer???
Zenner
Curtir tópico
+ 0
Responder
Posts
29/12/2003
Maicongabriel
procedure cria_tabela(sNm_tabela, sNm_campo, sTipo : string);
begin
with DM_DADO do
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´SELECT * FROM RDB$RELATION_FIELDS ´+
´WHERE rdb$relation_name = ´+QuotedStr(sNm_tabela);
Q_DINAMICA.Open;
if Q_DINAMICA.IsEmpty then
begin
Q_DINAMICA.Close;
Q_DINAMICA.CommandText := ´CREATE TABLE ´ + QuotedStr(sNm_tabela) + ´(´ + QuotedStr(sNm_campo) +´ ´+ sTipo + ´)´;
try Q_DINAMICA.Execute; except end;
end;
end;
end;
Não olhei muito a fundo, mas como [b:cf0f8c86f7]´WHERE rdb$relation_name = ´+[color=red:cf0f8c86f7]QuotedStr(sNm_tabela);[/color:cf0f8c86f7][/b:cf0f8c86f7] pode vir antes do [b:cf0f8c86f7]´CREATE TABLE ´ + QuotedStr(sNm_tabela)[/b:cf0f8c86f7] ???[color=red:cf0f8c86f7][/color:cf0f8c86f7]
Entendeu? Você esta selecionando uma tabela de uma tabela do Sistema que ainda não foi criada, não que este seja o unico erro, mas pelomenos é um deles...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)