Fórum Inserir valor de uma tabela/coluna em outra #236676
08/06/2004
0
e assim:
uso delphi 7 e tenhu 2 tabelas em paradox...
eu queria que quando fizesse uma pesquisa na tabela2 e axasse entao ela passaria o valor para a tabela1..ate fix um codigozinho para isso mas ele me da erro de key violation...o codigo e o seguinte:
if table2.findkey([edit1.text]) then
var var_aux:string;
begin
var_aux:=table2.fieldbyname(´nome´).asstring;
table1.edit;
table1.insert;
table1.fieldbyname(´nome´).asstring:=var_aux;
table1.post;
end;
ele me da key violation... o que nao compreendo pois ele nem sequer esta por dois valores iguais na mesma tabela.. mas sim em tabelas diferentes....
por favor alguem que me ajude...
muito obrigado...adorei esse forum...
[b:c6122f2a9d][color=red:c6122f2a9d]Título editado pelo Moderador (AZ) - Removido: ´problema,,,,,´[/color:c6122f2a9d][/b:c6122f2a9d]
Cyberchip
Curtir tópico
+ 0Posts
08/06/2004
Cyberchip
Gostei + 0
08/06/2004
Repa
if table2.findkey([edit1.text]) then
var var_aux:string;
begin
var_aux:=table2.fieldbyname(´nome´).asstring;
table1.append;
table1.fieldbyname(´nome´).asstring:=var_aux;
table1.post;
end;
Gostei + 0
08/06/2004
Cyberchip
se me puder ajudar agradecia
Gostei + 0
08/06/2004
Thomaz_prg
Pois, se na tabela q vc está tentando incluir os dados existir um campo como chave primária e o mesmo não for preenchido, não irá funcionar.
Gostei + 0
08/06/2004
Aroldo Zanela
Por gentileza, coloque a estrutura das tabelas para que possamos avançar mais.
Gostei + 0
09/06/2004
Cyberchip
tenhu duas tabelas com a seguinte estrutura
tabela1
cod_produto:integer; -> chave primaria
nome:alphanumerico;
stock:inetger;
preco:integer;
cod_factura:integer;
table2
cod_produto:integer; ->chave primaria
nome:alphanumerico;
mesa:integer;
empregado:integer;
quantidade:integer;
preco:integer;
cod_cartao:integer;
antes nao estava preenchendo o campo com a chave primaria mas agoora estou e continua com a keyviolation...
o codigo que tenho e esse:
procedure Tform_vendas.but_adicionarClick(Sender: TObject);
var var_aux:string;
begin
table1.open;
if table3.findkey([edit1.text]) then
begin
var_aux:=table3.fieldbyname(´nome´).asstring;
table1.append;
table1.fieldbyname(´nome´).asstring:=var_aux;
table1.FieldByName(´cod_produto´).AsInteger:=strtoint(edit1.Text);
table1.post;
end;
end;
Gostei + 0
09/06/2004
Cyberchip
tenhu duas tabelas com a seguinte estrutura
tabela1
cod_produto:integer; -> chave primaria
nome:alphanumerico;
stock:inetger;
preco:integer;
cod_factura:integer;
table2
cod_produto:integer; ->chave primaria
nome:alphanumerico;
mesa:integer;
empregado:integer;
quantidade:integer;
preco:integer;
cod_cartao:integer;
antes nao estava preenchendo o campo com a chave primaria mas agoora estou e continua com a keyviolation...
o codigo que tenho e esse:
procedure Tform_vendas.but_adicionarClick(Sender: TObject);
var var_aux:string;
begin
table1.open;
if table3.findkey([edit1.text]) then
begin
var_aux:=table3.fieldbyname(´nome´).asstring;
table1.append;
table1.fieldbyname(´nome´).asstring:=var_aux;
table1.FieldByName(´cod_produto´).AsInteger:=strtoint(edit1.Text);
table1.post;
end;
end;
Gostei + 0
09/06/2004
Cyberchip
Gostei + 0
09/06/2004
Xisto
edit1.text
Nao caberia um teste pra saber se ele ja existe la ?
Por ex.:
procedure Tform_vendas.but_adicionarClick(Sender: TObject); var var_aux:string; begin table1.open; if table3.findkey([edit1.text]) then begin var_aux:=table3.fieldbyname(´nome´).asstring; if not table1.findkey([edit1.text]) then begin table1.append; table1.fieldbyname(´nome´).asstring:=var_aux; table1.FieldByName(´cod_produto´).AsInteger:=strtoint(edit1.Text); table1.post; end; end; end;
Espero ter ajudado.
Gostei + 0
09/06/2004
Cyberchip
Gostei + 0
09/06/2004
Xisto
Tente incluir registros manualmente via database desktop !
Gostei + 0
09/06/2004
Repa
Vc pode marcar um ponto (por ex, o primeiro if dessa procedure) e dar o f7 p/ rodar, assim vc iria rodar linha por linha e saber em que linha dá problema e qual o valor que tem no edit1.
Gostei + 0
09/06/2004
Cyberchip
Gostei + 0
09/06/2004
Cyberchip
um abraço para todos.... :D :D :D :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)