Inserir valor de uma tabela/coluna em outra
e ai galera..acabei de cadastrar e já estou com uma perguntinha...
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]
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
Curtidas 0
Respostas
Cyberchip
08/06/2004
um forum tao grande com tantos users e ninguem me pode ajudar????
GOSTEI 0
Repa
08/06/2004
Qdo vc dá edit na tabela vc põe em modo de edição(alteração num registro que já existe), p/ inserir um novo dado vc tem que pôr append.
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;
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
Cyberchip
08/06/2004
agradecido pela sua resposta mais continuo com o mesmo problema....me continua a dar key violation...
se me puder ajudar agradecia
se me puder ajudar agradecia
GOSTEI 0
Thomaz_prg
08/06/2004
Colega, para tentar lhe ajudar, tenho apenas uma pergunta a te fazer. Na tabela que você está tentando inserir os dados há uma chave primária, se sim, gostaria de saber se é este campo que vc está lançando os dados?
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.
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
Aroldo Zanela
08/06/2004
Colega,
Por gentileza, coloque a estrutura das tabelas para que possamos avançar mais.
Por gentileza, coloque a estrutura das tabelas para que possamos avançar mais.
GOSTEI 0
Cyberchip
08/06/2004
muito agradeciado pelas respostas..e peço imensa desculpas por nao ter respondido logo mas estive sem tempo...
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;
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
Cyberchip
08/06/2004
muito agradecido pelas respostas..e peço imensa desculpas por nao ter respondido logo mas estive sem tempo...
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;
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
Cyberchip
08/06/2004
alguem que me ajude por favor....estou mesmo precisando disso pronto....
GOSTEI 0
Xisto
08/06/2004
Como vc tem tanta certeza que ja nao existe na table1 ?
Nao caberia um teste pra saber se ele ja existe la ?
Por ex.:
Espero ter ajudado.
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
Cyberchip
08/06/2004
e o mesmo problema que continuo tendo..ele continua a dar key violation....ate so coloquei um registo na tabela e experimentei colocar outro diferente..mas ele insiste em dar key violation...outou começando a fritar neuronios....
GOSTEI 0
Xisto
08/06/2004
Sera que esta tabela nao esta com algum problema no indice ?
Tente incluir registros manualmente via database desktop !
Tente incluir registros manualmente via database desktop !
GOSTEI 0
Repa
08/06/2004
Talvez eu esteja errada mas acho que vc deveria tentar rodar o programa c/ f7.
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.
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
Cyberchip
08/06/2004
sim faz fiz debugging ao programa... e e no table1.post e que da key violation.. e ja inseri valores manualmente e da para inserir...estou a perder a cabeça.....
GOSTEI 0
Cyberchip
08/06/2004
após muitas horas de debbunging.. resolvi checkar a estrutura da tabela..e não me deparo com um indice mal feito na tabela.... estava fulo com o programa e ainda fiquei mais fulo porque perdi tantas horas e no entanto e um erro mesmo muito estupido... peço imensas desculpas por vos ter ocupado o vosso tempo com um erro tao estupido e tambem agradeço aos que responderam a minha duvida....muito obrigada....
um abraço para todos.... :D :D :D :D
um abraço para todos.... :D :D :D :D
GOSTEI 0