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???


Zenner

Zenner

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar