nome de tabela por parametro
E ai pessoal
To tendo um probleminha aqui e talvez alguem ai possa me ajudar...
Tenho uma nova query com ordens em sql para criar uma nova tabela
onde o nome da tabela tera o mesmo valor de um parametro..o valor do parametro é o valor do text de um edit, ou seja, é uma string...
porem na hora da funçao query.ExecSql ela diz q é impossivel criar a tabela pois nao é possivel converter string em boolean para o nome da tabela baseado no valor do parametro...
alguem tem uma dica ai?
oq devo fazer para que a tabela seja criada com o valor do parametro?
abraços -
To tendo um probleminha aqui e talvez alguem ai possa me ajudar...
Tenho uma nova query com ordens em sql para criar uma nova tabela
onde o nome da tabela tera o mesmo valor de um parametro..o valor do parametro é o valor do text de um edit, ou seja, é uma string...
porem na hora da funçao query.ExecSql ela diz q é impossivel criar a tabela pois nao é possivel converter string em boolean para o nome da tabela baseado no valor do parametro...
alguem tem uma dica ai?
oq devo fazer para que a tabela seja criada com o valor do parametro?
abraços -
Pips_btos
Curtidas 0
Respostas
Silviogs
28/11/2007
Olá
passa sua query para que possamos entender melhor o seu problema.
Silvio Guedes
passa sua query para que possamos entender melhor o seu problema.
Silvio Guedes
GOSTEI 0
Pips_btos
28/11/2007
seria +- assim
Create Table pnome
(
campo1 Varchar (25) not null,
campo2 Varchar (25),
campo3 Varchar (25),
campo4 Varchar (25),
linha INTEGER CONSTRAINT primarykey PRIMARY KEY)
onde pnome.value:=edit1.text
deu pra ter +- uma noçao?
Create Table pnome
(
campo1 Varchar (25) not null,
campo2 Varchar (25),
campo3 Varchar (25),
campo4 Varchar (25),
linha INTEGER CONSTRAINT primarykey PRIMARY KEY)
onde pnome.value:=edit1.text
deu pra ter +- uma noçao?
GOSTEI 0
Silviogs
28/11/2007
Olá amigo
eu uso postgresql e funcionou veja:
-- Table: teste
-- DROP TABLE teste;
CREATE TABLE teste
(
campo1 character varying(25) NOT NULL,
campo2 character varying(25),
campo3 character varying(25),
campo4 character varying(25),
linha integer NOT NULL,
CONSTRAINT primarykey PRIMARY KEY (linha)
)
WITHOUT OIDS;
ALTER TABLE teste OWNER TO postgres;
Rotina:
procedure TForm1.Button1Click(Sender: TObject);
begin
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´create table ´+Edit1.Text+´( ´);
ZQuery1.SQL.Add(´campo1 Varchar (25) not null,´);
ZQuery1.SQL.Add(´campo2 Varchar (25),´);
ZQuery1.SQL.Add(´campo3 Varchar (25),´);
ZQuery1.SQL.Add(´campo4 Varchar (25),´);
ZQuery1.SQL.Add(´linha INTEGER CONSTRAINT primarykey PRIMARY KEY)´);
ZQuery1.ExecSQL;
end;
Silvio Guedes
eu uso postgresql e funcionou veja:
-- Table: teste
-- DROP TABLE teste;
CREATE TABLE teste
(
campo1 character varying(25) NOT NULL,
campo2 character varying(25),
campo3 character varying(25),
campo4 character varying(25),
linha integer NOT NULL,
CONSTRAINT primarykey PRIMARY KEY (linha)
)
WITHOUT OIDS;
ALTER TABLE teste OWNER TO postgres;
Rotina:
procedure TForm1.Button1Click(Sender: TObject);
begin
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´create table ´+Edit1.Text+´( ´);
ZQuery1.SQL.Add(´campo1 Varchar (25) not null,´);
ZQuery1.SQL.Add(´campo2 Varchar (25),´);
ZQuery1.SQL.Add(´campo3 Varchar (25),´);
ZQuery1.SQL.Add(´campo4 Varchar (25),´);
ZQuery1.SQL.Add(´linha INTEGER CONSTRAINT primarykey PRIMARY KEY)´);
ZQuery1.ExecSQL;
end;
Silvio Guedes
GOSTEI 0
Pips_btos
28/11/2007
Muito obrigado
funcionou =D
Eu estava um tanto quanto cego
vendo apenas o lado de utilizar um parametro ^^
muito obrigado pela ajuda
abraços
funcionou =D
Eu estava um tanto quanto cego
vendo apenas o lado de utilizar um parametro ^^
muito obrigado pela ajuda
abraços
GOSTEI 0
Pips_btos
28/11/2007
me surgiu uma nova duvida
e vou aproveitar o mesmo topico para perguntar
se eu quizece que o campo ´LINHA´ fosse alto intremento
como ficaria a linha de sql nessa mesma query do topico.
grato
e vou aproveitar o mesmo topico para perguntar
se eu quizece que o campo ´LINHA´ fosse alto intremento
como ficaria a linha de sql nessa mesma query do topico.
grato
GOSTEI 0
Silviogs
28/11/2007
Olá
que banco de dados vc usa?
Silvio Guedes
que banco de dados vc usa?
Silvio Guedes
GOSTEI 0
Pips_btos
28/11/2007
Firebird com Ibexpert ^^
Corringindo la ensima *auto Incremento
Corringindo la ensima *auto Incremento
GOSTEI 0
Silviogs
28/11/2007
Olá
Clientes
Campos Tipo de campo Descrição
Id_Cli integer Integer Código da tabela Clientes PK chave primária
NomeCli Varchar(35) Campo Nome do Cliente
Id_Cid Integer Código da ligação a tabela Cidade
Cidades
Campos Tipo de campo Descrição
Id_Cid Integer Código da Tabela Cidades PK chave primária
NomeCid Varchar(35) Campo Nome dad Cidade
Criando campo auto-incremental
Exemplo da generator e trigger criada:
CREATE GENERATOR GEN_CLIENTES_ID;
CREATE TRIGGER CLIENTES_BI FOR CLIENTES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID_CLI IS NULL) THEN
NEW.ID_CLI = GEN_ID(GEN_CLIENTES_ID,1);
END
Faça o mesmo com a tabela Cidades.
Teste, para cada comando create (table, create generator e create traigger vc tem que usar aquela rotina que lhe passei para os comandos acima entendeu?.
Silvio Guedes
Clientes
Campos Tipo de campo Descrição
Id_Cli integer Integer Código da tabela Clientes PK chave primária
NomeCli Varchar(35) Campo Nome do Cliente
Id_Cid Integer Código da ligação a tabela Cidade
Cidades
Campos Tipo de campo Descrição
Id_Cid Integer Código da Tabela Cidades PK chave primária
NomeCid Varchar(35) Campo Nome dad Cidade
Criando campo auto-incremental
Exemplo da generator e trigger criada:
CREATE GENERATOR GEN_CLIENTES_ID;
CREATE TRIGGER CLIENTES_BI FOR CLIENTES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID_CLI IS NULL) THEN
NEW.ID_CLI = GEN_ID(GEN_CLIENTES_ID,1);
END
Faça o mesmo com a tabela Cidades.
Teste, para cada comando create (table, create generator e create traigger vc tem que usar aquela rotina que lhe passei para os comandos acima entendeu?.
Silvio Guedes
GOSTEI 0
Pips_btos
28/11/2007
desculpe
mais eu nao intendi muito bem
poderia exemplificar na tabela q criamos acima pela query q mensionei?
isso seria feito na query em sql?
mais eu nao intendi muito bem
poderia exemplificar na tabela q criamos acima pela query q mensionei?
isso seria feito na query em sql?
GOSTEI 0
Silviogs
28/11/2007
Olá
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´create table ´+Edit1.Text+´( ´);
ZQuery1.SQL.Add(´Id_Cli integer not null,´);
ZQuery1.SQL.Add(´Id_Cid Integer )´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´alter table ´+Edit1.Text);
ZQuery1.SQL.Add(´ add constraint pk_cliente primary key (Id_Cli)´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´CREATE GENERATOR GEN_CLIENTES_ID´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´CREATE TRIGGER CLIENTES_BI FOR CLIENTES´);
ZQuery1.SQL.Add(´ACTIVE BEFORE INSERT POSITION 0´);
ZQuery1.SQL.Add(´AS ´);
ZQuery1.SQL.Add(´BEGIN ´);
ZQuery1.SQL.Add(´IF (NEW.ID_CLI IS NULL) THEN ´);
ZQuery1.SQL.Add(´NEW.ID_CLI = GEN_ID(GEN_CLIENTES_ID,1)´);
ZQuery1.SQL.Add(´END ´);
ZQuery1.ExecSQL;
Silvio Guedes
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´create table ´+Edit1.Text+´( ´);
ZQuery1.SQL.Add(´Id_Cli integer not null,´);
ZQuery1.SQL.Add(´Id_Cid Integer )´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´alter table ´+Edit1.Text);
ZQuery1.SQL.Add(´ add constraint pk_cliente primary key (Id_Cli)´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´CREATE GENERATOR GEN_CLIENTES_ID´);
ZQuery1.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(´CREATE TRIGGER CLIENTES_BI FOR CLIENTES´);
ZQuery1.SQL.Add(´ACTIVE BEFORE INSERT POSITION 0´);
ZQuery1.SQL.Add(´AS ´);
ZQuery1.SQL.Add(´BEGIN ´);
ZQuery1.SQL.Add(´IF (NEW.ID_CLI IS NULL) THEN ´);
ZQuery1.SQL.Add(´NEW.ID_CLI = GEN_ID(GEN_CLIENTES_ID,1)´);
ZQuery1.SQL.Add(´END ´);
ZQuery1.ExecSQL;
Silvio Guedes
GOSTEI 0