Fórum Automação Comercial em Delphi com OOP, BPLS e FIREBIRD(Avançado) #431641

28/12/2012

0

Ola pessoal estou com um pequeno ERRO de SQL, Alguem poderia me ajudar?
O ERRO é o seguinte,

create procedure sp_get_gerador (pNome varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm varchar (500);
begin
vStm = 'select next value for ' || pNome || ' fron rdb$databases';
execute statement vStm into :pValor;
suspend;
end;

quando eu mando compilar acontece esse ERRO.

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 69
d_inteiro

aguardo anciosamente.
Fabio Junior

Fabio Junior

Responder

Posts

28/12/2012

Márcio Lima

Olá amigo qual o Banco de dados que está usando?
qual a finalidade desta procedure?

fiz umas alterações veja se isso resolve.

create procedure sp_get_gerador
(pNome varchar(50))
returns (pValor integer)
as
declare variable vStm varchar (500);
begin
vStm = 'select next value for ' || pNome || ' from rdb$databases';
execute statement vStm into:pValor;
suspend;
end

qualquer coisa posta ai
Responder

Gostei + 0

28/12/2012

Fabio Junior

PRIMEIRAMENTE MUINTO OBRIGADO PELA SUA ATEÇÃO MEU AMIGO.
AINDA TA DANDO ESSE ERRO ABAIXO. O BANCO DE DADOS QUE EU USO É O Firebird COM O IBOConsole.

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 3, column 35

Statement: create procedure sp_get_gerador(pNome varchar(50)) returns (pValor integer)
as
declare vari able vStm varchar (500)
Responder

Gostei + 0

29/12/2012

Márcio Lima

Qual a Finalidade desta Procedure?
Quer me passar o Script desta tabela, talvez posso te ajudar melhor.
Responder

Gostei + 0

29/12/2012

Fabio Junior

SET SQL DIALECT 3;

/* CREATE DATABASE 'C:\SisAtmc\dados\pdv.fdb' PAGE_SIZE 2048

DEFAULT CHARACTER SET WIN1250 */

/* External Function declarations */

DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE
RETURNS VARCHAR(255) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'get_context' MODULE_NAME 'system_module';


DECLARE EXTERNAL FUNCTION RDB$SET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE, VARCHAR(255) CHARACTER SET NONE
RETURNS INTEGER BY VALUE
ENTRY_POINT 'set_context' MODULE_NAME 'system_module';


/* Domain definitions */
CREATE DOMAIN "D_BAIRRO" AS VARCHAR(30) CHARACTER SET WIN1250;
CREATE DOMAIN "D_BARRAS" AS VARCHAR(40) CHARACTER SET WIN1250;
CREATE DOMAIN "D_CEP" AS VARCHAR(8) CHARACTER SET WIN1250;
CREATE DOMAIN "D_CIDADE" AS VARCHAR(30) CHARACTER SET WIN1250;
CREATE DOMAIN "D_CNPJ" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_CPF" AS VARCHAR(11) CHARACTER SET WIN1250;
CREATE DOMAIN "D_DATA" AS TIMESTAMP;
CREATE DOMAIN "D_EMAIL" AS VARCHAR(40) CHARACTER SET WIN1250;
CREATE DOMAIN "D_ENDERECO" AS VARCHAR(255) CHARACTER SET WIN1250;
CREATE DOMAIN "D_INSCRICAO_ESTADUAL" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_INSCRICAO_MUNICIPAL" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_INTEIRO" AS INTEGER
default 0;
CREATE DOMAIN "D_LOGIN" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_NOME" AS VARCHAR(255) CHARACTER SET WIN1250;
CREATE DOMAIN "D_NUMDOC" AS VARCHAR(40) CHARACTER SET WIN1250;
CREATE DOMAIN "D_N_OU_S" AS VARCHAR(1) CHARACTER SET WIN1250
check (value in ('N','S'));
CREATE DOMAIN "D_OPERACAO_DOC" AS VARCHAR(1) CHARACTER SET WIN1250
check (value in('E','S'));
CREATE DOMAIN "D_RG" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_SENHA" AS VARCHAR(8) CHARACTER SET WIN1250;
CREATE DOMAIN "D_TABELA" AS VARCHAR(50) CHARACTER SET WIN1250;
CREATE DOMAIN "D_TELEFONE" AS VARCHAR(20) CHARACTER SET WIN1250;
CREATE DOMAIN "D_UF" AS VARCHAR(2) CHARACTER SET WIN1250;
CREATE DOMAIN "D_VALOR" AS NUMERIC(15, 4)
default 0;

/* Table: CLIENTES, Owner: SYSDBA */

CREATE TABLE "CLIENTES"
(
"PESSOA" D_INTEIRO default 0 NOT NULL,
"LIMITE" D_VALOR default 0,
"VALOR_ABERTO" D_VALOR default 0,
"VALOR_PAGO" D_VALOR default 0,
PRIMARY KEY ("PESSOA")
);

/* Table: DCESSOS, Owner: SYSDBA */

CREATE TABLE "DCESSOS"
(
"USUARIO" D_INTEIRO default 0 NOT NULL,
"TABELA" D_TABELA NOT NULL,
"INCLUIR" D_N_OU_S ,
"ALTERAR" D_N_OU_S ,
"EXCLUIR" D_N_OU_S ,
"VER" D_N_OU_S ,
PRIMARY KEY ("USUARIO", "TABELA")
);

/* Table: DOCUMENTOS, Owner: SYSDBA */

CREATE TABLE "DOCUMENTOS"
(
"CODIGO" D_INTEIRO default 0 NOT NULL,
"DTDOCUMENTO" D_DATA NOT NULL,
"NUMDOC" D_NUMDOC NOT NULL,
"PESSOA" D_INTEIRO default 0 NOT NULL,
"VENDEDOR" D_INTEIRO default 0,
"SUBTOTAL" D_VALOR default 0,
"DESCONTO" D_VALOR default 0,
"TOTAL" D_VALOR default 0,
"E_CUPOM" D_N_OU_S ,
"OPERACAO" D_OPERACAO_DOC ,
"CANCELADO" D_N_OU_S ,
PRIMARY KEY ("CODIGO")
);

/* Table: FISICAS, Owner: SYSDBA */

CREATE TABLE "FISICAS"
(
"PESSOA" D_INTEIRO default 0 NOT NULL,
"CPF" D_CPF ,
"RG" D_RG ,
PRIMARY KEY ("PESSOA"),
UNIQUE ("CPF")
);

/* Table: FORNECEDORES, Owner: SYSDBA */

CREATE TABLE "FORNECEDORES"
(
"PESSOA" D_INTEIRO default 0 NOT NULL,
"LIMITE" D_VALOR default 0,
"VALOR_ABERTO" D_VALOR default 0,
"VALOR_PAGO" D_VALOR default 0,
PRIMARY KEY ("PESSOA")
);

/* Table: GRUPOS, Owner: SYSDBA */

CREATE TABLE "GRUPOS"
(
"CODIGO" D_INTEIRO default 0 NOT NULL,
"NOME" D_NOME NOT NULL,
PRIMARY KEY ("CODIGO"),
UNIQUE ("NOME")
);

/* Table: INTES, Owner: SYSDBA */

CREATE TABLE "INTES"
(
"DOCUMENTO" D_INTEIRO default 0 NOT NULL,
"PRODUTO" D_INTEIRO default 0 NOT NULL,
"QUANTIDADE" D_VALOR default 0,
"VALOR" D_VALOR default 0,
"TOTAL" D_VALOR default 0,
PRIMARY KEY ("DOCUMENTO", "PRODUTO")
);

/* Table: JURIDICAS, Owner: SYSDBA */

CREATE TABLE "JURIDICAS"
(
"PESSOA" D_INTEIRO default 0 NOT NULL,
"CNPJ" D_CNPJ ,
"IE" D_INSCRICAO_ESTADUAL ,
"IM" D_INSCRICAO_MUNICIPAL ,
PRIMARY KEY ("PESSOA"),
UNIQUE ("CNPJ")
);

/* Table: PARCELAS, Owner: SYSDBA */

CREATE TABLE "PARCELAS"
(
"DOCUMENTO" D_INTEIRO default 0 NOT NULL,
"PARCELA" D_INTEIRO default 0 NOT NULL,
"DTVENCIMENTO" D_DATA NOT NULL,
"DTPAGAMENTO" D_DATA ,
"VALOR_PARCELA" D_VALOR default 0,
"VALOR_JUROS" D_VALOR default 0,
"VALOR_MULTA" D_VALOR default 0,
"VALOR_DESCONTO" D_VALOR default 0,
"VALOR_TOTAL" D_VALOR default 0,
PRIMARY KEY ("DOCUMENTO", "PARCELA")
);

/* Table: PESSOAS, Owner: SYSDBA */

CREATE TABLE "PESSOAS"
(
"CODIGO" D_INTEIRO default 0 NOT NULL,
"NOME" D_NOME NOT NULL,
"TELEFONE" D_TELEFONE ,
"CELULAR" D_TELEFONE ,
"EMAIL" D_EMAIL ,
"UF" D_UF ,
"CIDADE" D_CIDADE ,
"BAIRRO" D_BAIRRO ,
"ENDERECO" D_ENDERECO ,
"ATIVO" D_N_OU_S ,
PRIMARY KEY ("CODIGO")
);

/* Table: PRODUTOS, Owner: SYSDBA */

CREATE TABLE "PRODUTOS"
(
"CODIGO" D_INTEIRO default 0 NOT NULL,
"CODIGODEBARRAS" D_BARRAS NOT NULL,
"GRUPO" D_INTEIRO default 0 NOT NULL,
"VALOR_VENDA" D_VALOR default 0,
"VALOR_COMPRA" D_VALOR default 0,
"ICMS" D_VALOR default 0,
"E_SUBSTITUTO" D_N_OU_S ,
"E_ISENTO" D_N_OU_S ,
"SEM_INCIDENCIA" D_N_OU_S ,
PRIMARY KEY ("CODIGO"),
UNIQUE ("CODIGODEBARRAS")
);

/* Table: USUARIOS, Owner: SYSDBA */

CREATE TABLE "USUARIOS"
(
"PESSOA" D_INTEIRO default 0 NOT NULL,
"LOGIN" D_LOGIN ,
"SENHA" D_SENHA ,
PRIMARY KEY ("PESSOA"),
UNIQUE ("LOGIN")
);
ALTER TABLE "CLIENTES" ADD FOREIGN KEY ("PESSOA") REFERENCES "PESSOAS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "DCESSOS" ADD FOREIGN KEY ("USUARIO") REFERENCES "USUARIOS" ("PESSOA") ON DELETE CASCADE;
ALTER TABLE "DOCUMENTOS" ADD FOREIGN KEY ("PESSOA") REFERENCES "PESSOAS" ("CODIGO");
ALTER TABLE "DOCUMENTOS" ADD FOREIGN KEY ("VENDEDOR") REFERENCES "USUARIOS" ("PESSOA");
ALTER TABLE "FISICAS" ADD FOREIGN KEY ("PESSOA") REFERENCES "PESSOAS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "FORNECEDORES" ADD FOREIGN KEY ("PESSOA") REFERENCES "PESSOAS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "INTES" ADD FOREIGN KEY ("DOCUMENTO") REFERENCES "DOCUMENTOS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "INTES" ADD FOREIGN KEY ("PRODUTO") REFERENCES "PRODUTOS" ("CODIGO");
ALTER TABLE "JURIDICAS" ADD FOREIGN KEY ("PESSOA") REFERENCES "PESSOAS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "PARCELAS" ADD FOREIGN KEY ("DOCUMENTO") REFERENCES "DOCUMENTOS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "PRODUTOS" ADD FOREIGN KEY ("GRUPO") REFERENCES "GRUPOS" ("CODIGO") ON DELETE CASCADE;
ALTER TABLE "USUARIOS" ADD FOREIGN KEY ("PESSOA") REFERENCES "FISICAS" ("PESSOA") ON DELETE CASCADE;

CREATE GENERATOR "GEN_DOCUMENTOS";
CREATE GENERATOR "GEN_GRUPOS";
CREATE GENERATOR "GEN_PESSOAS";
CREATE GENERATOR "GEN_PRODUTOS";

/* Grant Roles for this database */


/* Grant permissions for this database */
Responder

Gostei + 0

30/12/2012

Fabio Junior

MARCIO oque vc acha que ta acontecendo?
Responder

Gostei + 0

31/12/2012

Fabio Junior

Pessoal com faço pra criar essa procedore no IBExpert?

create procedure sp_get_gerador (pNome varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm varchar (500);
begin
vStm = 'select next value for ' || pNome || ' fron rdb$databass';
execute statement vStm into :pValor;
suspend;
end;

ALGUEM HELP PELO AMOR DE DEUS
Responder

Gostei + 0

01/01/2013

Emerson Nascimento

create procedure sp_get_gerador(pNome varchar(50))
returns(pValor integer)
as
declare variable vStm varchar(100);
begin
vStm = 'select next value for ' || pNome || ' from rdb$database';
execute statement vStm into :pValor;
suspend;
end;
Responder

Gostei + 0

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

Aceitar