Não consigo salvar nada na tabela de clientes. qq pode ser?

18/06/2004

0

Cara... estou com um problema e espero que possas me ajudar.
Tenho duas tabelas uma de vendedores...

CREATE TABLE public.vendedores (
  codigo int8 DEFAULT nextval(´public.vendedores_codigo_seq´::text) NOT NULL, 
  nome varchar(50), 
  logradouro varchar(30), 
  complemento varchar(10), 
  cidade varchar(30), 
  bairro varchar(30), 
  cep varchar(10), 
  uf varchar(2), 
  fone_res1 varchar(14), 
  fone_res2 varchar(14), 
  fone_cel varchar(14), 
  rg varchar(15), 
  cpf varchar(15), 
  email varchar(50), 
  tipo varchar(10), 
  comissao float4, 
  obs1 varchar(100), 
  obs2 varchar(100), 
  obs3 varchar(100), 
  obs4 varchar(100), 
  obs5 varchar(100), 
  CONSTRAINT xpkvendedores PRIMARY KEY (codigo)
) WITH OIDS;


e outra de clientes...

CREATE TABLE public.clientes (
  codigo int8 DEFAULT nextval(´public.clientes_codigo_seq´::text) NOT NULL, 
  cod_ven int8, 
  razao varchar(50), 
  fone_res varchar(14), 
  fone_res2 varchar(14), 
  endereco varchar(50), 
  tipo varchar(5), 
  complemento varchar(10), 
  bairro varchar(30), 
  cidade varchar(50), 
  cep char(10), 
  uf varchar(2), 
  fone_cel varchar(14), 
  email varchar(50), 
  cgc varchar(18), 
  inscricao varchar(18), 
  ramal varchar(10), 
  obs1 varchar(50), 
  obs2 varchar(50), 
  obs3 varchar(50), 
  data date, 
  CONSTRAINT xpkclientes PRIMARY KEY (codigo), 
  CONSTRAINT fkclientes_vendedores FOREIGN KEY (cod_ven) REFERENCES clientes (codigo) ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE
) WITH OIDS;


... como tu podes ver,tenho uma chave estrangeira ´cod_ven´...
o problema é que não consigo salvar nada na minha tabela de clientes...

        Tabelas.DBStoc.StartTransaction;
        Tabelas.QGeral.Close;
        Tabelas.QGeral.SQl.Clear;          
        Tabelas.QGeral.SQl.Add(´INSERT INTO clientes (data, currval(cod_ven), razao, fone_res, fone_res2, ramal, fone_cel, endereco, complemento, bairro, cidade, uf, cep, email, inscricao, cgc, obs1, obs2, obs3) ´);
        Tabelas.QGeral.SQL.Add(´VALUES (´ + ´´´´ + MaskEdit3.Text + ´´´´ + ´, ´ + ´´´´ + ´vcod_ven´ + ´´´´ + ´, ´
                                          + ´´´´ + Edit4.Text + ´´´´ + ´, ´ + ´´´´ + MaskEdit4.Text + ´´´´ + ´, ´
                                          + ´´´´ + MaskEdit5.Text + ´´´´ + ´, ´ + ´´´´ + Edit5.Text + ´´´´ + ´, ´
                                          + ´´´´ + MaskEdit6.Text + ´´´´ + ´, ´ + ´´´´ + Combobox2.Text + ´´´´ + ´, ´
                                          + ´´´´ + Edit7.Text + ´´´´ + ´, ´ + ´´´´ + Edit8.Text + ´´´´ + ´, ´
                                          + ´´´´ + edtUF.Text + ´´´´ + ´, ´ + ´´´´ + MaskEdit7.Text + ´´´´ + ´, ´
                                          + ´´´´ + Edit10.Text + ´´´´ + ´, ´ + ´´´´ + edtinscricao.Text + ´´´´ + ´, ´
                                          + ´´´´ + MaskEdit8.Text + ´´´´ + ´, ´ + ´´´´ + Edit9.Text + ´´´´ + ´, ´
                                          + ´´´´ + Edit11.Text + ´´´´ + ´, ´ + ´´´´ + Edit12.Text + ´´´)´);

        try
           Tabelas.QGeral.Prepared := True;
           Tabelas.QGeral.ExecSQL;
        except
           on EDBEngineError do
              Begin 
              Tabelas.DBStoc.Rollback;
              MessageDlg(´Não foi possível Inserir o Item Cliente !´, mtError, [mbOK], 0);
              Abort;
              Exit;
              end;
        end;
        //Terminando Transação com efetivação das modificações
        Tabelas.DBStoc.Commit;


nao consigo salvar nada.
Onde estou cometendo o erro?

Antecipadamente obrigado!




:roll:


[color=red:1601ced4bc][b:1601ced4bc]Título alterado pelo Moderador oTTo. Removido: ´Socorro por favor me ajudem!!!!!!!!!!!!!!!!!!!!!!!!´.[/b:1601ced4bc][/color:1601ced4bc]
:idea: Favor leia as regras de conduta do forum antes de postar.


Vilfredo

Vilfredo

Responder

Posts

28/06/2004

Bon Jovi

1 - no campo data vc ta setando ´´´´ + Edit1.Text + ´´´´. O que terá em Edit1.Text só Deus sabe.. E a formatação de data da máquina cliente pode ser diferente da formatacao do servidor. Use a funcao to_date do PostgreSql.

2 - currval nao seria nextval? e dentro do values?


Responder

05/08/2004

Berg Mont

Outra opção que é interessante é utilizar uma função do Delphi chamada QuotedStr(Text). Experimente, toda vez que quiser passar algo entre plics (´) pra uma cadeia string, utilize-a. Ex:

Tabelas.QGeral.SQl.Add(´INSERT INTO clientes (data, currval(cod_ven), razao, fone_res, fone_res2, ramal, fone_cel, endereco, complemento, bairro, cidade, uf, cep, email, inscricao, cgc, obs1, obs2, obs3) ´);
Tabelas.QGeral.SQL.Add(´VALUES (+QuotedStr(MaskEdit3.Text) + ´, ´ +
QuotedStr(´vcod_ven´) + ´, ´ +
QuotedStr(Edit4.Text + ´, ´ +
QuotedStr(MaskEdit4.Text) + ´, ´ +
QuotedStr(MaskEdit5.Text + ´, ´ +
QuotedStr(Edit5.Text) + ´, ´ +
QuotedStr(MaskEdit6.Text) + ´, ´ +
QuotedStr(Combobox2.Text) + ´, ´ +
QuotedStr(Edit7.Text) + ´, ´ +
QuotedStr(Edit8.Text) + ´, ´ +
QuotedStr(edtUF.Text) + ´, ´ +
QuotedStr(MaskEdit7.Text) + ´, ´ +
QuotedStr(Edit10.Text) + ´, ´ +
QuotedStr(edtinscricao.Text) + ´, ´ +
QuotedStr(MaskEdit8.Text) + ´, ´ +
QuotedStr(Edit9.Text) + ´, ´ +
QuotedStr(Edit11.Text) + ´, ´ +
QuotedStr(Edit12.Text) + ´)´);


Observe que ficou melhor de ser visualizado o código e posteriormente pode ser depurado. Não sei se vai resolver seu problema, mas vai te ajudar a identifica-lo.

Abraços....


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar