Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Com Tabelas


vms

Pergunta

existe uma forma de colocar os dados de uma tabela para outra

ex: tenho uma tabela (paradox)com os itens:

Table1

CODIGO | MERCADORIA | preço |

001 | feijao | R$ 1,00

002 | Farinha | R$ 2,00

003 | Farofa | R$ 3,00

usando o evento onclick de um bitbtn,os itens da Table1

seriam Adicionados na table2

Table2

CODIGO | MERCADORIA | preço |

tem como fazer isso?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest --felipe --
existe uma forma de colocar os dados de uma tabela para outra

ex: tenho uma tabela (paradox)com os itens:

Table1

CODIGO | MERCADORIA | preço |

001 | feijao | R$ 1,00

002 | Farinha | R$ 2,00

003 | Farofa | R$ 3,00

usando o evento onclick de um bitbtn,os itens da Table1

seriam Adicionados na table2

Table2

CODIGO | MERCADORIA | preço |

tem como fazer isso?

você terá que usar o comando insert em SQL

vai fikar mais ou menos assim.. (se você quiser copiar todos os dados da tabela1)

a query "table1query", deve conter no SQL apenas: select * from table1 order by codigo

e voce deve ter uma query auxiliar

modulo.table1query.first;
s1:='insert into table2(codigo,mercadoria,preço) ';
while table1query not eof do begin
  s:='values('+modulo.table1query.fields[0].asstring+','+modulo.table1query.fields[1].asstring+','+modulo.table1query.fields[2].asstring+')';
  with modulo.auxquery do begin
    close;
    sql.clear;
    sql.add(s1+s);
    ExecSQL;
  end;
  table1query.next;
end;

isso deve dar..

abraços!

end;

Link para o comentário
Compartilhar em outros sites

  • 0

estou com duvidas

ver se estar certo

declarei o S1,S como string em public

table1query, isso é nome da query?

auxquery, eu uso o mesmo comando?

select * from table1 order by codigo

public
   s1,s:string


    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses UDM;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  modulo.table1query.first;
  s1:='insert into modulo.table2(codigo,mercadoria,preço) ';
  while modulo.table1query not eof do begin
    s:='values('+modulo.table1query.fields[0].asstring+','+modulo.table1query.fields[1].asstring+',
'+modulo.table1query.fields[2].asstring+')';
    with modulo.auxquery do begin
      close;
      sql.clear;
      sql.add(s1+s);
      ExecSQL;
    end;
    modulo.table1query.next;
  end;
end;
end.

estar ocorrendo esse erro nessa linha

linha -> while modulo.table1query not eof do begin

Erro -> [Error]UTransf.pas(45): Missing operator or semicolon

Editado por Micheus
Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link para o comentário
Compartilhar em outros sites

  • 0

vms, a linha não está corretamente definida:

while modulo.table1query not eof do begin

deve ficar assim:

while not modulo.table1query.eof do begin

Também, verifique se você não terá erro na execução da query (ao chamar ExecSQL), por conta da formatação do campo PREÇO (o tal R$). Pelo uso do modo concatenação, ao utilizar AsString, se definida a propriedade DisplayFormat com R$, a string de inserção poder ficar inválida. Por exemplo, para o primeiro registro exemplificado ficaria assim:

insert into modulo.table2(codigo,mercadoria,preço) values (001, feijao, R$ 1,00)

Fora o fato que o campo texto mercadoria, foi concatenado sem as aspas que denotam um valor string. Esteja atento a estas questões.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

ok. valeu! e as outras perguntas?

estou com duvidas

ver se estar certo

declarei o S1,S como string em public

table1query, isso é nome da query?

auxquery, eu uso o mesmo comando?

select * from table1 order by codigo

Link para o comentário
Compartilhar em outros sites

  • 0
ver se estar certo

declarei o S1,S como string em public

pode ser, mas não seria necessário nem elegante - você só faz uso delas naquele procedimento, então, deveria definir dentro dele:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  S, S1 :String;
begin
  modulo.table1query.first;
...
table1query, isso é nome da query?
imagino que ele esta querendo dizer a voce que esta seria a query ref. a table1
auxquery, eu uso o mesmo comando? select * from table1 order by codigo
acho que está claro que não. Note que ele adiciona a propriedade SQL, da auxquery, S+S1 (sql.add(s1+s);). Bom, o felipe tentou lhe passar o "espírito da coisa" não ela pronta (dá para ver que foi na intuição - tanto que apareceram alguns probleminhas). Mas já que você não captou 100%, vou exemplificar, levando em conta o que já citei no post anterior. Como voce não deu o nome das tabelas, então vou tratá-las como TABLE1 e TABLE2
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 // preparando a querie de inserção
  QueryAux.SQL.Clear;
  QueryAux.SQL.Add('insert into TABLE2(codigo, mercadoria, preço)');
  QueryAux.SQL.Add('values (:codigo, :mercadoria, :preço)');  // * observe que não tem c-cedilia (o forum é que troca o c)
  Table1.First;  // *** Este Table1 pode ser um TTable ou TQuery - fica a sua escolha
  while not Table1.EOF do
  begin
    QueryAux.ParamByName('codigo').AsInteger := Table1CODIGO.AsInteger;  // * se o campo não foi adicionado 
                                                                         // em design-time, use Table1.FieldByName('codigo').AsInteger
    QueryAux.ParamByName('mercadoria').AsString := Table1MERCADORIA.AsString;
    QueryAux.ParamByName('preço').AsFloat := Table1PRECO.AsFloat;
    QueryAux.ExecSQL;
    Table1.Next;
  end;
end;

se você usa datamodule, então tem que preceder todos os dataset's (table ou query) com o nome do datamodulo (o felipe citou modulo.table1...)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...